1 /*
2  * Copyright (c) 2017 Derelict Developers
3  * All rights reserved.
4  *
5  * Redistribution and use in source and binary forms, with or without
6  * modification, are permitted provided that the following conditions are
7  * met:
8  *
9  * * Redistributions of source code must retain the above copyright
10  *   notice, this list of conditions and the following disclaimer.
11  *
12  * * Redistributions in binary form must reproduce the above copyright
13  *   notice, this list of conditions and the following disclaimer in the
14  *   documentation and/or other materials provided with the distribution.
15  *
16  * * Neither the names 'Derelict', 'DerelictFmod', nor the names of its contributors
17  *   may be used to endorse or promote products derived from this software
18  *   without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
22  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
27  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
28  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
29  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
30  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 module derelict.fmod.funcs;
33 
34 private
35 {
36 	import derelict.util.system;
37 	import derelict.fmod.codec;
38 	import derelict.fmod.dsp;
39 	import derelict.fmod.dsp_effects;
40 	import derelict.fmod.output;
41 	import derelict.fmod.common;
42 }
43 
44 extern(C) @nogc nothrow
45 {
46 	/*
47 	FMOD global system functions (optional).
48 */
49 	
50 	alias da_FMOD_Memory_Initialize = FMOD_RESULT function(void *poolmem, int poollen, FMOD_MEMORY_ALLOC_CALLBACK useralloc, FMOD_MEMORY_REALLOC_CALLBACK userrealloc, FMOD_MEMORY_FREE_CALLBACK userfree, FMOD_MEMORY_TYPE memtypeflags);
51 	alias da_FMOD_Memory_GetStats = FMOD_RESULT function(int *currentalloced, int *maxalloced, FMOD_BOOL blocking);
52 	alias da_FMOD_Debug_Initialize = FMOD_RESULT function(FMOD_DEBUG_FLAGS flags, FMOD_DEBUG_MODE mode, FMOD_DEBUG_CALLBACK callback, const char *filename);
53 	alias da_FMOD_File_SetDiskBusy = FMOD_RESULT function(int busy);
54 	alias da_FMOD_File_GetDiskBusy = FMOD_RESULT function(int *busy);
55 	
56 	/*
57 	FMOD System factory functions.  Use this to create an FMOD System Instance.  below you will see FMOD_System_Init/Close to get started.
58 */
59 	
60 	alias da_FMOD_System_Create = FMOD_RESULT function(FMOD_SYSTEM **system); 
61 	alias da_FMOD_System_Release = FMOD_RESULT function(FMOD_SYSTEM *system); 
62 	
63 	/*$ preserve end $*/
64 	
65 	/*
66 	'System' API
67 */
68 	
69 	/*
70 	 Setup functions.
71 */
72 	
73 	alias da_FMOD_System_SetOutput = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_OUTPUTTYPE output);
74 	alias da_FMOD_System_GetOutput = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_OUTPUTTYPE *output);
75 	alias da_FMOD_System_GetNumDrivers = FMOD_RESULT function(FMOD_SYSTEM *system, int *numdrivers);
76 	alias da_FMOD_System_GetDriverInfo = FMOD_RESULT function(FMOD_SYSTEM *system, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels);
77 	alias da_FMOD_System_SetDriver = FMOD_RESULT function(FMOD_SYSTEM *system, int driver);
78 	alias da_FMOD_System_GetDriver = FMOD_RESULT function(FMOD_SYSTEM *system, int *driver);
79 	alias da_FMOD_System_SetSoftwareChannels = FMOD_RESULT function(FMOD_SYSTEM *system, int numsoftwarechannels);
80 	alias da_FMOD_System_GetSoftwareChannels = FMOD_RESULT function(FMOD_SYSTEM *system, int *numsoftwarechannels);
81 	alias da_FMOD_System_SetSoftwareFormat = FMOD_RESULT function(FMOD_SYSTEM *system, int samplerate, FMOD_SPEAKERMODE speakermode, int numrawspeakers);
82 	alias da_FMOD_System_GetSoftwareFormat = FMOD_RESULT function(FMOD_SYSTEM *system, int *samplerate, FMOD_SPEAKERMODE *speakermode, int *numrawspeakers);
83 	alias da_FMOD_System_SetDSPBufferSize = FMOD_RESULT function(FMOD_SYSTEM *system, uint bufferlength, int numbuffers);
84 	alias da_FMOD_System_GetDSPBufferSize = FMOD_RESULT function(FMOD_SYSTEM *system, uint *bufferlength, int *numbuffers);
85 	alias da_FMOD_System_SetFileSystem = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek, FMOD_FILE_ASYNCREAD_CALLBACK userasyncread, FMOD_FILE_ASYNCCANCEL_CALLBACK userasynccancel, int blockalign);
86 	alias da_FMOD_System_AttachFileSystem = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_FILE_OPEN_CALLBACK useropen, FMOD_FILE_CLOSE_CALLBACK userclose, FMOD_FILE_READ_CALLBACK userread, FMOD_FILE_SEEK_CALLBACK userseek);
87 	alias da_FMOD_System_SetAdvancedSettings = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_ADVANCEDSETTINGS *settings);
88 	alias da_FMOD_System_GetAdvancedSettings = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_ADVANCEDSETTINGS *settings);
89 	alias da_FMOD_System_SetCallback = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SYSTEM_CALLBACK callback, FMOD_SYSTEM_CALLBACK_TYPE callbackmask);
90 	
91 	/*
92 	 Plug-in support.
93 */
94 	
95 	alias da_FMOD_System_SetPluginPath = FMOD_RESULT function(FMOD_SYSTEM *system, const char *path);
96 	alias da_FMOD_System_LoadPlugin = FMOD_RESULT function(FMOD_SYSTEM *system, const char *filename,  uint *handle,  uint priority);
97 	alias da_FMOD_System_UnloadPlugin = FMOD_RESULT function(FMOD_SYSTEM *system,  uint handle);
98 	alias da_FMOD_System_GetNumNestedPlugins = FMOD_RESULT function(FMOD_SYSTEM *system, uint handle, int* count);
99 	alias da_FMOD_System_GetNestedPlugin = FMOD_RESULT function(FMOD_SYSTEM *system, uint handle, int index, uint *nestedhandle);
100 	alias da_FMOD_System_GetNumPlugins = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_PLUGINTYPE plugintype, int *numplugins);
101 	alias da_FMOD_System_GetPluginHandle = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_PLUGINTYPE plugintype, int index,  uint *handle);
102 	alias da_FMOD_System_GetPluginInfo = FMOD_RESULT function(FMOD_SYSTEM *system, uint handle, FMOD_PLUGINTYPE *plugintype, char *name, int namelen, uint  *version__);
103 	alias da_FMOD_System_SetOutputByPlugin = FMOD_RESULT function(FMOD_SYSTEM *system, uint handle);
104 	alias da_FMOD_System_GetOutputByPlugin = FMOD_RESULT function(FMOD_SYSTEM *system, uint *handle);
105 	alias da_FMOD_System_CreateDSPByPlugin = FMOD_RESULT function(FMOD_SYSTEM *system, uint handle, FMOD_DSP **dsp);
106 	alias da_FMOD_System_GetDSPInfoByPlugin = FMOD_RESULT function(FMOD_SYSTEM *system, uint handle, const FMOD_DSP_DESCRIPTION **description);
107 	alias da_FMOD_System_RegisterCodec = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_CODEC_DESCRIPTION *description,  uint *handle,  uint priority);
108 	alias da_FMOD_System_RegisterDSP = FMOD_RESULT function(FMOD_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description,  uint *handle);
109 	alias da_FMOD_System_RegisterOutput = FMOD_RESULT function(FMOD_SYSTEM *system, const FMOD_OUTPUT_DESCRIPTION *description,  uint *handle);
110 	
111 	/*
112 	 Init/Close.
113 */
114 	
115 	alias da_FMOD_System_Init = FMOD_RESULT function(FMOD_SYSTEM *system, int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata);
116 	alias da_FMOD_System_Close = FMOD_RESULT function(FMOD_SYSTEM *system);
117 	
118 	/*
119 	 General post-init system functions.
120 */
121 	
122 	alias da_FMOD_System_Update = FMOD_RESULT function(FMOD_SYSTEM *system);
123 	
124 	alias da_FMOD_System_SetSpeakerPosition = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SPEAKER speaker, float x, float y, FMOD_BOOL active);
125 	alias da_FMOD_System_GetSpeakerPosition = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SPEAKER speaker, float *x, float *y, FMOD_BOOL *active);
126 	alias da_FMOD_System_SetStreamBufferSize = FMOD_RESULT function(FMOD_SYSTEM *system,  uint filebuffersize, FMOD_TIMEUNIT filebuffersizetype);
127 	alias da_FMOD_System_GetStreamBufferSize = FMOD_RESULT function(FMOD_SYSTEM *system,  uint *filebuffersize, FMOD_TIMEUNIT *filebuffersizetype);
128 	alias da_FMOD_System_Set3DSettings = FMOD_RESULT function(FMOD_SYSTEM *system, float dopplerscale, float distancefactor, float rolloffscale);
129 	alias da_FMOD_System_Get3DSettings = FMOD_RESULT function(FMOD_SYSTEM *system, float *dopplerscale, float *distancefactor, float *rolloffscale);
130 	alias da_FMOD_System_Set3DNumListeners = FMOD_RESULT function(FMOD_SYSTEM *system, int numlisteners);
131 	alias da_FMOD_System_Get3DNumListeners = FMOD_RESULT function(FMOD_SYSTEM *system, int *numlisteners);
132 	alias da_FMOD_System_Set3DListenerAttributes = FMOD_RESULT function(FMOD_SYSTEM *system, int listener, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *forward, const FMOD_VECTOR *up);
133 	alias da_FMOD_System_Get3DListenerAttributes = FMOD_RESULT function(FMOD_SYSTEM *system, int listener, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *forward, FMOD_VECTOR *up);
134 	alias da_FMOD_System_Set3DRolloffCallback = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_3D_ROLLOFF_CALLBACK callback);
135 	alias da_FMOD_System_MixerSuspend = FMOD_RESULT function(FMOD_SYSTEM *system);
136 	alias da_FMOD_System_MixerResume = FMOD_RESULT function(FMOD_SYSTEM *system);
137 	alias da_FMOD_System_GetDefaultMixMatrix = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SPEAKERMODE sourcespeakermode, FMOD_SPEAKERMODE targetspeakermode, float *matrix, int matrixhop);
138 	alias da_FMOD_System_GetSpeakerModeChannels = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SPEAKERMODE mode, int *channels);
139 	
140 	/*
141 	 System information functions.
142 */
143 	
144 	alias da_FMOD_System_GetVersion = FMOD_RESULT function(FMOD_SYSTEM *system,  uint  *version_);
145 	alias da_FMOD_System_GetOutputHandle = FMOD_RESULT function(FMOD_SYSTEM *system, void **handle);
146 	alias da_FMOD_System_GetChannelsPlaying = FMOD_RESULT function(FMOD_SYSTEM *system, int *channels, int *realchannels);
147 	alias da_FMOD_System_GetCPUUsage = FMOD_RESULT function(FMOD_SYSTEM *system, float *dsp, float *stream, float *geometry, float *update, float *total);
148 	alias da_FMOD_System_GetFileUsage = FMOD_RESULT function(FMOD_SYSTEM *system, long *sampleBytesRead, long *streamBytesRead, long *otherBytesRead);
149 	alias da_FMOD_System_GetSoundRAM = FMOD_RESULT function(FMOD_SYSTEM *system, int *currentalloced, int *maxalloced, int *total);
150 	
151 	/*
152 	 Sound/DSP/Channel/FX creation and retrieval.
153 */
154 	
155 	alias da_FMOD_System_CreateSound = FMOD_RESULT function(FMOD_SYSTEM *system, const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, FMOD_SOUND **sound);
156 	alias da_FMOD_System_CreateStream = FMOD_RESULT function(FMOD_SYSTEM *system, const char *name_or_data, FMOD_MODE mode, FMOD_CREATESOUNDEXINFO *exinfo, FMOD_SOUND **sound);
157 	alias da_FMOD_System_CreateDSP = FMOD_RESULT function(FMOD_SYSTEM *system, const FMOD_DSP_DESCRIPTION *description, FMOD_DSP **dsp);
158 	alias da_FMOD_System_CreateDSPByType = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_DSP_TYPE type, FMOD_DSP **dsp);
159 	alias da_FMOD_System_CreateChannelGroup = FMOD_RESULT function(FMOD_SYSTEM *system, const char *name, FMOD_CHANNELGROUP **channelgroup);
160 	alias da_FMOD_System_CreateSoundGroup = FMOD_RESULT function(FMOD_SYSTEM *system, const char *name, FMOD_SOUNDGROUP **soundgroup);
161 	alias da_FMOD_System_CreateReverb3D = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_REVERB3D **reverb);
162 	
163 	alias da_FMOD_System_PlaySound = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SOUND *sound, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel);
164 	alias da_FMOD_System_PlayDSP = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_DSP *dsp, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused, FMOD_CHANNEL **channel);
165 	alias da_FMOD_System_GetChannel = FMOD_RESULT function(FMOD_SYSTEM *system, int channelid, FMOD_CHANNEL **channel);
166 	alias da_FMOD_System_GetMasterChannelGroup = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_CHANNELGROUP **channelgroup);
167 	alias da_FMOD_System_GetMasterSoundGroup = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_SOUNDGROUP **soundgroup);
168 	
169 	/*
170 	 Routing to ports.
171 */
172 	
173 	alias da_FMOD_System_AttachChannelGroupToPort = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_PORT_TYPE portType, FMOD_PORT_INDEX portIndex, FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL passThru);
174 	alias da_FMOD_System_DetachChannelGroupFromPort = FMOD_RESULT function(FMOD_SYSTEM *system, FMOD_CHANNELGROUP *channelgroup);
175 	
176 	/*
177 	 Reverb API.
178 */
179 	
180 	alias da_FMOD_System_SetReverbProperties = FMOD_RESULT function(FMOD_SYSTEM *system, int instance, const FMOD_REVERB_PROPERTIES *prop);
181 	alias da_FMOD_System_GetReverbProperties = FMOD_RESULT function(FMOD_SYSTEM *system, int instance, FMOD_REVERB_PROPERTIES *prop);
182 	
183 	/*
184 	 System level DSP functionality.
185 */
186 	
187 	alias da_FMOD_System_LockDSP = FMOD_RESULT function(FMOD_SYSTEM *system);
188 	alias da_FMOD_System_UnlockDSP = FMOD_RESULT function(FMOD_SYSTEM *system);
189 	
190 	/*
191 	 Recording API.
192 */
193 	
194 	alias da_FMOD_System_GetRecordNumDrivers = FMOD_RESULT function(FMOD_SYSTEM *system, int *numdrivers, int *numconnected);
195 	alias da_FMOD_System_GetRecordDriverInfo = FMOD_RESULT function(FMOD_SYSTEM *system, int id, char *name, int namelen, FMOD_GUID *guid, int *systemrate, FMOD_SPEAKERMODE *speakermode, int *speakermodechannels, FMOD_DRIVER_STATE *state);
196 	alias da_FMOD_System_GetRecordPosition = FMOD_RESULT function(FMOD_SYSTEM *system, int id,  uint *position);
197 	alias da_FMOD_System_RecordStart = FMOD_RESULT function(FMOD_SYSTEM *system, int id, FMOD_SOUND *sound, FMOD_BOOL loop);
198 	alias da_FMOD_System_RecordStop = FMOD_RESULT function(FMOD_SYSTEM *system, int id);
199 	alias da_FMOD_System_IsRecording = FMOD_RESULT function(FMOD_SYSTEM *system, int id, FMOD_BOOL *recording);
200 	
201 	/*
202 	 Geometry API.
203 */
204 	
205 	alias da_FMOD_System_CreateGeometry = FMOD_RESULT function(FMOD_SYSTEM *system, int maxpolygons, int maxvertices, FMOD_GEOMETRY **geometry);
206 	alias da_FMOD_System_SetGeometrySettings = FMOD_RESULT function(FMOD_SYSTEM *system, float maxworldsize);
207 	alias da_FMOD_System_GetGeometrySettings = FMOD_RESULT function(FMOD_SYSTEM *system, float *maxworldsize);
208 	alias da_FMOD_System_LoadGeometry = FMOD_RESULT function(FMOD_SYSTEM *system, const void *data, int datasize, FMOD_GEOMETRY **geometry);
209 	alias da_FMOD_System_GetGeometryOcclusion = FMOD_RESULT function(FMOD_SYSTEM *system, const FMOD_VECTOR *listener, const FMOD_VECTOR *source, float *direct, float *reverb);
210 	
211 	/*
212 	 Network functions.
213 */
214 	
215 	alias da_FMOD_System_SetNetworkProxy = FMOD_RESULT function(FMOD_SYSTEM *system, const char *proxy);
216 	alias da_FMOD_System_GetNetworkProxy = FMOD_RESULT function(FMOD_SYSTEM *system, char *proxy, int proxylen);
217 	alias da_FMOD_System_SetNetworkTimeout = FMOD_RESULT function(FMOD_SYSTEM *system, int timeout);
218 	alias da_FMOD_System_GetNetworkTimeout = FMOD_RESULT function(FMOD_SYSTEM *system, int *timeout);
219 	
220 	/*
221 	 Userdata set/get.
222 */
223 	
224 	alias da_FMOD_System_SetUserData = FMOD_RESULT function(FMOD_SYSTEM *system, void *userdata);
225 	alias da_FMOD_System_GetUserData = FMOD_RESULT function(FMOD_SYSTEM *system, void **userdata);
226 	
227 	/*
228 	'Sound' API
229 */
230 	
231 	alias da_FMOD_Sound_Release = FMOD_RESULT function(FMOD_SOUND *sound);
232 	alias da_FMOD_Sound_GetSystemObject = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SYSTEM **system);
233 	
234 	/*
235 	 Standard sound manipulation functions.
236 */
237 	
238 	alias da_FMOD_Sound_Lock = FMOD_RESULT function(FMOD_SOUND *sound,  uint offset,  uint length, void **ptr1, void **ptr2,  uint *len1,  uint *len2);
239 	alias da_FMOD_Sound_Unlock = FMOD_RESULT function(FMOD_SOUND *sound, void *ptr1, void *ptr2,  uint len1,  uint len2);
240 	alias da_FMOD_Sound_SetDefaults = FMOD_RESULT function(FMOD_SOUND *sound, float frequency, int priority);
241 	alias da_FMOD_Sound_GetDefaults = FMOD_RESULT function(FMOD_SOUND *sound, float *frequency, int *priority);
242 	alias da_FMOD_Sound_Set3DMinMaxDistance = FMOD_RESULT function(FMOD_SOUND *sound, float min, float max);
243 	alias da_FMOD_Sound_Get3DMinMaxDistance = FMOD_RESULT function(FMOD_SOUND *sound, float *min, float *max);
244 	alias da_FMOD_Sound_Set3DConeSettings = FMOD_RESULT function(FMOD_SOUND *sound, float insideconeangle, float outsideconeangle, float outsidevolume);
245 	alias da_FMOD_Sound_Get3DConeSettings = FMOD_RESULT function(FMOD_SOUND *sound, float *insideconeangle, float *outsideconeangle, float *outsidevolume);
246 	alias da_FMOD_Sound_Set3DCustomRolloff = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_VECTOR *points, int numpoints);
247 	alias da_FMOD_Sound_Get3DCustomRolloff = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_VECTOR **points, int *numpoints);
248 	alias da_FMOD_Sound_GetSubSound = FMOD_RESULT function(FMOD_SOUND *sound, int index, FMOD_SOUND **subsound);
249 	alias da_FMOD_Sound_GetSubSoundParent = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SOUND **parentsound);
250 	alias da_FMOD_Sound_GetName = FMOD_RESULT function(FMOD_SOUND *sound, char *name, int namelen);
251 	alias da_FMOD_Sound_GetLength = FMOD_RESULT function(FMOD_SOUND *sound,  uint *length, FMOD_TIMEUNIT lengthtype);
252 	alias da_FMOD_Sound_GetFormat = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SOUND_TYPE *type, FMOD_SOUND_FORMAT *format, int *channels, int *bits);
253 	alias da_FMOD_Sound_GetNumSubSounds = FMOD_RESULT function(FMOD_SOUND *sound, int *numsubsounds);
254 	alias da_FMOD_Sound_GetNumTags = FMOD_RESULT function(FMOD_SOUND *sound, int *numtags, int *numtagsupdated);
255 	alias da_FMOD_Sound_GetTag = FMOD_RESULT function(FMOD_SOUND *sound, const(char) *name, int index, FMOD_TAG *tag);
256 	alias da_FMOD_Sound_GetOpenState = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_OPENSTATE *openstate, uint *percentbuffered, FMOD_BOOL *starving, FMOD_BOOL *diskbusy);
257 	alias da_FMOD_Sound_ReadData = FMOD_RESULT function(FMOD_SOUND *sound, void *buffer, uint length, uint *read);
258 	alias da_FMOD_Sound_SeekData = FMOD_RESULT function(FMOD_SOUND *sound, uint pcm);
259 	
260 	alias da_FMOD_Sound_SetSoundGroup = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SOUNDGROUP *soundgroup);
261 	alias da_FMOD_Sound_GetSoundGroup = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SOUNDGROUP **soundgroup);
262 	
263 	/*
264 	 Synchronization point API.  These points can come from markers embedded in wav files, and can also generate channel callbacks.
265 */
266 	
267 	alias da_FMOD_Sound_GetNumSyncPoints = FMOD_RESULT function(FMOD_SOUND *sound, int *numsyncpoints);
268 	alias da_FMOD_Sound_GetSyncPoint = FMOD_RESULT function(FMOD_SOUND *sound, int index, FMOD_SYNCPOINT **point);
269 	alias da_FMOD_Sound_GetSyncPointInfo = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SYNCPOINT *point, char *name, int namelen,  uint *offset, FMOD_TIMEUNIT offsettype);
270 	alias da_FMOD_Sound_AddSyncPoint = FMOD_RESULT function(FMOD_SOUND *sound,  uint offset, FMOD_TIMEUNIT offsettype, const char *name, FMOD_SYNCPOINT **point);
271 	alias da_FMOD_Sound_DeleteSyncPoint = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_SYNCPOINT *point);
272 	
273 	/*
274 	 Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time.
275 */
276 	
277 	alias da_FMOD_Sound_SetMode = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_MODE mode);
278 	alias da_FMOD_Sound_GetMode = FMOD_RESULT function(FMOD_SOUND *sound, FMOD_MODE *mode);
279 	alias da_FMOD_Sound_SetLoopCount = FMOD_RESULT function(FMOD_SOUND *sound, int loopcount);
280 	alias da_FMOD_Sound_GetLoopCount = FMOD_RESULT function(FMOD_SOUND *sound, int *loopcount);
281 	alias da_FMOD_Sound_SetLoopPoints = FMOD_RESULT function(FMOD_SOUND *sound,  uint loopstart, FMOD_TIMEUNIT loopstarttype,  uint loopend, FMOD_TIMEUNIT loopendtype);
282 	alias da_FMOD_Sound_GetLoopPoints = FMOD_RESULT function(FMOD_SOUND *sound,  uint *loopstart, FMOD_TIMEUNIT loopstarttype,  uint *loopend, FMOD_TIMEUNIT loopendtype);
283 	
284 	/*
285 	 For MOD/S3M/XM/IT/MID sequenced formats only.
286 */
287 	
288 	alias da_FMOD_Sound_GetMusicNumChannels = FMOD_RESULT function(FMOD_SOUND *sound, int *numchannels);
289 	alias da_FMOD_Sound_SetMusicChannelVolume = FMOD_RESULT function(FMOD_SOUND *sound, int channel, float volume);
290 	alias da_FMOD_Sound_GetMusicChannelVolume = FMOD_RESULT function(FMOD_SOUND *sound, int channel, float *volume);
291 	alias da_FMOD_Sound_SetMusicSpeed = FMOD_RESULT function(FMOD_SOUND *sound, float speed);
292 	alias da_FMOD_Sound_GetMusicSpeed = FMOD_RESULT function(FMOD_SOUND *sound, float *speed);
293 	
294 	/*
295 	 Userdata set/get.
296 */
297 	
298 	alias da_FMOD_Sound_SetUserData = FMOD_RESULT function(FMOD_SOUND *sound, void *userdata);
299 	alias da_FMOD_Sound_GetUserData = FMOD_RESULT function(FMOD_SOUND *sound, void **userdata);
300 	
301 	/*
302 	'Channel' API
303 */
304 	
305 	alias da_FMOD_Channel_GetSystemObject = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_SYSTEM **system);
306 	
307 	/*
308 	 General control functionality for Channels and ChannelGroups.
309 */
310 	
311 	alias da_FMOD_Channel_Stop = FMOD_RESULT function(FMOD_CHANNEL *channel);
312 	alias da_FMOD_Channel_SetPaused = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL paused);
313 	alias da_FMOD_Channel_GetPaused = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL *paused);
314 	alias da_FMOD_Channel_SetVolume = FMOD_RESULT function(FMOD_CHANNEL *channel, float volume);
315 	alias da_FMOD_Channel_GetVolume = FMOD_RESULT function(FMOD_CHANNEL *channel, float *volume);
316 	alias da_FMOD_Channel_SetVolumeRamp = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL ramp);
317 	alias da_FMOD_Channel_GetVolumeRamp = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL *ramp);
318 	alias da_FMOD_Channel_GetAudibility = FMOD_RESULT function(FMOD_CHANNEL *channel, float *audibility);
319 	alias da_FMOD_Channel_SetPitch = FMOD_RESULT function(FMOD_CHANNEL *channel, float pitch);
320 	alias da_FMOD_Channel_GetPitch = FMOD_RESULT function(FMOD_CHANNEL *channel, float *pitch);
321 	alias da_FMOD_Channel_SetMute = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL mute);
322 	alias da_FMOD_Channel_GetMute = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL *mute);
323 	alias da_FMOD_Channel_SetReverbProperties = FMOD_RESULT function(FMOD_CHANNEL *channel, int instance, float wet);
324 	alias da_FMOD_Channel_GetReverbProperties = FMOD_RESULT function(FMOD_CHANNEL *channel, int instance, float *wet);
325 	alias da_FMOD_Channel_SetLowPassGain = FMOD_RESULT function(FMOD_CHANNEL *channel, float gain);
326 	alias da_FMOD_Channel_GetLowPassGain = FMOD_RESULT function(FMOD_CHANNEL *channel, float *gain);
327 	alias da_FMOD_Channel_SetMode = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_MODE mode);
328 	alias da_FMOD_Channel_GetMode = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_MODE *mode);
329 	alias da_FMOD_Channel_SetCallback = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_CHANNELCONTROL_CALLBACK callback);
330 	alias da_FMOD_Channel_IsPlaying = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL *isplaying);
331 	
332 	/*
333 	 Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values.
334 */
335 	
336 	alias da_FMOD_Channel_SetPan = FMOD_RESULT function(FMOD_CHANNEL *channel, float pan);
337 	alias da_FMOD_Channel_SetMixLevelsOutput = FMOD_RESULT function(FMOD_CHANNEL *channel, float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright);
338 	alias da_FMOD_Channel_SetMixLevelsInput = FMOD_RESULT function(FMOD_CHANNEL *channel, float *levels, int numlevels);
339 	alias da_FMOD_Channel_SetMixMatrix = FMOD_RESULT function(FMOD_CHANNEL *channel, float *matrix, int outchannels, int inchannels, int inchannel_hop);
340 	alias da_FMOD_Channel_GetMixMatrix = FMOD_RESULT function(FMOD_CHANNEL *channel, float *matrix, int *outchannels, int *inchannels, int inchannel_hop);
341 	
342 	/*
343 	 Clock based functionality.
344 */
345 	
346 	alias da_FMOD_Channel_GetDSPClock = FMOD_RESULT function(FMOD_CHANNEL *channel, ulong *dspclock, ulong *parentclock);
347 	alias da_FMOD_Channel_SetDelay = FMOD_RESULT function(FMOD_CHANNEL *channel, ulong dspclock_start, ulong dspclock_end, FMOD_BOOL stopchannels);
348 	alias da_FMOD_Channel_GetDelay = FMOD_RESULT function(FMOD_CHANNEL *channel, ulong *dspclock_start, ulong *dspclock_end, FMOD_BOOL *stopchannels);
349 	alias da_FMOD_Channel_AddFadePoint = FMOD_RESULT function(FMOD_CHANNEL *channel, ulong dspclock, float volume);
350 	alias da_FMOD_Channel_SetFadePointRamp = FMOD_RESULT function(FMOD_CHANNEL *channel, ulong dspclock, float volume);
351 	alias da_FMOD_Channel_RemoveFadePoints = FMOD_RESULT function(FMOD_CHANNEL *channel, ulong dspclock_start, ulong dspclock_end);
352 	alias da_FMOD_Channel_GetFadePoints = FMOD_RESULT function(FMOD_CHANNEL *channel,  uint *numpoints, ulong *point_dspclock, float *point_volume);
353 	
354 	/*
355 	 DSP effects.
356 */
357 	
358 	alias da_FMOD_Channel_GetDSP = FMOD_RESULT function(FMOD_CHANNEL *channel, int index, FMOD_DSP **dsp);
359 	alias da_FMOD_Channel_AddDSP = FMOD_RESULT function(FMOD_CHANNEL *channel, int index, FMOD_DSP *dsp);
360 	alias da_FMOD_Channel_RemoveDSP = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_DSP *dsp);
361 	alias da_FMOD_Channel_GetNumDSPs = FMOD_RESULT function(FMOD_CHANNEL *channel, int *numdsps);
362 	alias da_FMOD_Channel_SetDSPIndex = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_DSP *dsp, int index);
363 	alias da_FMOD_Channel_GetDSPIndex = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_DSP *dsp, int *index);
364 	
365 	/*
366 	 3D functionality.
367 */
368 	
369 	alias da_FMOD_Channel_Set3DAttributes = FMOD_RESULT function(FMOD_CHANNEL *channel, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos);
370 	alias da_FMOD_Channel_Get3DAttributes = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos);
371 	alias da_FMOD_Channel_Set3DMinMaxDistance = FMOD_RESULT function(FMOD_CHANNEL *channel, float mindistance, float maxdistance);
372 	alias da_FMOD_Channel_Get3DMinMaxDistance = FMOD_RESULT function(FMOD_CHANNEL *channel, float *mindistance, float *maxdistance);
373 	alias da_FMOD_Channel_Set3DConeSettings = FMOD_RESULT function(FMOD_CHANNEL *channel, float insideconeangle, float outsideconeangle, float outsidevolume);
374 	alias da_FMOD_Channel_Get3DConeSettings = FMOD_RESULT function(FMOD_CHANNEL *channel, float *insideconeangle, float *outsideconeangle, float *outsidevolume);
375 	alias da_FMOD_Channel_Set3DConeOrientation = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_VECTOR *orientation);
376 	alias da_FMOD_Channel_Get3DConeOrientation = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_VECTOR *orientation);
377 	alias da_FMOD_Channel_Set3DCustomRolloff = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_VECTOR *points, int numpoints);
378 	alias da_FMOD_Channel_Get3DCustomRolloff = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_VECTOR **points, int *numpoints);
379 	alias da_FMOD_Channel_Set3DOcclusion = FMOD_RESULT function(FMOD_CHANNEL *channel, float directocclusion, float reverbocclusion);
380 	alias da_FMOD_Channel_Get3DOcclusion = FMOD_RESULT function(FMOD_CHANNEL *channel, float *directocclusion, float *reverbocclusion);
381 	alias da_FMOD_Channel_Set3DSpread = FMOD_RESULT function(FMOD_CHANNEL *channel, float angle);
382 	alias da_FMOD_Channel_Get3DSpread = FMOD_RESULT function(FMOD_CHANNEL *channel, float *angle);
383 	alias da_FMOD_Channel_Set3DLevel = FMOD_RESULT function(FMOD_CHANNEL *channel, float level);
384 	alias da_FMOD_Channel_Get3DLevel = FMOD_RESULT function(FMOD_CHANNEL *channel, float *level);
385 	alias da_FMOD_Channel_Set3DDopplerLevel = FMOD_RESULT function(FMOD_CHANNEL *channel, float level);
386 	alias da_FMOD_Channel_Get3DDopplerLevel = FMOD_RESULT function(FMOD_CHANNEL *channel, float *level);
387 	alias da_FMOD_Channel_Set3DDistanceFilter = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL custom, float customLevel, float centerFreq);
388 	alias da_FMOD_Channel_Get3DDistanceFilter = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL *custom, float *customLevel, float *centerFreq);
389 	
390 	/*
391 	 Userdata set/get.
392 */
393 	
394 	alias da_FMOD_Channel_SetUserData = FMOD_RESULT function(FMOD_CHANNEL *channel, void *userdata);
395 	alias da_FMOD_Channel_GetUserData = FMOD_RESULT function(FMOD_CHANNEL *channel, void **userdata);
396 	
397 	/*
398 	 Channel specific control functionality.
399 */
400 	
401 	alias da_FMOD_Channel_SetFrequency = FMOD_RESULT function(FMOD_CHANNEL *channel, float frequency);
402 	alias da_FMOD_Channel_GetFrequency = FMOD_RESULT function(FMOD_CHANNEL *channel, float *frequency);
403 	alias da_FMOD_Channel_SetPriority = FMOD_RESULT function(FMOD_CHANNEL *channel, int priority);
404 	alias da_FMOD_Channel_GetPriority = FMOD_RESULT function(FMOD_CHANNEL *channel, int *priority);
405 	alias da_FMOD_Channel_SetPosition = FMOD_RESULT function(FMOD_CHANNEL *channel,  uint position, FMOD_TIMEUNIT postype);
406 	alias da_FMOD_Channel_GetPosition = FMOD_RESULT function(FMOD_CHANNEL *channel,  uint *position, FMOD_TIMEUNIT postype);
407 	alias da_FMOD_Channel_SetChannelGroup = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_CHANNELGROUP *channelgroup);
408 	alias da_FMOD_Channel_GetChannelGroup = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_CHANNELGROUP **channelgroup);
409 	alias da_FMOD_Channel_SetLoopCount = FMOD_RESULT function(FMOD_CHANNEL *channel, int loopcount);
410 	alias da_FMOD_Channel_GetLoopCount = FMOD_RESULT function(FMOD_CHANNEL *channel, int *loopcount);
411 	alias da_FMOD_Channel_SetLoopPoints = FMOD_RESULT function(FMOD_CHANNEL *channel,  uint loopstart, FMOD_TIMEUNIT loopstarttype,  uint loopend, FMOD_TIMEUNIT loopendtype);
412 	alias da_FMOD_Channel_GetLoopPoints = FMOD_RESULT function(FMOD_CHANNEL *channel,  uint *loopstart, FMOD_TIMEUNIT loopstarttype,  uint *loopend, FMOD_TIMEUNIT loopendtype);
413 	
414 	/*
415 	 Information only functions.
416 */
417 	
418 	alias da_FMOD_Channel_IsVirtual = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_BOOL *isvirtual);
419 	alias da_FMOD_Channel_GetCurrentSound = FMOD_RESULT function(FMOD_CHANNEL *channel, FMOD_SOUND **sound);
420 	alias da_FMOD_Channel_GetIndex = FMOD_RESULT function(FMOD_CHANNEL *channel, int *index);
421 	
422 	/*
423 	'ChannelGroup' API
424 */
425 	
426 	alias da_FMOD_ChannelGroup_GetSystemObject = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_SYSTEM **system);
427 	
428 	/*
429 	 General control functionality for Channels and ChannelGroups.
430 */
431 	
432 	alias da_FMOD_ChannelGroup_Stop = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup);
433 	alias da_FMOD_ChannelGroup_SetPaused = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL paused);
434 	alias da_FMOD_ChannelGroup_GetPaused = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *paused);
435 	alias da_FMOD_ChannelGroup_SetVolume = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float volume);
436 	alias da_FMOD_ChannelGroup_GetVolume = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *volume);
437 	alias da_FMOD_ChannelGroup_SetVolumeRamp = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL ramp);
438 	alias da_FMOD_ChannelGroup_GetVolumeRamp = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *ramp);
439 	alias da_FMOD_ChannelGroup_GetAudibility = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *audibility);
440 	alias da_FMOD_ChannelGroup_SetPitch = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float pitch);
441 	alias da_FMOD_ChannelGroup_GetPitch = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *pitch);
442 	alias da_FMOD_ChannelGroup_SetMute = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL mute);
443 	alias da_FMOD_ChannelGroup_GetMute = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *mute);
444 	alias da_FMOD_ChannelGroup_SetReverbProperties = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int instance, float wet);
445 	alias da_FMOD_ChannelGroup_GetReverbProperties = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int instance, float *wet);
446 	alias da_FMOD_ChannelGroup_SetLowPassGain = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float gain);
447 	alias da_FMOD_ChannelGroup_GetLowPassGain = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *gain);
448 	alias da_FMOD_ChannelGroup_SetMode = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_MODE mode);
449 	alias da_FMOD_ChannelGroup_GetMode = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_MODE *mode);
450 	alias da_FMOD_ChannelGroup_SetCallback = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELCONTROL_CALLBACK callback);
451 	alias da_FMOD_ChannelGroup_IsPlaying = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *isplaying);
452 	
453 	/*
454 	 Note all 'set' functions alter a final matrix, this is why the only get function is getMixMatrix, to avoid other get functions returning incorrect/obsolete values.
455 */
456 	
457 	alias da_FMOD_ChannelGroup_SetPan = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float pan);
458 	alias da_FMOD_ChannelGroup_SetMixLevelsOutput = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float frontleft, float frontright, float center, float lfe, float surroundleft, float surroundright, float backleft, float backright);
459 	alias da_FMOD_ChannelGroup_SetMixLevelsInput = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *levels, int numlevels);
460 	alias da_FMOD_ChannelGroup_SetMixMatrix = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *matrix, int outchannels, int inchannels, int inchannel_hop);
461 	alias da_FMOD_ChannelGroup_GetMixMatrix = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *matrix, int *outchannels, int *inchannels, int inchannel_hop);
462 	
463 	/*
464 	 Clock based functionality.
465 */
466 	
467 	alias da_FMOD_ChannelGroup_GetDSPClock = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, ulong *dspclock, ulong *parentclock);
468 	alias da_FMOD_ChannelGroup_SetDelay = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, ulong dspclock_start, ulong dspclock_end, FMOD_BOOL stopchannels);
469 	alias da_FMOD_ChannelGroup_GetDelay = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, ulong *dspclock_start, ulong *dspclock_end, FMOD_BOOL *stopchannels);
470 	alias da_FMOD_ChannelGroup_AddFadePoint = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, ulong dspclock, float volume);
471 	alias da_FMOD_ChannelGroup_SetFadePointRamp = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, ulong dspclock, float volume);
472 	alias da_FMOD_ChannelGroup_RemoveFadePoints = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, ulong dspclock_start, ulong dspclock_end);
473 	alias da_FMOD_ChannelGroup_GetFadePoints = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup,  uint *numpoints, ulong *point_dspclock, float *point_volume);
474 	
475 	/*
476 	 DSP effects.
477 */
478 	
479 	alias da_FMOD_ChannelGroup_GetDSP = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int index, FMOD_DSP **dsp);
480 	alias da_FMOD_ChannelGroup_AddDSP = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int index, FMOD_DSP *dsp);
481 	alias da_FMOD_ChannelGroup_RemoveDSP = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp);
482 	alias da_FMOD_ChannelGroup_GetNumDSPs = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int *numdsps);
483 	alias da_FMOD_ChannelGroup_SetDSPIndex = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp, int index);
484 	alias da_FMOD_ChannelGroup_GetDSPIndex = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_DSP *dsp, int *index);
485 	
486 	/*
487 	 3D functionality.
488 */
489 	
490 	alias da_FMOD_ChannelGroup_Set3DAttributes = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *alt_pan_pos);
491 	alias da_FMOD_ChannelGroup_Get3DAttributes = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *alt_pan_pos);
492 	alias da_FMOD_ChannelGroup_Set3DMinMaxDistance = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float mindistance, float maxdistance);
493 	alias da_FMOD_ChannelGroup_Get3DMinMaxDistance = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *mindistance, float *maxdistance);
494 	alias da_FMOD_ChannelGroup_Set3DConeSettings = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float insideconeangle, float outsideconeangle, float outsidevolume);
495 	alias da_FMOD_ChannelGroup_Get3DConeSettings = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *insideconeangle, float *outsideconeangle, float *outsidevolume);
496 	alias da_FMOD_ChannelGroup_Set3DConeOrientation = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *orientation);
497 	alias da_FMOD_ChannelGroup_Get3DConeOrientation = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *orientation);
498 	alias da_FMOD_ChannelGroup_Set3DCustomRolloff = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR *points, int numpoints);
499 	alias da_FMOD_ChannelGroup_Get3DCustomRolloff = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_VECTOR **points, int *numpoints);
500 	alias da_FMOD_ChannelGroup_Set3DOcclusion = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float directocclusion, float reverbocclusion);
501 	alias da_FMOD_ChannelGroup_Get3DOcclusion = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *directocclusion, float *reverbocclusion);
502 	alias da_FMOD_ChannelGroup_Set3DSpread = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float angle);
503 	alias da_FMOD_ChannelGroup_Get3DSpread = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *angle);
504 	alias da_FMOD_ChannelGroup_Set3DLevel = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float level);
505 	alias da_FMOD_ChannelGroup_Get3DLevel = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *level);
506 	alias da_FMOD_ChannelGroup_Set3DDopplerLevel = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float level);
507 	alias da_FMOD_ChannelGroup_Get3DDopplerLevel = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, float *level);
508 	alias da_FMOD_ChannelGroup_Set3DDistanceFilter = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL custom, float customLevel, float centerFreq);
509 	alias da_FMOD_ChannelGroup_Get3DDistanceFilter = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_BOOL *custom, float *customLevel, float *centerFreq);
510 	
511 	/*
512 	 Userdata set/get.
513 */
514 	
515 	alias da_FMOD_ChannelGroup_SetUserData = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, void *userdata);
516 	alias da_FMOD_ChannelGroup_GetUserData = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, void **userdata);
517 	
518 	alias da_FMOD_ChannelGroup_Release = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup);
519 	
520 	/*
521 	 Nested channel groups.
522 */
523 	
524 	alias da_FMOD_ChannelGroup_AddGroup = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELGROUP *group, FMOD_BOOL propagatedspclock, FMOD_DSPCONNECTION **connection);
525 	alias da_FMOD_ChannelGroup_GetNumGroups = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int *numgroups);
526 	alias da_FMOD_ChannelGroup_GetGroup = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int index, FMOD_CHANNELGROUP **group);
527 	alias da_FMOD_ChannelGroup_GetParentGroup = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, FMOD_CHANNELGROUP **group);
528 	
529 	/*
530 	 Information only functions.
531 */
532 	
533 	alias da_FMOD_ChannelGroup_GetName = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, char *name, int namelen);
534 	alias da_FMOD_ChannelGroup_GetNumChannels = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int *numchannels);
535 	alias da_FMOD_ChannelGroup_GetChannel = FMOD_RESULT function(FMOD_CHANNELGROUP *channelgroup, int index, FMOD_CHANNEL **channel);
536 	
537 	/*
538 	'SoundGroup' API
539 */
540 	
541 	alias da_FMOD_SoundGroup_Release = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup);
542 	alias da_FMOD_SoundGroup_GetSystemObject = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, FMOD_SYSTEM **system);
543 	
544 	/*
545 	 SoundGroup control functions.
546 */
547 	
548 	alias da_FMOD_SoundGroup_SetMaxAudible = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, int maxaudible);
549 	alias da_FMOD_SoundGroup_GetMaxAudible = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, int *maxaudible);
550 	alias da_FMOD_SoundGroup_SetMaxAudibleBehavior = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, FMOD_SOUNDGROUP_BEHAVIOR behavior);
551 	alias da_FMOD_SoundGroup_GetMaxAudibleBehavior = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, FMOD_SOUNDGROUP_BEHAVIOR *behavior);
552 	alias da_FMOD_SoundGroup_SetMuteFadeSpeed = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, float speed);
553 	alias da_FMOD_SoundGroup_GetMuteFadeSpeed = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, float *speed);
554 	alias da_FMOD_SoundGroup_SetVolume = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, float volume);
555 	alias da_FMOD_SoundGroup_GetVolume = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, float *volume);
556 	alias da_FMOD_SoundGroup_Stop = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup);
557 	
558 	/*
559 	 Information only functions.
560 */
561 	
562 	alias da_FMOD_SoundGroup_GetName = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, char *name, int namelen);
563 	alias da_FMOD_SoundGroup_GetNumSounds = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, int *numsounds);
564 	alias da_FMOD_SoundGroup_GetSound = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, int index, FMOD_SOUND **sound);
565 	alias da_FMOD_SoundGroup_GetNumPlaying = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, int *numplaying);
566 	
567 	/*
568 	 Userdata set/get.
569 */
570 	
571 	alias da_FMOD_SoundGroup_SetUserData = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, void *userdata);
572 	alias da_FMOD_SoundGroup_GetUserData = FMOD_RESULT function(FMOD_SOUNDGROUP *soundgroup, void **userdata);
573 	
574 	/*
575 	'DSP' API
576 */
577 	
578 	alias da_FMOD_DSP_Release = FMOD_RESULT function(FMOD_DSP *dsp);
579 	alias da_FMOD_DSP_GetSystemObject = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_SYSTEM **system);
580 	
581 	/*
582 	 Connection / disconnection / input and output enumeration.
583 */
584 	
585 	alias da_FMOD_DSP_AddInput = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_DSP *input, FMOD_DSPCONNECTION **connection, FMOD_DSPCONNECTION_TYPE type);
586 	alias da_FMOD_DSP_DisconnectFrom = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_DSP *target, FMOD_DSPCONNECTION *connection);
587 	alias da_FMOD_DSP_DisconnectAll = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL inputs, FMOD_BOOL outputs);
588 	alias da_FMOD_DSP_GetNumInputs = FMOD_RESULT function(FMOD_DSP *dsp, int *numinputs);
589 	alias da_FMOD_DSP_GetNumOutputs = FMOD_RESULT function(FMOD_DSP *dsp, int *numoutputs);
590 	alias da_FMOD_DSP_GetInput = FMOD_RESULT function(FMOD_DSP *dsp, int index, FMOD_DSP **input, FMOD_DSPCONNECTION **inputconnection);
591 	alias da_FMOD_DSP_GetOutput = FMOD_RESULT function(FMOD_DSP *dsp, int index, FMOD_DSP **output, FMOD_DSPCONNECTION **outputconnection);
592 	
593 	/*
594 	 DSP unit control.
595 */
596 	
597 	alias da_FMOD_DSP_SetActive = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL active);
598 	alias da_FMOD_DSP_GetActive = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL *active);
599 	alias da_FMOD_DSP_SetBypass = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL bypass);
600 	alias da_FMOD_DSP_GetBypass = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL *bypass);
601 	alias da_FMOD_DSP_SetWetDryMix = FMOD_RESULT function(FMOD_DSP *dsp, float prewet, float postwet, float dry);
602 	alias da_FMOD_DSP_GetWetDryMix = FMOD_RESULT function(FMOD_DSP *dsp, float *prewet, float *postwet, float *dry);
603 	alias da_FMOD_DSP_SetChannelFormat = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_CHANNELMASK channelmask, int numchannels, FMOD_SPEAKERMODE source_speakermode);
604 	alias da_FMOD_DSP_GetChannelFormat = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_CHANNELMASK *channelmask, int *numchannels, FMOD_SPEAKERMODE *source_speakermode);
605 	alias da_FMOD_DSP_GetOutputChannelFormat = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_CHANNELMASK inmask, int inchannels, FMOD_SPEAKERMODE inspeakermode, FMOD_CHANNELMASK *outmask, int *outchannels, FMOD_SPEAKERMODE *outspeakermode);
606 	alias da_FMOD_DSP_Reset = FMOD_RESULT function(FMOD_DSP *dsp);
607 	
608 	/*
609 	 DSP parameter control.
610 */
611 	
612 	alias da_FMOD_DSP_SetParameterFloat = FMOD_RESULT function(FMOD_DSP *dsp, int index, float value);
613 	alias da_FMOD_DSP_SetParameterInt = FMOD_RESULT function(FMOD_DSP *dsp, int index, int value);
614 	alias da_FMOD_DSP_SetParameterBool = FMOD_RESULT function(FMOD_DSP *dsp, int index, FMOD_BOOL value);
615 	alias da_FMOD_DSP_SetParameterData = FMOD_RESULT function(FMOD_DSP *dsp, int index, void *data,  uint length);
616 	alias da_FMOD_DSP_GetParameterFloat = FMOD_RESULT function(FMOD_DSP *dsp, int index, float *value, char *valuestr, int valuestrlen);
617 	alias da_FMOD_DSP_GetParameterInt = FMOD_RESULT function(FMOD_DSP *dsp, int index, int *value, char *valuestr, int valuestrlen);
618 	alias da_FMOD_DSP_GetParameterBool = FMOD_RESULT function(FMOD_DSP *dsp, int index, FMOD_BOOL *value, char *valuestr, int valuestrlen);
619 	alias da_FMOD_DSP_GetParameterData = FMOD_RESULT function(FMOD_DSP *dsp, int index, void **data,  uint *length, char *valuestr, int valuestrlen);
620 	alias da_FMOD_DSP_GetNumParameters = FMOD_RESULT function(FMOD_DSP *dsp, int *numparams);
621 	alias da_FMOD_DSP_GetParameterInfo = FMOD_RESULT function(FMOD_DSP *dsp, int index, FMOD_DSP_PARAMETER_DESC **desc);
622 	alias da_FMOD_DSP_GetDataParameterIndex = FMOD_RESULT function(FMOD_DSP *dsp, int datatype, int *index);
623 	alias da_FMOD_DSP_ShowConfigDialog = FMOD_RESULT function(FMOD_DSP *dsp, void *hwnd, FMOD_BOOL show);
624 	
625 	/*
626 	 DSP attributes.
627 */
628 	
629 	alias da_FMOD_DSP_GetInfo = FMOD_RESULT function(FMOD_DSP *dsp, char *name,  uint  *version_, int *channels, int *configwidth, int *configheight);
630 	alias da_FMOD_DSP_GetType = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_DSP_TYPE *type);
631 	alias da_FMOD_DSP_GetIdle = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL *idle);
632 	
633 	/*
634 	 Userdata set/get.
635 */
636 	
637 	alias da_FMOD_DSP_SetUserData = FMOD_RESULT function(FMOD_DSP *dsp, void *userdata);
638 	alias da_FMOD_DSP_GetUserData = FMOD_RESULT function(FMOD_DSP *dsp, void **userdata);
639 	
640 	/*
641 	 Metering.
642 */
643 	
644 	alias da_FMOD_DSP_SetMeteringEnabled = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL inputEnabled, FMOD_BOOL outputEnabled);
645 	alias da_FMOD_DSP_GetMeteringEnabled = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_BOOL *inputEnabled, FMOD_BOOL *outputEnabled);
646 	alias da_FMOD_DSP_GetMeteringInfo = FMOD_RESULT function(FMOD_DSP *dsp, FMOD_DSP_METERING_INFO *inputInfo, FMOD_DSP_METERING_INFO *outputInfo);
647 	
648 	/*
649 	'DSPConnection' API
650 */
651 	
652 	alias da_FMOD_DSPConnection_GetInput = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, FMOD_DSP **input);
653 	alias da_FMOD_DSPConnection_GetOutput = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, FMOD_DSP **output);
654 	alias da_FMOD_DSPConnection_SetMix = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, float volume);
655 	alias da_FMOD_DSPConnection_GetMix = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, float *volume);
656 	alias da_FMOD_DSPConnection_SetMixMatrix = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, float *matrix, int outchannels, int inchannels, int inchannel_hop);
657 	alias da_FMOD_DSPConnection_GetMixMatrix = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, float *matrix, int *outchannels, int *inchannels, int inchannel_hop);
658 	alias da_FMOD_DSPConnection_GetType = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, FMOD_DSPCONNECTION_TYPE *type);
659 	
660 	/*
661 	 Userdata set/get.
662 */
663 	
664 	alias da_FMOD_DSPConnection_SetUserData = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, void *userdata);
665 	alias da_FMOD_DSPConnection_GetUserData = FMOD_RESULT function(FMOD_DSPCONNECTION *dspconnection, void **userdata);
666 	
667 	/*
668 	'Geometry' API
669 */
670 	
671 	alias da_FMOD_Geometry_Release = FMOD_RESULT function(FMOD_GEOMETRY *geometry);
672 	
673 	/*
674 	 Polygon manipulation.
675 */
676 	
677 	alias da_FMOD_Geometry_AddPolygon = FMOD_RESULT function(FMOD_GEOMETRY *geometry, float directocclusion, float reverbocclusion, FMOD_BOOL doublesided, int numvertices, const FMOD_VECTOR *vertices, int *polygonindex);
678 	alias da_FMOD_Geometry_GetNumPolygons = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int *numpolygons);
679 	alias da_FMOD_Geometry_GetMaxPolygons = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int *maxpolygons, int *maxvertices);
680 	alias da_FMOD_Geometry_GetPolygonNumVertices = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int index, int *numvertices);
681 	alias da_FMOD_Geometry_SetPolygonVertex = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int index, int vertexindex, const FMOD_VECTOR *vertex);
682 	alias da_FMOD_Geometry_GetPolygonVertex = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int index, int vertexindex, FMOD_VECTOR *vertex);
683 	alias da_FMOD_Geometry_SetPolygonAttributes = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int index, float directocclusion, float reverbocclusion, FMOD_BOOL doublesided);
684 	alias da_FMOD_Geometry_GetPolygonAttributes = FMOD_RESULT function(FMOD_GEOMETRY *geometry, int index, float *directocclusion, float *reverbocclusion, FMOD_BOOL *doublesided);
685 	
686 	/*
687 	 Object manipulation.
688 */
689 	
690 	alias da_FMOD_Geometry_SetActive = FMOD_RESULT function(FMOD_GEOMETRY *geometry, FMOD_BOOL active);
691 	alias da_FMOD_Geometry_GetActive = FMOD_RESULT function(FMOD_GEOMETRY *geometry, FMOD_BOOL *active);
692 	alias da_FMOD_Geometry_SetRotation = FMOD_RESULT function(FMOD_GEOMETRY *geometry, const FMOD_VECTOR *forward, const FMOD_VECTOR *up);
693 	alias da_FMOD_Geometry_GetRotation = FMOD_RESULT function(FMOD_GEOMETRY *geometry, FMOD_VECTOR *forward, FMOD_VECTOR *up);
694 	alias da_FMOD_Geometry_SetPosition = FMOD_RESULT function(FMOD_GEOMETRY *geometry, const FMOD_VECTOR *position);
695 	alias da_FMOD_Geometry_GetPosition = FMOD_RESULT function(FMOD_GEOMETRY *geometry, FMOD_VECTOR *position);
696 	alias da_FMOD_Geometry_SetScale = FMOD_RESULT function(FMOD_GEOMETRY *geometry, const FMOD_VECTOR *scale);
697 	alias da_FMOD_Geometry_GetScale = FMOD_RESULT function(FMOD_GEOMETRY *geometry, FMOD_VECTOR *scale);
698 	alias da_FMOD_Geometry_Save = FMOD_RESULT function(FMOD_GEOMETRY *geometry, void *data, int *datasize);
699 	
700 	/*
701 	 Userdata set/get.
702 */
703 	
704 	alias da_FMOD_Geometry_SetUserData = FMOD_RESULT function(FMOD_GEOMETRY *geometry, void *userdata);
705 	alias da_FMOD_Geometry_GetUserData = FMOD_RESULT function(FMOD_GEOMETRY *geometry, void **userdata);
706 	
707 	/*
708 	'Reverb3D' API
709 */
710 	
711 	alias da_FMOD_Reverb3D_Release = FMOD_RESULT function(FMOD_REVERB3D *reverb3d);
712 	
713 	/*
714 	 Reverb manipulation.
715 */
716 	
717 	alias da_FMOD_Reverb3D_Set3DAttributes = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, const FMOD_VECTOR *position, float mindistance, float maxdistance);
718 	alias da_FMOD_Reverb3D_Get3DAttributes = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, FMOD_VECTOR *position, float *mindistance, float *maxdistance);
719 	alias da_FMOD_Reverb3D_SetProperties = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, const FMOD_REVERB_PROPERTIES *properties);
720 	alias da_FMOD_Reverb3D_GetProperties = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, FMOD_REVERB_PROPERTIES *properties);
721 	alias da_FMOD_Reverb3D_SetActive = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, FMOD_BOOL active);
722 	alias da_FMOD_Reverb3D_GetActive = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, FMOD_BOOL *active);
723 	
724 	/*
725 	 Userdata set/get.
726 */
727 	
728 	alias da_FMOD_Reverb3D_SetUserData = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, void *userdata);
729 	alias da_FMOD_Reverb3D_GetUserData = FMOD_RESULT function(FMOD_REVERB3D *reverb3d, void **userdata);
730 }
731 
732 __gshared
733 {
734 	da_FMOD_Memory_Initialize FMOD_Memory_Initialize;
735 	da_FMOD_Memory_GetStats FMOD_Memory_GetStats;
736 	da_FMOD_Debug_Initialize FMOD_Debug_Initialize;
737 	da_FMOD_File_SetDiskBusy FMOD_File_SetDiskBusy;
738 	da_FMOD_File_GetDiskBusy FMOD_File_GetDiskBusy;
739 	da_FMOD_System_Create FMOD_System_Create;
740 	da_FMOD_System_Release FMOD_System_Release;
741 	da_FMOD_System_SetOutput FMOD_System_SetOutput;
742 	da_FMOD_System_GetOutput FMOD_System_GetOutput;
743 	da_FMOD_System_GetNumDrivers FMOD_System_GetNumDrivers;
744 	da_FMOD_System_GetDriverInfo FMOD_System_GetDriverInfo;
745 	da_FMOD_System_SetDriver FMOD_System_SetDriver;
746 	da_FMOD_System_GetDriver FMOD_System_GetDriver;
747 	da_FMOD_System_SetSoftwareChannels FMOD_System_SetSoftwareChannels;
748 	da_FMOD_System_GetSoftwareChannels FMOD_System_GetSoftwareChannels;
749 	da_FMOD_System_SetSoftwareFormat FMOD_System_SetSoftwareFormat;
750 	da_FMOD_System_GetSoftwareFormat FMOD_System_GetSoftwareFormat;
751 	da_FMOD_System_SetDSPBufferSize FMOD_System_SetDSPBufferSize;
752 	da_FMOD_System_GetDSPBufferSize FMOD_System_GetDSPBufferSize;
753 	da_FMOD_System_SetFileSystem FMOD_System_SetFileSystem;
754 	da_FMOD_System_AttachFileSystem FMOD_System_AttachFileSystem;
755 	da_FMOD_System_SetAdvancedSettings FMOD_System_SetAdvancedSettings;
756 	da_FMOD_System_GetAdvancedSettings FMOD_System_GetAdvancedSettings;
757 	da_FMOD_System_SetCallback FMOD_System_SetCallback;
758 	da_FMOD_System_SetPluginPath FMOD_System_SetPluginPath;
759 	da_FMOD_System_LoadPlugin FMOD_System_LoadPlugin;
760 	da_FMOD_System_UnloadPlugin FMOD_System_UnloadPlugin;
761 	da_FMOD_System_GetNumNestedPlugins FMOD_System_GetNumNestedPlugins;
762 	da_FMOD_System_GetNestedPlugin FMOD_System_GetNestedPlugin;
763 	da_FMOD_System_GetNumPlugins FMOD_System_GetNumPlugins;
764 	da_FMOD_System_GetPluginHandle FMOD_System_GetPluginHandle;
765 	da_FMOD_System_GetPluginInfo FMOD_System_GetPluginInfo;
766 	da_FMOD_System_SetOutputByPlugin FMOD_System_SetOutputByPlugin;
767 	da_FMOD_System_GetOutputByPlugin FMOD_System_GetOutputByPlugin;
768 	da_FMOD_System_CreateDSPByPlugin FMOD_System_CreateDSPByPlugin;
769 	da_FMOD_System_GetDSPInfoByPlugin FMOD_System_GetDSPInfoByPlugin;
770 	da_FMOD_System_RegisterCodec FMOD_System_RegisterCodec;
771 	da_FMOD_System_RegisterDSP FMOD_System_RegisterDSP;
772 	da_FMOD_System_RegisterOutput FMOD_System_RegisterOutput;
773 	da_FMOD_System_Init FMOD_System_Init;
774 	da_FMOD_System_Close FMOD_System_Close;
775 	da_FMOD_System_Update FMOD_System_Update;
776 	da_FMOD_System_SetSpeakerPosition FMOD_System_SetSpeakerPosition;
777 	da_FMOD_System_GetSpeakerPosition FMOD_System_GetSpeakerPosition;
778 	da_FMOD_System_SetStreamBufferSize FMOD_System_SetStreamBufferSize;
779 	da_FMOD_System_GetStreamBufferSize FMOD_System_GetStreamBufferSize;
780 	da_FMOD_System_Set3DSettings FMOD_System_Set3DSettings;
781 	da_FMOD_System_Get3DSettings FMOD_System_Get3DSettings;
782 	da_FMOD_System_Set3DNumListeners FMOD_System_Set3DNumListeners;
783 	da_FMOD_System_Get3DNumListeners FMOD_System_Get3DNumListeners;
784 	da_FMOD_System_Set3DListenerAttributes FMOD_System_Set3DListenerAttributes;
785 	da_FMOD_System_Get3DListenerAttributes FMOD_System_Get3DListenerAttributes;
786 	da_FMOD_System_Set3DRolloffCallback FMOD_System_Set3DRolloffCallback;
787 	da_FMOD_System_MixerSuspend FMOD_System_MixerSuspend;
788 	da_FMOD_System_MixerResume FMOD_System_MixerResume;
789 	da_FMOD_System_GetDefaultMixMatrix FMOD_System_GetDefaultMixMatrix;
790 	da_FMOD_System_GetSpeakerModeChannels FMOD_System_GetSpeakerModeChannels;
791 	da_FMOD_System_GetVersion FMOD_System_GetVersion;
792 	da_FMOD_System_GetOutputHandle FMOD_System_GetOutputHandle;
793 	da_FMOD_System_GetChannelsPlaying FMOD_System_GetChannelsPlaying;
794 	da_FMOD_System_GetCPUUsage FMOD_System_GetCPUUsage;
795 	da_FMOD_System_GetFileUsage FMOD_System_GetFileUsage;
796 	da_FMOD_System_GetSoundRAM FMOD_System_GetSoundRAM;
797 	da_FMOD_System_CreateSound FMOD_System_CreateSound;
798 	da_FMOD_System_CreateStream FMOD_System_CreateStream;
799 	da_FMOD_System_CreateDSP FMOD_System_CreateDSP;
800 	da_FMOD_System_CreateDSPByType FMOD_System_CreateDSPByType;
801 	da_FMOD_System_CreateChannelGroup FMOD_System_CreateChannelGroup;
802 	da_FMOD_System_CreateSoundGroup FMOD_System_CreateSoundGroup;
803 	da_FMOD_System_CreateReverb3D FMOD_System_CreateReverb3D;
804 	da_FMOD_System_PlaySound FMOD_System_PlaySound;
805 	da_FMOD_System_PlayDSP FMOD_System_PlayDSP;
806 	da_FMOD_System_GetChannel FMOD_System_GetChannel;
807 	da_FMOD_System_GetMasterChannelGroup FMOD_System_GetMasterChannelGroup;
808 	da_FMOD_System_GetMasterSoundGroup FMOD_System_GetMasterSoundGroup;
809 	da_FMOD_System_AttachChannelGroupToPort FMOD_System_AttachChannelGroupToPort;
810 	da_FMOD_System_DetachChannelGroupFromPort FMOD_System_DetachChannelGroupFromPort;
811 	da_FMOD_System_SetReverbProperties FMOD_System_SetReverbProperties;
812 	da_FMOD_System_GetReverbProperties FMOD_System_GetReverbProperties;
813 	da_FMOD_System_LockDSP FMOD_System_LockDSP;
814 	da_FMOD_System_UnlockDSP FMOD_System_UnlockDSP;
815 	da_FMOD_System_GetRecordNumDrivers FMOD_System_GetRecordNumDrivers;
816 	da_FMOD_System_GetRecordDriverInfo FMOD_System_GetRecordDriverInfo;
817 	da_FMOD_System_GetRecordPosition FMOD_System_GetRecordPosition;
818 	da_FMOD_System_RecordStart FMOD_System_RecordStart;
819 	da_FMOD_System_RecordStop FMOD_System_RecordStop;
820 	da_FMOD_System_IsRecording FMOD_System_IsRecording;
821 	da_FMOD_System_CreateGeometry FMOD_System_CreateGeometry;
822 	da_FMOD_System_SetGeometrySettings FMOD_System_SetGeometrySettings;
823 	da_FMOD_System_GetGeometrySettings FMOD_System_GetGeometrySettings;
824 	da_FMOD_System_LoadGeometry FMOD_System_LoadGeometry;
825 	da_FMOD_System_GetGeometryOcclusion FMOD_System_GetGeometryOcclusion;
826 	da_FMOD_System_SetNetworkProxy FMOD_System_SetNetworkProxy;
827 	da_FMOD_System_GetNetworkProxy FMOD_System_GetNetworkProxy;
828 	da_FMOD_System_SetNetworkTimeout FMOD_System_SetNetworkTimeout;
829 	da_FMOD_System_GetNetworkTimeout FMOD_System_GetNetworkTimeout;
830 	da_FMOD_System_SetUserData FMOD_System_SetUserData;
831 	da_FMOD_System_GetUserData FMOD_System_GetUserData;
832 	da_FMOD_Sound_Release FMOD_Sound_Release;
833 	da_FMOD_Sound_GetSystemObject FMOD_Sound_GetSystemObject;
834 	da_FMOD_Sound_Lock FMOD_Sound_Lock;
835 	da_FMOD_Sound_Unlock FMOD_Sound_Unlock;
836 	da_FMOD_Sound_SetDefaults FMOD_Sound_SetDefaults;
837 	da_FMOD_Sound_GetDefaults FMOD_Sound_GetDefaults;
838 	da_FMOD_Sound_Set3DMinMaxDistance FMOD_Sound_Set3DMinMaxDistance;
839 	da_FMOD_Sound_Get3DMinMaxDistance FMOD_Sound_Get3DMinMaxDistance;
840 	da_FMOD_Sound_Set3DConeSettings FMOD_Sound_Set3DConeSettings;
841 	da_FMOD_Sound_Get3DConeSettings FMOD_Sound_Get3DConeSettings;
842 	da_FMOD_Sound_Set3DCustomRolloff FMOD_Sound_Set3DCustomRolloff;
843 	da_FMOD_Sound_Get3DCustomRolloff FMOD_Sound_Get3DCustomRolloff;
844 	da_FMOD_Sound_GetSubSound FMOD_Sound_GetSubSound;
845 	da_FMOD_Sound_GetSubSoundParent FMOD_Sound_GetSubSoundParent;
846 	da_FMOD_Sound_GetName FMOD_Sound_GetName;
847 	da_FMOD_Sound_GetLength FMOD_Sound_GetLength;
848 	da_FMOD_Sound_GetFormat FMOD_Sound_GetFormat;
849 	da_FMOD_Sound_GetNumSubSounds FMOD_Sound_GetNumSubSounds;
850 	da_FMOD_Sound_GetNumTags FMOD_Sound_GetNumTags;
851 	da_FMOD_Sound_GetTag FMOD_Sound_GetTag;
852 	da_FMOD_Sound_GetOpenState FMOD_Sound_GetOpenState;
853 	da_FMOD_Sound_ReadData FMOD_Sound_ReadData;
854 	da_FMOD_Sound_SeekData FMOD_Sound_SeekData;
855 	da_FMOD_Sound_SetSoundGroup FMOD_Sound_SetSoundGroup;
856 	da_FMOD_Sound_GetSoundGroup FMOD_Sound_GetSoundGroup;
857 	da_FMOD_Sound_GetNumSyncPoints FMOD_Sound_GetNumSyncPoints;
858 	da_FMOD_Sound_GetSyncPoint FMOD_Sound_GetSyncPoint;
859 	da_FMOD_Sound_GetSyncPointInfo FMOD_Sound_GetSyncPointInfo;
860 	da_FMOD_Sound_AddSyncPoint FMOD_Sound_AddSyncPoint;
861 	da_FMOD_Sound_DeleteSyncPoint FMOD_Sound_DeleteSyncPoint;
862 	da_FMOD_Sound_SetMode FMOD_Sound_SetMode;
863 	da_FMOD_Sound_GetMode FMOD_Sound_GetMode;
864 	da_FMOD_Sound_SetLoopCount FMOD_Sound_SetLoopCount;
865 	da_FMOD_Sound_GetLoopCount FMOD_Sound_GetLoopCount;
866 	da_FMOD_Sound_SetLoopPoints FMOD_Sound_SetLoopPoints;
867 	da_FMOD_Sound_GetLoopPoints FMOD_Sound_GetLoopPoints;
868 	da_FMOD_Sound_GetMusicNumChannels FMOD_Sound_GetMusicNumChannels;
869 	da_FMOD_Sound_SetMusicChannelVolume FMOD_Sound_SetMusicChannelVolume;
870 	da_FMOD_Sound_GetMusicChannelVolume FMOD_Sound_GetMusicChannelVolume;
871 	da_FMOD_Sound_SetMusicSpeed FMOD_Sound_SetMusicSpeed;
872 	da_FMOD_Sound_GetMusicSpeed FMOD_Sound_GetMusicSpeed;
873 	da_FMOD_Sound_SetUserData FMOD_Sound_SetUserData;
874 	da_FMOD_Sound_GetUserData FMOD_Sound_GetUserData;
875 	da_FMOD_Channel_GetSystemObject FMOD_Channel_GetSystemObject;
876 	da_FMOD_Channel_Stop FMOD_Channel_Stop;
877 	da_FMOD_Channel_SetPaused FMOD_Channel_SetPaused;
878 	da_FMOD_Channel_GetPaused FMOD_Channel_GetPaused;
879 	da_FMOD_Channel_SetVolume FMOD_Channel_SetVolume;
880 	da_FMOD_Channel_GetVolume FMOD_Channel_GetVolume;
881 	da_FMOD_Channel_SetVolumeRamp FMOD_Channel_SetVolumeRamp;
882 	da_FMOD_Channel_GetVolumeRamp FMOD_Channel_GetVolumeRamp;
883 	da_FMOD_Channel_GetAudibility FMOD_Channel_GetAudibility;
884 	da_FMOD_Channel_SetPitch FMOD_Channel_SetPitch;
885 	da_FMOD_Channel_GetPitch FMOD_Channel_GetPitch;
886 	da_FMOD_Channel_SetMute FMOD_Channel_SetMute;
887 	da_FMOD_Channel_GetMute FMOD_Channel_GetMute;
888 	da_FMOD_Channel_SetReverbProperties FMOD_Channel_SetReverbProperties;
889 	da_FMOD_Channel_GetReverbProperties FMOD_Channel_GetReverbProperties;
890 	da_FMOD_Channel_SetLowPassGain FMOD_Channel_SetLowPassGain;
891 	da_FMOD_Channel_GetLowPassGain FMOD_Channel_GetLowPassGain;
892 	da_FMOD_Channel_SetMode FMOD_Channel_SetMode;
893 	da_FMOD_Channel_GetMode FMOD_Channel_GetMode;
894 	da_FMOD_Channel_SetCallback FMOD_Channel_SetCallback;
895 	da_FMOD_Channel_IsPlaying FMOD_Channel_IsPlaying;
896 	da_FMOD_Channel_SetPan FMOD_Channel_SetPan;
897 	da_FMOD_Channel_SetMixLevelsOutput FMOD_Channel_SetMixLevelsOutput;
898 	da_FMOD_Channel_SetMixLevelsInput FMOD_Channel_SetMixLevelsInput;
899 	da_FMOD_Channel_SetMixMatrix FMOD_Channel_SetMixMatrix;
900 	da_FMOD_Channel_GetMixMatrix FMOD_Channel_GetMixMatrix;
901 	da_FMOD_Channel_GetDSPClock FMOD_Channel_GetDSPClock;
902 	da_FMOD_Channel_SetDelay FMOD_Channel_SetDelay;
903 	da_FMOD_Channel_GetDelay FMOD_Channel_GetDelay;
904 	da_FMOD_Channel_AddFadePoint FMOD_Channel_AddFadePoint;
905 	da_FMOD_Channel_SetFadePointRamp FMOD_Channel_SetFadePointRamp;
906 	da_FMOD_Channel_RemoveFadePoints FMOD_Channel_RemoveFadePoints;
907 	da_FMOD_Channel_GetFadePoints FMOD_Channel_GetFadePoints;
908 	da_FMOD_Channel_GetDSP FMOD_Channel_GetDSP;
909 	da_FMOD_Channel_AddDSP FMOD_Channel_AddDSP;
910 	da_FMOD_Channel_RemoveDSP FMOD_Channel_RemoveDSP;
911 	da_FMOD_Channel_GetNumDSPs FMOD_Channel_GetNumDSPs;
912 	da_FMOD_Channel_SetDSPIndex FMOD_Channel_SetDSPIndex;
913 	da_FMOD_Channel_GetDSPIndex FMOD_Channel_GetDSPIndex;
914 	da_FMOD_Channel_Set3DAttributes FMOD_Channel_Set3DAttributes;
915 	da_FMOD_Channel_Get3DAttributes FMOD_Channel_Get3DAttributes;
916 	da_FMOD_Channel_Set3DMinMaxDistance FMOD_Channel_Set3DMinMaxDistance;
917 	da_FMOD_Channel_Get3DMinMaxDistance FMOD_Channel_Get3DMinMaxDistance;
918 	da_FMOD_Channel_Set3DConeSettings FMOD_Channel_Set3DConeSettings;
919 	da_FMOD_Channel_Get3DConeSettings FMOD_Channel_Get3DConeSettings;
920 	da_FMOD_Channel_Set3DConeOrientation FMOD_Channel_Set3DConeOrientation;
921 	da_FMOD_Channel_Get3DConeOrientation FMOD_Channel_Get3DConeOrientation;
922 	da_FMOD_Channel_Set3DCustomRolloff FMOD_Channel_Set3DCustomRolloff;
923 	da_FMOD_Channel_Get3DCustomRolloff FMOD_Channel_Get3DCustomRolloff;
924 	da_FMOD_Channel_Set3DOcclusion FMOD_Channel_Set3DOcclusion;
925 	da_FMOD_Channel_Get3DOcclusion FMOD_Channel_Get3DOcclusion;
926 	da_FMOD_Channel_Set3DSpread FMOD_Channel_Set3DSpread;
927 	da_FMOD_Channel_Get3DSpread FMOD_Channel_Get3DSpread;
928 	da_FMOD_Channel_Set3DLevel FMOD_Channel_Set3DLevel;
929 	da_FMOD_Channel_Get3DLevel FMOD_Channel_Get3DLevel;
930 	da_FMOD_Channel_Set3DDopplerLevel FMOD_Channel_Set3DDopplerLevel;
931 	da_FMOD_Channel_Get3DDopplerLevel FMOD_Channel_Get3DDopplerLevel;
932 	da_FMOD_Channel_Set3DDistanceFilter FMOD_Channel_Set3DDistanceFilter;
933 	da_FMOD_Channel_Get3DDistanceFilter FMOD_Channel_Get3DDistanceFilter;
934 	da_FMOD_Channel_SetUserData FMOD_Channel_SetUserData;
935 	da_FMOD_Channel_GetUserData FMOD_Channel_GetUserData;
936 	da_FMOD_Channel_SetFrequency FMOD_Channel_SetFrequency;
937 	da_FMOD_Channel_GetFrequency FMOD_Channel_GetFrequency;
938 	da_FMOD_Channel_SetPriority FMOD_Channel_SetPriority;
939 	da_FMOD_Channel_GetPriority FMOD_Channel_GetPriority;
940 	da_FMOD_Channel_SetPosition FMOD_Channel_SetPosition;
941 	da_FMOD_Channel_GetPosition FMOD_Channel_GetPosition;
942 	da_FMOD_Channel_SetChannelGroup FMOD_Channel_SetChannelGroup;
943 	da_FMOD_Channel_GetChannelGroup FMOD_Channel_GetChannelGroup;
944 	da_FMOD_Channel_SetLoopCount FMOD_Channel_SetLoopCount;
945 	da_FMOD_Channel_GetLoopCount FMOD_Channel_GetLoopCount;
946 	da_FMOD_Channel_SetLoopPoints FMOD_Channel_SetLoopPoints;
947 	da_FMOD_Channel_GetLoopPoints FMOD_Channel_GetLoopPoints;
948 	da_FMOD_Channel_IsVirtual FMOD_Channel_IsVirtual;
949 	da_FMOD_Channel_GetCurrentSound FMOD_Channel_GetCurrentSound;
950 	da_FMOD_Channel_GetIndex FMOD_Channel_GetIndex;
951 	da_FMOD_ChannelGroup_GetSystemObject FMOD_ChannelGroup_GetSystemObject;
952 	da_FMOD_ChannelGroup_Stop FMOD_ChannelGroup_Stop;
953 	da_FMOD_ChannelGroup_SetPaused FMOD_ChannelGroup_SetPaused;
954 	da_FMOD_ChannelGroup_GetPaused FMOD_ChannelGroup_GetPaused;
955 	da_FMOD_ChannelGroup_SetVolume FMOD_ChannelGroup_SetVolume;
956 	da_FMOD_ChannelGroup_GetVolume FMOD_ChannelGroup_GetVolume;
957 	da_FMOD_ChannelGroup_SetVolumeRamp FMOD_ChannelGroup_SetVolumeRamp;
958 	da_FMOD_ChannelGroup_GetVolumeRamp FMOD_ChannelGroup_GetVolumeRamp;
959 	da_FMOD_ChannelGroup_GetAudibility FMOD_ChannelGroup_GetAudibility;
960 	da_FMOD_ChannelGroup_SetPitch FMOD_ChannelGroup_SetPitch;
961 	da_FMOD_ChannelGroup_GetPitch FMOD_ChannelGroup_GetPitch;
962 	da_FMOD_ChannelGroup_SetMute FMOD_ChannelGroup_SetMute;
963 	da_FMOD_ChannelGroup_GetMute FMOD_ChannelGroup_GetMute;
964 	da_FMOD_ChannelGroup_SetReverbProperties FMOD_ChannelGroup_SetReverbProperties;
965 	da_FMOD_ChannelGroup_GetReverbProperties FMOD_ChannelGroup_GetReverbProperties;
966 	da_FMOD_ChannelGroup_SetLowPassGain FMOD_ChannelGroup_SetLowPassGain;
967 	da_FMOD_ChannelGroup_GetLowPassGain FMOD_ChannelGroup_GetLowPassGain;
968 	da_FMOD_ChannelGroup_SetMode FMOD_ChannelGroup_SetMode;
969 	da_FMOD_ChannelGroup_GetMode FMOD_ChannelGroup_GetMode;
970 	da_FMOD_ChannelGroup_SetCallback FMOD_ChannelGroup_SetCallback;
971 	da_FMOD_ChannelGroup_IsPlaying FMOD_ChannelGroup_IsPlaying;
972 	da_FMOD_ChannelGroup_SetPan FMOD_ChannelGroup_SetPan;
973 	da_FMOD_ChannelGroup_SetMixLevelsOutput FMOD_ChannelGroup_SetMixLevelsOutput;
974 	da_FMOD_ChannelGroup_SetMixLevelsInput FMOD_ChannelGroup_SetMixLevelsInput;
975 	da_FMOD_ChannelGroup_SetMixMatrix FMOD_ChannelGroup_SetMixMatrix;
976 	da_FMOD_ChannelGroup_GetMixMatrix FMOD_ChannelGroup_GetMixMatrix;
977 	da_FMOD_ChannelGroup_GetDSPClock FMOD_ChannelGroup_GetDSPClock;
978 	da_FMOD_ChannelGroup_SetDelay FMOD_ChannelGroup_SetDelay;
979 	da_FMOD_ChannelGroup_GetDelay FMOD_ChannelGroup_GetDelay;
980 	da_FMOD_ChannelGroup_AddFadePoint FMOD_ChannelGroup_AddFadePoint;
981 	da_FMOD_ChannelGroup_SetFadePointRamp FMOD_ChannelGroup_SetFadePointRamp;
982 	da_FMOD_ChannelGroup_RemoveFadePoints FMOD_ChannelGroup_RemoveFadePoints;
983 	da_FMOD_ChannelGroup_GetFadePoints FMOD_ChannelGroup_GetFadePoints;
984 	da_FMOD_ChannelGroup_GetDSP FMOD_ChannelGroup_GetDSP;
985 	da_FMOD_ChannelGroup_AddDSP FMOD_ChannelGroup_AddDSP;
986 	da_FMOD_ChannelGroup_RemoveDSP FMOD_ChannelGroup_RemoveDSP;
987 	da_FMOD_ChannelGroup_GetNumDSPs FMOD_ChannelGroup_GetNumDSPs;
988 	da_FMOD_ChannelGroup_SetDSPIndex FMOD_ChannelGroup_SetDSPIndex;
989 	da_FMOD_ChannelGroup_GetDSPIndex FMOD_ChannelGroup_GetDSPIndex;
990 	da_FMOD_ChannelGroup_Set3DAttributes FMOD_ChannelGroup_Set3DAttributes;
991 	da_FMOD_ChannelGroup_Get3DAttributes FMOD_ChannelGroup_Get3DAttributes;
992 	da_FMOD_ChannelGroup_Set3DMinMaxDistance FMOD_ChannelGroup_Set3DMinMaxDistance;
993 	da_FMOD_ChannelGroup_Get3DMinMaxDistance FMOD_ChannelGroup_Get3DMinMaxDistance;
994 	da_FMOD_ChannelGroup_Set3DConeSettings FMOD_ChannelGroup_Set3DConeSettings;
995 	da_FMOD_ChannelGroup_Get3DConeSettings FMOD_ChannelGroup_Get3DConeSettings;
996 	da_FMOD_ChannelGroup_Set3DConeOrientation FMOD_ChannelGroup_Set3DConeOrientation;
997 	da_FMOD_ChannelGroup_Get3DConeOrientation FMOD_ChannelGroup_Get3DConeOrientation;
998 	da_FMOD_ChannelGroup_Set3DCustomRolloff FMOD_ChannelGroup_Set3DCustomRolloff;
999 	da_FMOD_ChannelGroup_Get3DCustomRolloff FMOD_ChannelGroup_Get3DCustomRolloff;
1000 	da_FMOD_ChannelGroup_Set3DOcclusion FMOD_ChannelGroup_Set3DOcclusion;
1001 	da_FMOD_ChannelGroup_Get3DOcclusion FMOD_ChannelGroup_Get3DOcclusion;
1002 	da_FMOD_ChannelGroup_Set3DSpread FMOD_ChannelGroup_Set3DSpread;
1003 	da_FMOD_ChannelGroup_Get3DSpread FMOD_ChannelGroup_Get3DSpread;
1004 	da_FMOD_ChannelGroup_Set3DLevel FMOD_ChannelGroup_Set3DLevel;
1005 	da_FMOD_ChannelGroup_Get3DLevel FMOD_ChannelGroup_Get3DLevel;
1006 	da_FMOD_ChannelGroup_Set3DDopplerLevel FMOD_ChannelGroup_Set3DDopplerLevel;
1007 	da_FMOD_ChannelGroup_Get3DDopplerLevel FMOD_ChannelGroup_Get3DDopplerLevel;
1008 	da_FMOD_ChannelGroup_Set3DDistanceFilter FMOD_ChannelGroup_Set3DDistanceFilter;
1009 	da_FMOD_ChannelGroup_Get3DDistanceFilter FMOD_ChannelGroup_Get3DDistanceFilter;
1010 	da_FMOD_ChannelGroup_SetUserData FMOD_ChannelGroup_SetUserData;
1011 	da_FMOD_ChannelGroup_GetUserData FMOD_ChannelGroup_GetUserData;
1012 	da_FMOD_ChannelGroup_Release FMOD_ChannelGroup_Release;
1013 	da_FMOD_ChannelGroup_AddGroup FMOD_ChannelGroup_AddGroup;
1014 	da_FMOD_ChannelGroup_GetNumGroups FMOD_ChannelGroup_GetNumGroups;
1015 	da_FMOD_ChannelGroup_GetGroup FMOD_ChannelGroup_GetGroup;
1016 	da_FMOD_ChannelGroup_GetParentGroup FMOD_ChannelGroup_GetParentGroup;
1017 	da_FMOD_ChannelGroup_GetName FMOD_ChannelGroup_GetName;
1018 	da_FMOD_ChannelGroup_GetNumChannels FMOD_ChannelGroup_GetNumChannels;
1019 	da_FMOD_ChannelGroup_GetChannel FMOD_ChannelGroup_GetChannel;
1020 	da_FMOD_SoundGroup_Release FMOD_SoundGroup_Release;
1021 	da_FMOD_SoundGroup_GetSystemObject FMOD_SoundGroup_GetSystemObject;
1022 	da_FMOD_SoundGroup_SetMaxAudible FMOD_SoundGroup_SetMaxAudible;
1023 	da_FMOD_SoundGroup_GetMaxAudible FMOD_SoundGroup_GetMaxAudible;
1024 	da_FMOD_SoundGroup_SetMaxAudibleBehavior FMOD_SoundGroup_SetMaxAudibleBehavior;
1025 	da_FMOD_SoundGroup_GetMaxAudibleBehavior FMOD_SoundGroup_GetMaxAudibleBehavior;
1026 	da_FMOD_SoundGroup_SetMuteFadeSpeed FMOD_SoundGroup_SetMuteFadeSpeed;
1027 	da_FMOD_SoundGroup_GetMuteFadeSpeed FMOD_SoundGroup_GetMuteFadeSpeed;
1028 	da_FMOD_SoundGroup_SetVolume FMOD_SoundGroup_SetVolume;
1029 	da_FMOD_SoundGroup_GetVolume FMOD_SoundGroup_GetVolume;
1030 	da_FMOD_SoundGroup_Stop FMOD_SoundGroup_Stop;
1031 	da_FMOD_SoundGroup_GetName FMOD_SoundGroup_GetName;
1032 	da_FMOD_SoundGroup_GetNumSounds FMOD_SoundGroup_GetNumSounds;
1033 	da_FMOD_SoundGroup_GetSound FMOD_SoundGroup_GetSound;
1034 	da_FMOD_SoundGroup_GetNumPlaying FMOD_SoundGroup_GetNumPlaying;
1035 	da_FMOD_SoundGroup_SetUserData FMOD_SoundGroup_SetUserData;
1036 	da_FMOD_SoundGroup_GetUserData FMOD_SoundGroup_GetUserData;
1037 	da_FMOD_DSP_Release FMOD_DSP_Release;
1038 	da_FMOD_DSP_GetSystemObject FMOD_DSP_GetSystemObject;
1039 	da_FMOD_DSP_AddInput FMOD_DSP_AddInput;
1040 	da_FMOD_DSP_DisconnectFrom FMOD_DSP_DisconnectFrom;
1041 	da_FMOD_DSP_DisconnectAll FMOD_DSP_DisconnectAll;
1042 	da_FMOD_DSP_GetNumInputs FMOD_DSP_GetNumInputs;
1043 	da_FMOD_DSP_GetNumOutputs FMOD_DSP_GetNumOutputs;
1044 	da_FMOD_DSP_GetInput FMOD_DSP_GetInput;
1045 	da_FMOD_DSP_GetOutput FMOD_DSP_GetOutput;
1046 	da_FMOD_DSP_SetActive FMOD_DSP_SetActive;
1047 	da_FMOD_DSP_GetActive FMOD_DSP_GetActive;
1048 	da_FMOD_DSP_SetBypass FMOD_DSP_SetBypass;
1049 	da_FMOD_DSP_GetBypass FMOD_DSP_GetBypass;
1050 	da_FMOD_DSP_SetWetDryMix FMOD_DSP_SetWetDryMix;
1051 	da_FMOD_DSP_GetWetDryMix FMOD_DSP_GetWetDryMix;
1052 	da_FMOD_DSP_SetChannelFormat FMOD_DSP_SetChannelFormat;
1053 	da_FMOD_DSP_GetChannelFormat FMOD_DSP_GetChannelFormat;
1054 	da_FMOD_DSP_GetOutputChannelFormat FMOD_DSP_GetOutputChannelFormat;
1055 	da_FMOD_DSP_Reset FMOD_DSP_Reset;
1056 	da_FMOD_DSP_SetParameterFloat FMOD_DSP_SetParameterFloat;
1057 	da_FMOD_DSP_SetParameterInt FMOD_DSP_SetParameterInt;
1058 	da_FMOD_DSP_SetParameterBool FMOD_DSP_SetParameterBool;
1059 	da_FMOD_DSP_SetParameterData FMOD_DSP_SetParameterData;
1060 	da_FMOD_DSP_GetParameterFloat FMOD_DSP_GetParameterFloat;
1061 	da_FMOD_DSP_GetParameterInt FMOD_DSP_GetParameterInt;
1062 	da_FMOD_DSP_GetParameterBool FMOD_DSP_GetParameterBool;
1063 	da_FMOD_DSP_GetParameterData FMOD_DSP_GetParameterData;
1064 	da_FMOD_DSP_GetNumParameters FMOD_DSP_GetNumParameters;
1065 	da_FMOD_DSP_GetParameterInfo FMOD_DSP_GetParameterInfo;
1066 	da_FMOD_DSP_GetDataParameterIndex FMOD_DSP_GetDataParameterIndex;
1067 	da_FMOD_DSP_ShowConfigDialog FMOD_DSP_ShowConfigDialog;
1068 	da_FMOD_DSP_GetInfo FMOD_DSP_GetInfo;
1069 	da_FMOD_DSP_GetType FMOD_DSP_GetType;
1070 	da_FMOD_DSP_GetIdle FMOD_DSP_GetIdle;
1071 	da_FMOD_DSP_SetUserData FMOD_DSP_SetUserData;
1072 	da_FMOD_DSP_GetUserData FMOD_DSP_GetUserData;
1073 	da_FMOD_DSP_SetMeteringEnabled FMOD_DSP_SetMeteringEnabled;
1074 	da_FMOD_DSP_GetMeteringEnabled FMOD_DSP_GetMeteringEnabled;
1075 	da_FMOD_DSP_GetMeteringInfo FMOD_DSP_GetMeteringInfo;
1076 	da_FMOD_DSPConnection_GetInput FMOD_DSPConnection_GetInput;
1077 	da_FMOD_DSPConnection_GetOutput FMOD_DSPConnection_GetOutput;
1078 	da_FMOD_DSPConnection_SetMix FMOD_DSPConnection_SetMix;
1079 	da_FMOD_DSPConnection_GetMix FMOD_DSPConnection_GetMix;
1080 	da_FMOD_DSPConnection_SetMixMatrix FMOD_DSPConnection_SetMixMatrix;
1081 	da_FMOD_DSPConnection_GetMixMatrix FMOD_DSPConnection_GetMixMatrix;
1082 	da_FMOD_DSPConnection_GetType FMOD_DSPConnection_GetType;
1083 	da_FMOD_DSPConnection_SetUserData FMOD_DSPConnection_SetUserData;
1084 	da_FMOD_DSPConnection_GetUserData FMOD_DSPConnection_GetUserData;
1085 	da_FMOD_Geometry_Release FMOD_Geometry_Release;
1086 	da_FMOD_Geometry_AddPolygon FMOD_Geometry_AddPolygon;
1087 	da_FMOD_Geometry_GetNumPolygons FMOD_Geometry_GetNumPolygons;
1088 	da_FMOD_Geometry_GetMaxPolygons FMOD_Geometry_GetMaxPolygons;
1089 	da_FMOD_Geometry_GetPolygonNumVertices FMOD_Geometry_GetPolygonNumVertices;
1090 	da_FMOD_Geometry_SetPolygonVertex FMOD_Geometry_SetPolygonVertex;
1091 	da_FMOD_Geometry_GetPolygonVertex FMOD_Geometry_GetPolygonVertex;
1092 	da_FMOD_Geometry_SetPolygonAttributes FMOD_Geometry_SetPolygonAttributes;
1093 	da_FMOD_Geometry_GetPolygonAttributes FMOD_Geometry_GetPolygonAttributes;
1094 	da_FMOD_Geometry_SetActive FMOD_Geometry_SetActive;
1095 	da_FMOD_Geometry_GetActive FMOD_Geometry_GetActive;
1096 	da_FMOD_Geometry_SetRotation FMOD_Geometry_SetRotation;
1097 	da_FMOD_Geometry_GetRotation FMOD_Geometry_GetRotation;
1098 	da_FMOD_Geometry_SetPosition FMOD_Geometry_SetPosition;
1099 	da_FMOD_Geometry_GetPosition FMOD_Geometry_GetPosition;
1100 	da_FMOD_Geometry_SetScale FMOD_Geometry_SetScale;
1101 	da_FMOD_Geometry_GetScale FMOD_Geometry_GetScale;
1102 	da_FMOD_Geometry_Save FMOD_Geometry_Save;
1103 	da_FMOD_Geometry_SetUserData FMOD_Geometry_SetUserData;
1104 	da_FMOD_Geometry_GetUserData FMOD_Geometry_GetUserData;
1105 	da_FMOD_Reverb3D_Release FMOD_Reverb3D_Release;
1106 	da_FMOD_Reverb3D_Set3DAttributes FMOD_Reverb3D_Set3DAttributes;
1107 	da_FMOD_Reverb3D_Get3DAttributes FMOD_Reverb3D_Get3DAttributes;
1108 	da_FMOD_Reverb3D_SetProperties FMOD_Reverb3D_SetProperties;
1109 	da_FMOD_Reverb3D_GetProperties FMOD_Reverb3D_GetProperties;
1110 	da_FMOD_Reverb3D_SetActive FMOD_Reverb3D_SetActive;
1111 	da_FMOD_Reverb3D_GetActive FMOD_Reverb3D_GetActive;
1112 	da_FMOD_Reverb3D_SetUserData FMOD_Reverb3D_SetUserData;
1113 	da_FMOD_Reverb3D_GetUserData FMOD_Reverb3D_GetUserData;
1114 }