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.fmod;
33 
34 public
35 {
36 	import derelict.fmod.dsp;
37 	import derelict.fmod.codec;
38 	import derelict.fmod.common;
39 	import derelict.fmod.funcs;
40 	import derelict.fmod.error;
41 }
42 
43 private
44 {
45 	import derelict.util.loader;
46 	import derelict.util.system;
47 
48 	static if(Derelict_OS_Windows)
49 		enum libNames = "fmod.dll, fmodL.dll";    
50 	else static if (Derelict_OS_Mac)
51 		enum libNames = "libfmod.dylib, libfmodL.dylib";
52 	else static if (Derelict_OS_Linux)
53 		enum libNames = "libfmod.so, libfmodL.so";
54 	else
55 		static assert(0, "Need to implement FMOD libNames for this operating system.");
56 }
57 
58 class DerelictFmodLoader : SharedLibLoader
59 {
60 
61 	protected
62 	{
63 		override void loadSymbols()
64 		{          
65 			bindFunc(cast(void**)&FMOD_Memory_Initialize, "FMOD_Memory_Initialize");
66 			bindFunc(cast(void**)&FMOD_Memory_GetStats, "FMOD_Memory_GetStats");
67 			bindFunc(cast(void**)&FMOD_Debug_Initialize, "FMOD_Debug_Initialize");
68 			bindFunc(cast(void**)&FMOD_File_SetDiskBusy, "FMOD_File_SetDiskBusy");
69 			bindFunc(cast(void**)&FMOD_File_GetDiskBusy, "FMOD_File_GetDiskBusy");
70 			bindFunc(cast(void**)&FMOD_System_Create, "FMOD_System_Create");
71 			bindFunc(cast(void**)&FMOD_System_Release, "FMOD_System_Release");
72 			bindFunc(cast(void**)&FMOD_System_SetOutput, "FMOD_System_SetOutput");
73 			bindFunc(cast(void**)&FMOD_System_GetOutput, "FMOD_System_GetOutput");
74 			bindFunc(cast(void**)&FMOD_System_GetNumDrivers, "FMOD_System_GetNumDrivers");
75 			bindFunc(cast(void**)&FMOD_System_GetDriverInfo, "FMOD_System_GetDriverInfo");
76 			bindFunc(cast(void**)&FMOD_System_SetDriver, "FMOD_System_SetDriver");
77 			bindFunc(cast(void**)&FMOD_System_GetDriver, "FMOD_System_GetDriver");
78 			bindFunc(cast(void**)&FMOD_System_SetSoftwareChannels, "FMOD_System_SetSoftwareChannels");
79 			bindFunc(cast(void**)&FMOD_System_GetSoftwareChannels, "FMOD_System_GetSoftwareChannels");
80 			bindFunc(cast(void**)&FMOD_System_SetSoftwareFormat, "FMOD_System_SetSoftwareFormat");
81 			bindFunc(cast(void**)&FMOD_System_GetSoftwareFormat, "FMOD_System_GetSoftwareFormat");
82 			bindFunc(cast(void**)&FMOD_System_SetDSPBufferSize, "FMOD_System_SetDSPBufferSize");
83 			bindFunc(cast(void**)&FMOD_System_GetDSPBufferSize, "FMOD_System_GetDSPBufferSize");
84 			bindFunc(cast(void**)&FMOD_System_SetFileSystem, "FMOD_System_SetFileSystem");
85 			bindFunc(cast(void**)&FMOD_System_AttachFileSystem, "FMOD_System_AttachFileSystem");
86 			bindFunc(cast(void**)&FMOD_System_SetAdvancedSettings, "FMOD_System_SetAdvancedSettings");
87 			bindFunc(cast(void**)&FMOD_System_GetAdvancedSettings, "FMOD_System_GetAdvancedSettings");
88 			bindFunc(cast(void**)&FMOD_System_SetCallback, "FMOD_System_SetCallback");
89 			bindFunc(cast(void**)&FMOD_System_SetPluginPath, "FMOD_System_SetPluginPath");
90 			bindFunc(cast(void**)&FMOD_System_LoadPlugin, "FMOD_System_LoadPlugin");
91 			bindFunc(cast(void**)&FMOD_System_UnloadPlugin, "FMOD_System_UnloadPlugin");
92 			bindFunc(cast(void**)&FMOD_System_GetNumNestedPlugins, "FMOD_System_GetNumNestedPlugins");
93 			bindFunc(cast(void**)&FMOD_System_GetNestedPlugin, "FMOD_System_GetNestedPlugin");
94 			bindFunc(cast(void**)&FMOD_System_GetNumPlugins, "FMOD_System_GetNumPlugins");
95 			bindFunc(cast(void**)&FMOD_System_GetPluginHandle, "FMOD_System_GetPluginHandle");
96 			bindFunc(cast(void**)&FMOD_System_GetPluginInfo, "FMOD_System_GetPluginInfo");
97 			bindFunc(cast(void**)&FMOD_System_SetOutputByPlugin, "FMOD_System_SetOutputByPlugin");
98 			bindFunc(cast(void**)&FMOD_System_GetOutputByPlugin, "FMOD_System_GetOutputByPlugin");
99 			bindFunc(cast(void**)&FMOD_System_CreateDSPByPlugin, "FMOD_System_CreateDSPByPlugin");
100 			bindFunc(cast(void**)&FMOD_System_GetDSPInfoByPlugin, "FMOD_System_GetDSPInfoByPlugin");
101 			bindFunc(cast(void**)&FMOD_System_RegisterCodec, "FMOD_System_RegisterCodec");
102 			bindFunc(cast(void**)&FMOD_System_RegisterDSP, "FMOD_System_RegisterDSP");
103 			bindFunc(cast(void**)&FMOD_System_RegisterOutput, "FMOD_System_RegisterOutput");
104 			bindFunc(cast(void**)&FMOD_System_Init, "FMOD_System_Init");
105 			bindFunc(cast(void**)&FMOD_System_Close, "FMOD_System_Close");
106 			bindFunc(cast(void**)&FMOD_System_Update, "FMOD_System_Update");
107 			bindFunc(cast(void**)&FMOD_System_SetSpeakerPosition, "FMOD_System_SetSpeakerPosition");
108 			bindFunc(cast(void**)&FMOD_System_GetSpeakerPosition, "FMOD_System_GetSpeakerPosition");
109 			bindFunc(cast(void**)&FMOD_System_SetStreamBufferSize, "FMOD_System_SetStreamBufferSize");
110 			bindFunc(cast(void**)&FMOD_System_GetStreamBufferSize, "FMOD_System_GetStreamBufferSize");
111 			bindFunc(cast(void**)&FMOD_System_Set3DSettings, "FMOD_System_Set3DSettings");
112 			bindFunc(cast(void**)&FMOD_System_Get3DSettings, "FMOD_System_Get3DSettings");
113 			bindFunc(cast(void**)&FMOD_System_Set3DNumListeners, "FMOD_System_Set3DNumListeners");
114 			bindFunc(cast(void**)&FMOD_System_Get3DNumListeners, "FMOD_System_Get3DNumListeners");
115 			bindFunc(cast(void**)&FMOD_System_Set3DListenerAttributes, "FMOD_System_Set3DListenerAttributes");
116 			bindFunc(cast(void**)&FMOD_System_Get3DListenerAttributes, "FMOD_System_Get3DListenerAttributes");
117 			bindFunc(cast(void**)&FMOD_System_Set3DRolloffCallback, "FMOD_System_Set3DRolloffCallback");
118 			bindFunc(cast(void**)&FMOD_System_MixerSuspend, "FMOD_System_MixerSuspend");
119 			bindFunc(cast(void**)&FMOD_System_MixerResume, "FMOD_System_MixerResume");
120 			bindFunc(cast(void**)&FMOD_System_GetDefaultMixMatrix, "FMOD_System_GetDefaultMixMatrix");
121 			bindFunc(cast(void**)&FMOD_System_GetSpeakerModeChannels, "FMOD_System_GetSpeakerModeChannels");
122 			bindFunc(cast(void**)&FMOD_System_GetVersion, "FMOD_System_GetVersion");
123 			bindFunc(cast(void**)&FMOD_System_GetOutputHandle, "FMOD_System_GetOutputHandle");
124 			bindFunc(cast(void**)&FMOD_System_GetChannelsPlaying, "FMOD_System_GetChannelsPlaying");
125 			bindFunc(cast(void**)&FMOD_System_GetCPUUsage, "FMOD_System_GetCPUUsage");
126 			bindFunc(cast(void**)&FMOD_System_GetFileUsage, "FMOD_System_GetFileUsage");
127 			bindFunc(cast(void**)&FMOD_System_GetSoundRAM, "FMOD_System_GetSoundRAM");
128 			bindFunc(cast(void**)&FMOD_System_CreateSound, "FMOD_System_CreateSound");
129 			bindFunc(cast(void**)&FMOD_System_CreateStream, "FMOD_System_CreateStream");
130 			bindFunc(cast(void**)&FMOD_System_CreateDSP, "FMOD_System_CreateDSP");
131 			bindFunc(cast(void**)&FMOD_System_CreateDSPByType, "FMOD_System_CreateDSPByType");
132 			bindFunc(cast(void**)&FMOD_System_CreateChannelGroup, "FMOD_System_CreateChannelGroup");
133 			bindFunc(cast(void**)&FMOD_System_CreateSoundGroup, "FMOD_System_CreateSoundGroup");
134 			bindFunc(cast(void**)&FMOD_System_CreateReverb3D, "FMOD_System_CreateReverb3D");
135 			bindFunc(cast(void**)&FMOD_System_PlaySound, "FMOD_System_PlaySound");
136 			bindFunc(cast(void**)&FMOD_System_PlayDSP, "FMOD_System_PlayDSP");
137 			bindFunc(cast(void**)&FMOD_System_GetChannel, "FMOD_System_GetChannel");
138 			bindFunc(cast(void**)&FMOD_System_GetMasterChannelGroup, "FMOD_System_GetMasterChannelGroup");
139 			bindFunc(cast(void**)&FMOD_System_GetMasterSoundGroup, "FMOD_System_GetMasterSoundGroup");
140 			bindFunc(cast(void**)&FMOD_System_AttachChannelGroupToPort, "FMOD_System_AttachChannelGroupToPort");
141 			bindFunc(cast(void**)&FMOD_System_DetachChannelGroupFromPort, "FMOD_System_DetachChannelGroupFromPort");
142 			bindFunc(cast(void**)&FMOD_System_SetReverbProperties, "FMOD_System_SetReverbProperties");
143 			bindFunc(cast(void**)&FMOD_System_GetReverbProperties, "FMOD_System_GetReverbProperties");
144 			bindFunc(cast(void**)&FMOD_System_LockDSP, "FMOD_System_LockDSP");
145 			bindFunc(cast(void**)&FMOD_System_UnlockDSP, "FMOD_System_UnlockDSP");
146 			bindFunc(cast(void**)&FMOD_System_GetRecordNumDrivers, "FMOD_System_GetRecordNumDrivers");
147 			bindFunc(cast(void**)&FMOD_System_GetRecordDriverInfo, "FMOD_System_GetRecordDriverInfo");
148 			bindFunc(cast(void**)&FMOD_System_GetRecordPosition, "FMOD_System_GetRecordPosition");
149 			bindFunc(cast(void**)&FMOD_System_RecordStart, "FMOD_System_RecordStart");
150 			bindFunc(cast(void**)&FMOD_System_RecordStop, "FMOD_System_RecordStop");
151 			bindFunc(cast(void**)&FMOD_System_IsRecording, "FMOD_System_IsRecording");
152 			bindFunc(cast(void**)&FMOD_System_CreateGeometry, "FMOD_System_CreateGeometry");
153 			bindFunc(cast(void**)&FMOD_System_SetGeometrySettings, "FMOD_System_SetGeometrySettings");
154 			bindFunc(cast(void**)&FMOD_System_GetGeometrySettings, "FMOD_System_GetGeometrySettings");
155 			bindFunc(cast(void**)&FMOD_System_LoadGeometry, "FMOD_System_LoadGeometry");
156 			bindFunc(cast(void**)&FMOD_System_GetGeometryOcclusion, "FMOD_System_GetGeometryOcclusion");
157 			bindFunc(cast(void**)&FMOD_System_SetNetworkProxy, "FMOD_System_SetNetworkProxy");
158 			bindFunc(cast(void**)&FMOD_System_GetNetworkProxy, "FMOD_System_GetNetworkProxy");
159 			bindFunc(cast(void**)&FMOD_System_SetNetworkTimeout, "FMOD_System_SetNetworkTimeout");
160 			bindFunc(cast(void**)&FMOD_System_GetNetworkTimeout, "FMOD_System_GetNetworkTimeout");
161 			bindFunc(cast(void**)&FMOD_System_SetUserData, "FMOD_System_SetUserData");
162 			bindFunc(cast(void**)&FMOD_System_GetUserData, "FMOD_System_GetUserData");
163 			bindFunc(cast(void**)&FMOD_Sound_Release, "FMOD_Sound_Release");
164 			bindFunc(cast(void**)&FMOD_Sound_GetSystemObject, "FMOD_Sound_GetSystemObject");
165 			bindFunc(cast(void**)&FMOD_Sound_Lock, "FMOD_Sound_Lock");
166 			bindFunc(cast(void**)&FMOD_Sound_Unlock, "FMOD_Sound_Unlock");
167 			bindFunc(cast(void**)&FMOD_Sound_SetDefaults, "FMOD_Sound_SetDefaults");
168 			bindFunc(cast(void**)&FMOD_Sound_GetDefaults, "FMOD_Sound_GetDefaults");
169 			bindFunc(cast(void**)&FMOD_Sound_Set3DMinMaxDistance, "FMOD_Sound_Set3DMinMaxDistance");
170 			bindFunc(cast(void**)&FMOD_Sound_Get3DMinMaxDistance, "FMOD_Sound_Get3DMinMaxDistance");
171 			bindFunc(cast(void**)&FMOD_Sound_Set3DConeSettings, "FMOD_Sound_Set3DConeSettings");
172 			bindFunc(cast(void**)&FMOD_Sound_Get3DConeSettings, "FMOD_Sound_Get3DConeSettings");
173 			bindFunc(cast(void**)&FMOD_Sound_Set3DCustomRolloff, "FMOD_Sound_Set3DCustomRolloff");
174 			bindFunc(cast(void**)&FMOD_Sound_Get3DCustomRolloff, "FMOD_Sound_Get3DCustomRolloff");
175 			bindFunc(cast(void**)&FMOD_Sound_GetSubSound, "FMOD_Sound_GetSubSound");
176 			bindFunc(cast(void**)&FMOD_Sound_GetSubSoundParent, "FMOD_Sound_GetSubSoundParent");
177 			bindFunc(cast(void**)&FMOD_Sound_GetName, "FMOD_Sound_GetName");
178 			bindFunc(cast(void**)&FMOD_Sound_GetLength, "FMOD_Sound_GetLength");
179 			bindFunc(cast(void**)&FMOD_Sound_GetFormat, "FMOD_Sound_GetFormat");
180 			bindFunc(cast(void**)&FMOD_Sound_GetNumSubSounds, "FMOD_Sound_GetNumSubSounds");
181 			bindFunc(cast(void**)&FMOD_Sound_GetNumTags, "FMOD_Sound_GetNumTags");
182 			bindFunc(cast(void**)&FMOD_Sound_GetTag, "FMOD_Sound_GetTag");
183 			bindFunc(cast(void**)&FMOD_Sound_GetOpenState, "FMOD_Sound_GetOpenState");
184 			bindFunc(cast(void**)&FMOD_Sound_ReadData, "FMOD_Sound_ReadData");
185 			bindFunc(cast(void**)&FMOD_Sound_SeekData, "FMOD_Sound_SeekData");
186 			bindFunc(cast(void**)&FMOD_Sound_SetSoundGroup, "FMOD_Sound_SetSoundGroup");
187 			bindFunc(cast(void**)&FMOD_Sound_GetSoundGroup, "FMOD_Sound_GetSoundGroup");
188 			bindFunc(cast(void**)&FMOD_Sound_GetNumSyncPoints, "FMOD_Sound_GetNumSyncPoints");
189 			bindFunc(cast(void**)&FMOD_Sound_GetSyncPoint, "FMOD_Sound_GetSyncPoint");
190 			bindFunc(cast(void**)&FMOD_Sound_GetSyncPointInfo, "FMOD_Sound_GetSyncPointInfo");
191 			bindFunc(cast(void**)&FMOD_Sound_AddSyncPoint, "FMOD_Sound_AddSyncPoint");
192 			bindFunc(cast(void**)&FMOD_Sound_DeleteSyncPoint, "FMOD_Sound_DeleteSyncPoint");
193 			bindFunc(cast(void**)&FMOD_Sound_SetMode, "FMOD_Sound_SetMode");
194 			bindFunc(cast(void**)&FMOD_Sound_GetMode, "FMOD_Sound_GetMode");
195 			bindFunc(cast(void**)&FMOD_Sound_SetLoopCount, "FMOD_Sound_SetLoopCount");
196 			bindFunc(cast(void**)&FMOD_Sound_GetLoopCount, "FMOD_Sound_GetLoopCount");
197 			bindFunc(cast(void**)&FMOD_Sound_SetLoopPoints, "FMOD_Sound_SetLoopPoints");
198 			bindFunc(cast(void**)&FMOD_Sound_GetLoopPoints, "FMOD_Sound_GetLoopPoints");
199 			bindFunc(cast(void**)&FMOD_Sound_GetMusicNumChannels, "FMOD_Sound_GetMusicNumChannels");
200 			bindFunc(cast(void**)&FMOD_Sound_SetMusicChannelVolume, "FMOD_Sound_SetMusicChannelVolume");
201 			bindFunc(cast(void**)&FMOD_Sound_GetMusicChannelVolume, "FMOD_Sound_GetMusicChannelVolume");
202 			bindFunc(cast(void**)&FMOD_Sound_SetMusicSpeed, "FMOD_Sound_SetMusicSpeed");
203 			bindFunc(cast(void**)&FMOD_Sound_GetMusicSpeed, "FMOD_Sound_GetMusicSpeed");
204 			bindFunc(cast(void**)&FMOD_Sound_SetUserData, "FMOD_Sound_SetUserData");
205 			bindFunc(cast(void**)&FMOD_Sound_GetUserData, "FMOD_Sound_GetUserData");
206 			bindFunc(cast(void**)&FMOD_Channel_GetSystemObject, "FMOD_Channel_GetSystemObject");
207 			bindFunc(cast(void**)&FMOD_Channel_Stop, "FMOD_Channel_Stop");
208 			bindFunc(cast(void**)&FMOD_Channel_SetPaused, "FMOD_Channel_SetPaused");
209 			bindFunc(cast(void**)&FMOD_Channel_GetPaused, "FMOD_Channel_GetPaused");
210 			bindFunc(cast(void**)&FMOD_Channel_SetVolume, "FMOD_Channel_SetVolume");
211 			bindFunc(cast(void**)&FMOD_Channel_GetVolume, "FMOD_Channel_GetVolume");
212 			bindFunc(cast(void**)&FMOD_Channel_SetVolumeRamp, "FMOD_Channel_SetVolumeRamp");
213 			bindFunc(cast(void**)&FMOD_Channel_GetVolumeRamp, "FMOD_Channel_GetVolumeRamp");
214 			bindFunc(cast(void**)&FMOD_Channel_GetAudibility, "FMOD_Channel_GetAudibility");
215 			bindFunc(cast(void**)&FMOD_Channel_SetPitch, "FMOD_Channel_SetPitch");
216 			bindFunc(cast(void**)&FMOD_Channel_GetPitch, "FMOD_Channel_GetPitch");
217 			bindFunc(cast(void**)&FMOD_Channel_SetMute, "FMOD_Channel_SetMute");
218 			bindFunc(cast(void**)&FMOD_Channel_GetMute, "FMOD_Channel_GetMute");
219 			bindFunc(cast(void**)&FMOD_Channel_SetReverbProperties, "FMOD_Channel_SetReverbProperties");
220 			bindFunc(cast(void**)&FMOD_Channel_GetReverbProperties, "FMOD_Channel_GetReverbProperties");
221 			bindFunc(cast(void**)&FMOD_Channel_SetLowPassGain, "FMOD_Channel_SetLowPassGain");
222 			bindFunc(cast(void**)&FMOD_Channel_GetLowPassGain, "FMOD_Channel_GetLowPassGain");
223 			bindFunc(cast(void**)&FMOD_Channel_SetMode, "FMOD_Channel_SetMode");
224 			bindFunc(cast(void**)&FMOD_Channel_GetMode, "FMOD_Channel_GetMode");
225 			bindFunc(cast(void**)&FMOD_Channel_SetCallback, "FMOD_Channel_SetCallback");
226 			bindFunc(cast(void**)&FMOD_Channel_IsPlaying, "FMOD_Channel_IsPlaying");
227 			bindFunc(cast(void**)&FMOD_Channel_SetPan, "FMOD_Channel_SetPan");
228 			bindFunc(cast(void**)&FMOD_Channel_SetMixLevelsOutput, "FMOD_Channel_SetMixLevelsOutput");
229 			bindFunc(cast(void**)&FMOD_Channel_SetMixLevelsInput, "FMOD_Channel_SetMixLevelsInput");
230 			bindFunc(cast(void**)&FMOD_Channel_SetMixMatrix, "FMOD_Channel_SetMixMatrix");
231 			bindFunc(cast(void**)&FMOD_Channel_GetMixMatrix, "FMOD_Channel_GetMixMatrix");
232 			bindFunc(cast(void**)&FMOD_Channel_GetDSPClock, "FMOD_Channel_GetDSPClock");
233 			bindFunc(cast(void**)&FMOD_Channel_SetDelay, "FMOD_Channel_SetDelay");
234 			bindFunc(cast(void**)&FMOD_Channel_GetDelay, "FMOD_Channel_GetDelay");
235 			bindFunc(cast(void**)&FMOD_Channel_AddFadePoint, "FMOD_Channel_AddFadePoint");
236 			bindFunc(cast(void**)&FMOD_Channel_SetFadePointRamp, "FMOD_Channel_SetFadePointRamp");
237 			bindFunc(cast(void**)&FMOD_Channel_RemoveFadePoints, "FMOD_Channel_RemoveFadePoints");
238 			bindFunc(cast(void**)&FMOD_Channel_GetFadePoints, "FMOD_Channel_GetFadePoints");
239 			bindFunc(cast(void**)&FMOD_Channel_GetDSP, "FMOD_Channel_GetDSP");
240 			bindFunc(cast(void**)&FMOD_Channel_AddDSP, "FMOD_Channel_AddDSP");
241 			bindFunc(cast(void**)&FMOD_Channel_RemoveDSP, "FMOD_Channel_RemoveDSP");
242 			bindFunc(cast(void**)&FMOD_Channel_GetNumDSPs, "FMOD_Channel_GetNumDSPs");
243 			bindFunc(cast(void**)&FMOD_Channel_SetDSPIndex, "FMOD_Channel_SetDSPIndex");
244 			bindFunc(cast(void**)&FMOD_Channel_GetDSPIndex, "FMOD_Channel_GetDSPIndex");
245 			bindFunc(cast(void**)&FMOD_Channel_Set3DAttributes, "FMOD_Channel_Set3DAttributes");
246 			bindFunc(cast(void**)&FMOD_Channel_Get3DAttributes, "FMOD_Channel_Get3DAttributes");
247 			bindFunc(cast(void**)&FMOD_Channel_Set3DMinMaxDistance, "FMOD_Channel_Set3DMinMaxDistance");
248 			bindFunc(cast(void**)&FMOD_Channel_Get3DMinMaxDistance, "FMOD_Channel_Get3DMinMaxDistance");
249 			bindFunc(cast(void**)&FMOD_Channel_Set3DConeSettings, "FMOD_Channel_Set3DConeSettings");
250 			bindFunc(cast(void**)&FMOD_Channel_Get3DConeSettings, "FMOD_Channel_Get3DConeSettings");
251 			bindFunc(cast(void**)&FMOD_Channel_Set3DConeOrientation, "FMOD_Channel_Set3DConeOrientation");
252 			bindFunc(cast(void**)&FMOD_Channel_Get3DConeOrientation, "FMOD_Channel_Get3DConeOrientation");
253 			bindFunc(cast(void**)&FMOD_Channel_Set3DCustomRolloff, "FMOD_Channel_Set3DCustomRolloff");
254 			bindFunc(cast(void**)&FMOD_Channel_Get3DCustomRolloff, "FMOD_Channel_Get3DCustomRolloff");
255 			bindFunc(cast(void**)&FMOD_Channel_Set3DOcclusion, "FMOD_Channel_Set3DOcclusion");
256 			bindFunc(cast(void**)&FMOD_Channel_Get3DOcclusion, "FMOD_Channel_Get3DOcclusion");
257 			bindFunc(cast(void**)&FMOD_Channel_Set3DSpread, "FMOD_Channel_Set3DSpread");
258 			bindFunc(cast(void**)&FMOD_Channel_Get3DSpread, "FMOD_Channel_Get3DSpread");
259 			bindFunc(cast(void**)&FMOD_Channel_Set3DLevel, "FMOD_Channel_Set3DLevel");
260 			bindFunc(cast(void**)&FMOD_Channel_Get3DLevel, "FMOD_Channel_Get3DLevel");
261 			bindFunc(cast(void**)&FMOD_Channel_Set3DDopplerLevel, "FMOD_Channel_Set3DDopplerLevel");
262 			bindFunc(cast(void**)&FMOD_Channel_Get3DDopplerLevel, "FMOD_Channel_Get3DDopplerLevel");
263 			bindFunc(cast(void**)&FMOD_Channel_Set3DDistanceFilter, "FMOD_Channel_Set3DDistanceFilter");
264 			bindFunc(cast(void**)&FMOD_Channel_Get3DDistanceFilter, "FMOD_Channel_Get3DDistanceFilter");
265 			bindFunc(cast(void**)&FMOD_Channel_SetUserData, "FMOD_Channel_SetUserData");
266 			bindFunc(cast(void**)&FMOD_Channel_GetUserData, "FMOD_Channel_GetUserData");
267 			bindFunc(cast(void**)&FMOD_Channel_SetFrequency, "FMOD_Channel_SetFrequency");
268 			bindFunc(cast(void**)&FMOD_Channel_GetFrequency, "FMOD_Channel_GetFrequency");
269 			bindFunc(cast(void**)&FMOD_Channel_SetPriority, "FMOD_Channel_SetPriority");
270 			bindFunc(cast(void**)&FMOD_Channel_GetPriority, "FMOD_Channel_GetPriority");
271 			bindFunc(cast(void**)&FMOD_Channel_SetPosition, "FMOD_Channel_SetPosition");
272 			bindFunc(cast(void**)&FMOD_Channel_GetPosition, "FMOD_Channel_GetPosition");
273 			bindFunc(cast(void**)&FMOD_Channel_SetChannelGroup, "FMOD_Channel_SetChannelGroup");
274 			bindFunc(cast(void**)&FMOD_Channel_GetChannelGroup, "FMOD_Channel_GetChannelGroup");
275 			bindFunc(cast(void**)&FMOD_Channel_SetLoopCount, "FMOD_Channel_SetLoopCount");
276 			bindFunc(cast(void**)&FMOD_Channel_GetLoopCount, "FMOD_Channel_GetLoopCount");
277 			bindFunc(cast(void**)&FMOD_Channel_SetLoopPoints, "FMOD_Channel_SetLoopPoints");
278 			bindFunc(cast(void**)&FMOD_Channel_GetLoopPoints, "FMOD_Channel_GetLoopPoints");
279 			bindFunc(cast(void**)&FMOD_Channel_IsVirtual, "FMOD_Channel_IsVirtual");
280 			bindFunc(cast(void**)&FMOD_Channel_GetCurrentSound, "FMOD_Channel_GetCurrentSound");
281 			bindFunc(cast(void**)&FMOD_Channel_GetIndex, "FMOD_Channel_GetIndex");
282 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetSystemObject, "FMOD_ChannelGroup_GetSystemObject");
283 			bindFunc(cast(void**)&FMOD_ChannelGroup_Stop, "FMOD_ChannelGroup_Stop");
284 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetPaused, "FMOD_ChannelGroup_SetPaused");
285 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetPaused, "FMOD_ChannelGroup_GetPaused");
286 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetVolume, "FMOD_ChannelGroup_SetVolume");
287 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetVolume, "FMOD_ChannelGroup_GetVolume");
288 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetVolumeRamp, "FMOD_ChannelGroup_SetVolumeRamp");
289 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetVolumeRamp, "FMOD_ChannelGroup_GetVolumeRamp");
290 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetAudibility, "FMOD_ChannelGroup_GetAudibility");
291 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetPitch, "FMOD_ChannelGroup_SetPitch");
292 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetPitch, "FMOD_ChannelGroup_GetPitch");
293 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetMute, "FMOD_ChannelGroup_SetMute");
294 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetMute, "FMOD_ChannelGroup_GetMute");
295 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetReverbProperties, "FMOD_ChannelGroup_SetReverbProperties");
296 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetReverbProperties, "FMOD_ChannelGroup_GetReverbProperties");
297 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetLowPassGain, "FMOD_ChannelGroup_SetLowPassGain");
298 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetLowPassGain, "FMOD_ChannelGroup_GetLowPassGain");
299 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetMode, "FMOD_ChannelGroup_SetMode");
300 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetMode, "FMOD_ChannelGroup_GetMode");
301 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetCallback, "FMOD_ChannelGroup_SetCallback");
302 			bindFunc(cast(void**)&FMOD_ChannelGroup_IsPlaying, "FMOD_ChannelGroup_IsPlaying");
303 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetPan, "FMOD_ChannelGroup_SetPan");
304 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetMixLevelsOutput, "FMOD_ChannelGroup_SetMixLevelsOutput");
305 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetMixLevelsInput, "FMOD_ChannelGroup_SetMixLevelsInput");
306 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetMixMatrix, "FMOD_ChannelGroup_SetMixMatrix");
307 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetMixMatrix, "FMOD_ChannelGroup_GetMixMatrix");
308 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetDSPClock, "FMOD_ChannelGroup_GetDSPClock");
309 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetDelay, "FMOD_ChannelGroup_SetDelay");
310 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetDelay, "FMOD_ChannelGroup_GetDelay");
311 			bindFunc(cast(void**)&FMOD_ChannelGroup_AddFadePoint, "FMOD_ChannelGroup_AddFadePoint");
312 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetFadePointRamp, "FMOD_ChannelGroup_SetFadePointRamp");
313 			bindFunc(cast(void**)&FMOD_ChannelGroup_RemoveFadePoints, "FMOD_ChannelGroup_RemoveFadePoints");
314 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetFadePoints, "FMOD_ChannelGroup_GetFadePoints");
315 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetDSP, "FMOD_ChannelGroup_GetDSP");
316 			bindFunc(cast(void**)&FMOD_ChannelGroup_AddDSP, "FMOD_ChannelGroup_AddDSP");
317 			bindFunc(cast(void**)&FMOD_ChannelGroup_RemoveDSP, "FMOD_ChannelGroup_RemoveDSP");
318 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetNumDSPs, "FMOD_ChannelGroup_GetNumDSPs");
319 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetDSPIndex, "FMOD_ChannelGroup_SetDSPIndex");
320 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetDSPIndex, "FMOD_ChannelGroup_GetDSPIndex");
321 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DAttributes, "FMOD_ChannelGroup_Set3DAttributes");
322 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DAttributes, "FMOD_ChannelGroup_Get3DAttributes");
323 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DMinMaxDistance, "FMOD_ChannelGroup_Set3DMinMaxDistance");
324 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DMinMaxDistance, "FMOD_ChannelGroup_Get3DMinMaxDistance");
325 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DConeSettings, "FMOD_ChannelGroup_Set3DConeSettings");
326 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DConeSettings, "FMOD_ChannelGroup_Get3DConeSettings");
327 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DConeOrientation, "FMOD_ChannelGroup_Set3DConeOrientation");
328 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DConeOrientation, "FMOD_ChannelGroup_Get3DConeOrientation");
329 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DCustomRolloff, "FMOD_ChannelGroup_Set3DCustomRolloff");
330 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DCustomRolloff, "FMOD_ChannelGroup_Get3DCustomRolloff");
331 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DOcclusion, "FMOD_ChannelGroup_Set3DOcclusion");
332 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DOcclusion, "FMOD_ChannelGroup_Get3DOcclusion");
333 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DSpread, "FMOD_ChannelGroup_Set3DSpread");
334 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DSpread, "FMOD_ChannelGroup_Get3DSpread");
335 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DLevel, "FMOD_ChannelGroup_Set3DLevel");
336 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DLevel, "FMOD_ChannelGroup_Get3DLevel");
337 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DDopplerLevel, "FMOD_ChannelGroup_Set3DDopplerLevel");
338 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DDopplerLevel, "FMOD_ChannelGroup_Get3DDopplerLevel");
339 			bindFunc(cast(void**)&FMOD_ChannelGroup_Set3DDistanceFilter, "FMOD_ChannelGroup_Set3DDistanceFilter");
340 			bindFunc(cast(void**)&FMOD_ChannelGroup_Get3DDistanceFilter, "FMOD_ChannelGroup_Get3DDistanceFilter");
341 			bindFunc(cast(void**)&FMOD_ChannelGroup_SetUserData, "FMOD_ChannelGroup_SetUserData");
342 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetUserData, "FMOD_ChannelGroup_GetUserData");
343 			bindFunc(cast(void**)&FMOD_ChannelGroup_Release, "FMOD_ChannelGroup_Release");
344 			bindFunc(cast(void**)&FMOD_ChannelGroup_AddGroup, "FMOD_ChannelGroup_AddGroup");
345 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetNumGroups, "FMOD_ChannelGroup_GetNumGroups");
346 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetGroup, "FMOD_ChannelGroup_GetGroup");
347 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetParentGroup, "FMOD_ChannelGroup_GetParentGroup");
348 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetName, "FMOD_ChannelGroup_GetName");
349 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetNumChannels, "FMOD_ChannelGroup_GetNumChannels");
350 			bindFunc(cast(void**)&FMOD_ChannelGroup_GetChannel, "FMOD_ChannelGroup_GetChannel");
351 			bindFunc(cast(void**)&FMOD_SoundGroup_Release, "FMOD_SoundGroup_Release");
352 			bindFunc(cast(void**)&FMOD_SoundGroup_GetSystemObject, "FMOD_SoundGroup_GetSystemObject");
353 			bindFunc(cast(void**)&FMOD_SoundGroup_SetMaxAudible, "FMOD_SoundGroup_SetMaxAudible");
354 			bindFunc(cast(void**)&FMOD_SoundGroup_GetMaxAudible, "FMOD_SoundGroup_GetMaxAudible");
355 			bindFunc(cast(void**)&FMOD_SoundGroup_SetMaxAudibleBehavior, "FMOD_SoundGroup_SetMaxAudibleBehavior");
356 			bindFunc(cast(void**)&FMOD_SoundGroup_GetMaxAudibleBehavior, "FMOD_SoundGroup_GetMaxAudibleBehavior");
357 			bindFunc(cast(void**)&FMOD_SoundGroup_SetMuteFadeSpeed, "FMOD_SoundGroup_SetMuteFadeSpeed");
358 			bindFunc(cast(void**)&FMOD_SoundGroup_GetMuteFadeSpeed, "FMOD_SoundGroup_GetMuteFadeSpeed");
359 			bindFunc(cast(void**)&FMOD_SoundGroup_SetVolume, "FMOD_SoundGroup_SetVolume");
360 			bindFunc(cast(void**)&FMOD_SoundGroup_GetVolume, "FMOD_SoundGroup_GetVolume");
361 			bindFunc(cast(void**)&FMOD_SoundGroup_Stop, "FMOD_SoundGroup_Stop");
362 			bindFunc(cast(void**)&FMOD_SoundGroup_GetName, "FMOD_SoundGroup_GetName");
363 			bindFunc(cast(void**)&FMOD_SoundGroup_GetNumSounds, "FMOD_SoundGroup_GetNumSounds");
364 			bindFunc(cast(void**)&FMOD_SoundGroup_GetSound, "FMOD_SoundGroup_GetSound");
365 			bindFunc(cast(void**)&FMOD_SoundGroup_GetNumPlaying, "FMOD_SoundGroup_GetNumPlaying");
366 			bindFunc(cast(void**)&FMOD_SoundGroup_SetUserData, "FMOD_SoundGroup_SetUserData");
367 			bindFunc(cast(void**)&FMOD_SoundGroup_GetUserData, "FMOD_SoundGroup_GetUserData");
368 			bindFunc(cast(void**)&FMOD_DSP_Release, "FMOD_DSP_Release");
369 			bindFunc(cast(void**)&FMOD_DSP_GetSystemObject, "FMOD_DSP_GetSystemObject");
370 			bindFunc(cast(void**)&FMOD_DSP_AddInput, "FMOD_DSP_AddInput");
371 			bindFunc(cast(void**)&FMOD_DSP_DisconnectFrom, "FMOD_DSP_DisconnectFrom");
372 			bindFunc(cast(void**)&FMOD_DSP_DisconnectAll, "FMOD_DSP_DisconnectAll");
373 			bindFunc(cast(void**)&FMOD_DSP_GetNumInputs, "FMOD_DSP_GetNumInputs");
374 			bindFunc(cast(void**)&FMOD_DSP_GetNumOutputs, "FMOD_DSP_GetNumOutputs");
375 			bindFunc(cast(void**)&FMOD_DSP_GetInput, "FMOD_DSP_GetInput");
376 			bindFunc(cast(void**)&FMOD_DSP_GetOutput, "FMOD_DSP_GetOutput");
377 			bindFunc(cast(void**)&FMOD_DSP_SetActive, "FMOD_DSP_SetActive");
378 			bindFunc(cast(void**)&FMOD_DSP_GetActive, "FMOD_DSP_GetActive");
379 			bindFunc(cast(void**)&FMOD_DSP_SetBypass, "FMOD_DSP_SetBypass");
380 			bindFunc(cast(void**)&FMOD_DSP_GetBypass, "FMOD_DSP_GetBypass");
381 			bindFunc(cast(void**)&FMOD_DSP_SetWetDryMix, "FMOD_DSP_SetWetDryMix");
382 			bindFunc(cast(void**)&FMOD_DSP_GetWetDryMix, "FMOD_DSP_GetWetDryMix");
383 			bindFunc(cast(void**)&FMOD_DSP_SetChannelFormat, "FMOD_DSP_SetChannelFormat");
384 			bindFunc(cast(void**)&FMOD_DSP_GetChannelFormat, "FMOD_DSP_GetChannelFormat");
385 			bindFunc(cast(void**)&FMOD_DSP_GetOutputChannelFormat, "FMOD_DSP_GetOutputChannelFormat");
386 			bindFunc(cast(void**)&FMOD_DSP_Reset, "FMOD_DSP_Reset");
387 			bindFunc(cast(void**)&FMOD_DSP_SetParameterFloat, "FMOD_DSP_SetParameterFloat");
388 			bindFunc(cast(void**)&FMOD_DSP_SetParameterInt, "FMOD_DSP_SetParameterInt");
389 			bindFunc(cast(void**)&FMOD_DSP_SetParameterBool, "FMOD_DSP_SetParameterBool");
390 			bindFunc(cast(void**)&FMOD_DSP_SetParameterData, "FMOD_DSP_SetParameterData");
391 			bindFunc(cast(void**)&FMOD_DSP_GetParameterFloat, "FMOD_DSP_GetParameterFloat");
392 			bindFunc(cast(void**)&FMOD_DSP_GetParameterInt, "FMOD_DSP_GetParameterInt");
393 			bindFunc(cast(void**)&FMOD_DSP_GetParameterBool, "FMOD_DSP_GetParameterBool");
394 			bindFunc(cast(void**)&FMOD_DSP_GetParameterData, "FMOD_DSP_GetParameterData");
395 			bindFunc(cast(void**)&FMOD_DSP_GetNumParameters, "FMOD_DSP_GetNumParameters");
396 			bindFunc(cast(void**)&FMOD_DSP_GetParameterInfo, "FMOD_DSP_GetParameterInfo");
397 			bindFunc(cast(void**)&FMOD_DSP_GetDataParameterIndex, "FMOD_DSP_GetDataParameterIndex");
398 			bindFunc(cast(void**)&FMOD_DSP_ShowConfigDialog, "FMOD_DSP_ShowConfigDialog");
399 			bindFunc(cast(void**)&FMOD_DSP_GetInfo, "FMOD_DSP_GetInfo");
400 			bindFunc(cast(void**)&FMOD_DSP_GetType, "FMOD_DSP_GetType");
401 			bindFunc(cast(void**)&FMOD_DSP_GetIdle, "FMOD_DSP_GetIdle");
402 			bindFunc(cast(void**)&FMOD_DSP_SetUserData, "FMOD_DSP_SetUserData");
403 			bindFunc(cast(void**)&FMOD_DSP_GetUserData, "FMOD_DSP_GetUserData");
404 			bindFunc(cast(void**)&FMOD_DSP_SetMeteringEnabled, "FMOD_DSP_SetMeteringEnabled");
405 			bindFunc(cast(void**)&FMOD_DSP_GetMeteringEnabled, "FMOD_DSP_GetMeteringEnabled");
406 			bindFunc(cast(void**)&FMOD_DSP_GetMeteringInfo, "FMOD_DSP_GetMeteringInfo");
407 			bindFunc(cast(void**)&FMOD_DSPConnection_GetInput, "FMOD_DSPConnection_GetInput");
408 			bindFunc(cast(void**)&FMOD_DSPConnection_GetOutput, "FMOD_DSPConnection_GetOutput");
409 			bindFunc(cast(void**)&FMOD_DSPConnection_SetMix, "FMOD_DSPConnection_SetMix");
410 			bindFunc(cast(void**)&FMOD_DSPConnection_GetMix, "FMOD_DSPConnection_GetMix");
411 			bindFunc(cast(void**)&FMOD_DSPConnection_SetMixMatrix, "FMOD_DSPConnection_SetMixMatrix");
412 			bindFunc(cast(void**)&FMOD_DSPConnection_GetMixMatrix, "FMOD_DSPConnection_GetMixMatrix");
413 			bindFunc(cast(void**)&FMOD_DSPConnection_GetType, "FMOD_DSPConnection_GetType");
414 			bindFunc(cast(void**)&FMOD_DSPConnection_SetUserData, "FMOD_DSPConnection_SetUserData");
415 			bindFunc(cast(void**)&FMOD_DSPConnection_GetUserData, "FMOD_DSPConnection_GetUserData");
416 			bindFunc(cast(void**)&FMOD_Geometry_Release, "FMOD_Geometry_Release");
417 			bindFunc(cast(void**)&FMOD_Geometry_AddPolygon, "FMOD_Geometry_AddPolygon");
418 			bindFunc(cast(void**)&FMOD_Geometry_GetNumPolygons, "FMOD_Geometry_GetNumPolygons");
419 			bindFunc(cast(void**)&FMOD_Geometry_GetMaxPolygons, "FMOD_Geometry_GetMaxPolygons");
420 			bindFunc(cast(void**)&FMOD_Geometry_GetPolygonNumVertices, "FMOD_Geometry_GetPolygonNumVertices");
421 			bindFunc(cast(void**)&FMOD_Geometry_SetPolygonVertex, "FMOD_Geometry_SetPolygonVertex");
422 			bindFunc(cast(void**)&FMOD_Geometry_GetPolygonVertex, "FMOD_Geometry_GetPolygonVertex");
423 			bindFunc(cast(void**)&FMOD_Geometry_SetPolygonAttributes, "FMOD_Geometry_SetPolygonAttributes");
424 			bindFunc(cast(void**)&FMOD_Geometry_GetPolygonAttributes, "FMOD_Geometry_GetPolygonAttributes");
425 			bindFunc(cast(void**)&FMOD_Geometry_SetActive, "FMOD_Geometry_SetActive");
426 			bindFunc(cast(void**)&FMOD_Geometry_GetActive, "FMOD_Geometry_GetActive");
427 			bindFunc(cast(void**)&FMOD_Geometry_SetRotation, "FMOD_Geometry_SetRotation");
428 			bindFunc(cast(void**)&FMOD_Geometry_GetRotation, "FMOD_Geometry_GetRotation");
429 			bindFunc(cast(void**)&FMOD_Geometry_SetPosition, "FMOD_Geometry_SetPosition");
430 			bindFunc(cast(void**)&FMOD_Geometry_GetPosition, "FMOD_Geometry_GetPosition");
431 			bindFunc(cast(void**)&FMOD_Geometry_SetScale, "FMOD_Geometry_SetScale");
432 			bindFunc(cast(void**)&FMOD_Geometry_GetScale, "FMOD_Geometry_GetScale");
433 			bindFunc(cast(void**)&FMOD_Geometry_Save, "FMOD_Geometry_Save");
434 			bindFunc(cast(void**)&FMOD_Geometry_SetUserData, "FMOD_Geometry_SetUserData");
435 			bindFunc(cast(void**)&FMOD_Geometry_GetUserData, "FMOD_Geometry_GetUserData");
436 			bindFunc(cast(void**)&FMOD_Reverb3D_Release, "FMOD_Reverb3D_Release");
437 			bindFunc(cast(void**)&FMOD_Reverb3D_Set3DAttributes, "FMOD_Reverb3D_Set3DAttributes");
438 			bindFunc(cast(void**)&FMOD_Reverb3D_Get3DAttributes, "FMOD_Reverb3D_Get3DAttributes");
439 			bindFunc(cast(void**)&FMOD_Reverb3D_SetProperties, "FMOD_Reverb3D_SetProperties");
440 			bindFunc(cast(void**)&FMOD_Reverb3D_GetProperties, "FMOD_Reverb3D_GetProperties");
441 			bindFunc(cast(void**)&FMOD_Reverb3D_SetActive, "FMOD_Reverb3D_SetActive");
442 			bindFunc(cast(void**)&FMOD_Reverb3D_GetActive, "FMOD_Reverb3D_GetActive");
443 			bindFunc(cast(void**)&FMOD_Reverb3D_SetUserData, "FMOD_Reverb3D_SetUserData");
444 			bindFunc(cast(void**)&FMOD_Reverb3D_GetUserData, "FMOD_Reverb3D_GetUserData");
445 		}
446 	}
447 
448 	public
449 	{
450 		this()
451 		{
452 			super(libNames);
453 		}
454 	}
455 }
456 
457 __gshared DerelictFmodLoader DerelictFmod;
458 
459 shared static this()
460 {
461 	DerelictFmod = new DerelictFmodLoader();
462 }