DEADSOFTWARE

038ecad8c6993406cb2e1d0d993b551346ee11d2
[d2df-sdl.git] / src / lib / fmod / fmod.pas
1 (* ============================================================================================= *)
2 (* FMOD Ex - Main Pascal header file. Copyright (c), Firelight Technologies Pty, Ltd. 2004-2008. *)
3 (* *)
4 (* This header is for statically linking to the FMOD library. *)
5 (* *)
6 (* ============================================================================================= *)
8 unit fmod;
10 {$I fmod.inc}
12 interface
14 uses
15 fmodtypes;
17 (* ========================================================================================== *)
18 (* FUNCTION PROTOTYPES *)
19 (* ========================================================================================== *)
21 (*
22 FMOD System memory functions (optional).
23 *)
25 function FMOD_Memory_Initialize (poolmem: Pointer; poollen: Integer; useralloc: FMOD_MEMORY_ALLOCCALLBACK; userrealloc: FMOD_MEMORY_REALLOCCALLBACK; userfree: FMOD_MEMORY_FREECALLBACK): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
26 function FMOD_Memory_GetStats (var currentalloced: Integer; var maxalloced: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
28 (*
29 FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started.
30 *)
32 function FMOD_System_Create (var system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
33 function FMOD_System_Release (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
35 (*
36 'System' API
37 *)
39 (*
40 Pre-init functions.
41 *)
43 function FMOD_System_SetOutput (system: FMOD_SYSTEM; output: FMOD_OUTPUTTYPE): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
44 function FMOD_System_GetOutput (system: FMOD_SYSTEM; var output: FMOD_OUTPUTTYPE): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
45 function FMOD_System_GetNumDrivers (system: FMOD_SYSTEM; var numdrivers: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
46 // function FMOD_System_GetDriverName (system: FMOD_SYSTEM; id: Integer; name: PChar; namelen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
47 function FMOD_System_GetDriverCaps (system: FMOD_SYSTEM; id: Integer; var caps: Cardinal; var minfrequency, maxfrequency: Integer; var controlpanelspeakermode: FMOD_SPEAKERMODE): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
48 function FMOD_System_SetDriver (system: FMOD_SYSTEM; driver: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
49 function FMOD_System_GetDriver (system: FMOD_SYSTEM; var driver: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
50 function FMOD_System_SetHardwareChannels (system: FMOD_SYSTEM; min2d: Integer; max2d: Integer; min3d: Integer; max3d: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
51 function FMOD_System_GetHardwareChannels (system: FMOD_SYSTEM; var numhw2d: Integer; var numhw3d: Integer; var total: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
52 function FMOD_System_SetSoftwareChannels (system: FMOD_SYSTEM; numsoftwarechannels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
53 function FMOD_System_GetSoftwareChannels (system: FMOD_SYSTEM; var numsoftwarechannels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
54 function FMOD_System_SetSoftwareFormat (system: FMOD_SYSTEM; samplerate: Integer; format: FMOD_SOUND_FORMAT; numoutputchannels: Integer; maxinputchannels: Integer; resamplemethod: FMOD_DSP_RESAMPLER): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
55 function FMOD_System_GetSoftwareFormat (system: FMOD_SYSTEM; var samplerate: Integer; var format: FMOD_SOUND_FORMAT; var numoutputchannels: Integer; var maxinputchannels: Integer; var bits: Integer; var resamplemethod: FMOD_DSP_RESAMPLER): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
56 function FMOD_System_SetDSPBufferSize (system: FMOD_SYSTEM; bufferlength: Cardinal; numbuffers: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
57 function FMOD_System_GetDSPBufferSize (system: FMOD_SYSTEM; var bufferlength: Cardinal; var numbuffers: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
58 function FMOD_System_SetFileSystem (system: FMOD_SYSTEM; useropen: FMOD_FILE_OPENCALLBACK; userclose: FMOD_FILE_CLOSECALLBACK; userread: FMOD_FILE_READCALLBACK; userseek: FMOD_FILE_SEEKCALLBACK): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
59 function FMOD_System_AttachFileSystem (system: FMOD_SYSTEM; useropen: FMOD_FILE_OPENCALLBACK; userclose: FMOD_FILE_CLOSECALLBACK; userread: FMOD_FILE_READCALLBACK; userseek: FMOD_FILE_SEEKCALLBACK): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
60 function FMOD_System_SetAdvancedSettings (system: FMOD_SYSTEM; var settings:FMOD_ADVANCEDSETTINGS): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
61 function FMOD_System_GetAdvancedSettings (system: FMOD_SYSTEM; var settings:FMOD_ADVANCEDSETTINGS): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
62 function FMOD_System_SetSpeakerMode (system: FMOD_SYSTEM; speakermode: FMOD_SPEAKERMODE): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
63 function FMOD_System_GetSpeakerMode (system: FMOD_SYSTEM; var speakermode: FMOD_SPEAKERMODE): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
65 (*
66 Plug-in support
67 *)
69 function FMOD_System_SetPluginPath (system: FMOD_SYSTEM; const path: PChar): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
70 function FMOD_System_LoadPlugin (system: FMOD_SYSTEM; const filename: PChar; var plugintype: FMOD_PLUGINTYPE; var index: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
71 function FMOD_System_GetNumPlugins (system: FMOD_SYSTEM; plugintype: FMOD_PLUGINTYPE; var numplugins: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
72 function FMOD_System_GetPluginInfo (system: FMOD_SYSTEM; plugintype: FMOD_PLUGINTYPE; index: Integer; name: PChar; namelen: Integer; version: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
73 function FMOD_System_UnloadPlugin (system: FMOD_SYSTEM; plugintype: FMOD_PLUGINTYPE; index: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
74 function FMOD_System_SetOutputByPlugin (system: FMOD_SYSTEM; index: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
75 function FMOD_System_GetOutputByPlugin (system: FMOD_SYSTEM; var index: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
76 // function FMOD_System_CreateCodec (system: FMOD_SYSTEM; description:FMOD_CODEC_DESCRIPTION): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
78 (*
79 Init/Close
80 *)
82 function FMOD_System_Init (system: FMOD_SYSTEM; maxchannels: Integer; flags: Cardinal; const extradriverdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
83 function FMOD_System_Close (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
85 (*
86 General post-init system functions
87 *)
89 function FMOD_System_Update (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
90 // function FMOD_System_UpdateFinished (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
92 function FMOD_System_Set3DSettings (system: FMOD_SYSTEM; dopplerscale, distancefactor, rolloffscale: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
93 function FMOD_System_Get3DSettings (system: FMOD_SYSTEM; var dopplerscale: Single; var distancefactor: Single; var rolloffscale: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
94 function FMOD_System_Set3DNumListeners (system: FMOD_SYSTEM; numlisteners: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
95 function FMOD_System_Get3DNumListeners (system: FMOD_SYSTEM; var numlisteners: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
96 function FMOD_System_Set3DListenerAttributes(system: FMOD_SYSTEM; listener: Integer; const pos: FMOD_VECTOR; const vel: FMOD_VECTOR; const forward_: FMOD_VECTOR; const up: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
97 function FMOD_System_Get3DListenerAttributes(system: FMOD_SYSTEM; listener: Integer; var pos: FMOD_VECTOR; var vel: FMOD_VECTOR; var forward_: FMOD_VECTOR; var up: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
99 // function FMOD_System_SetSpeakerPosition (system: FMOD_SYSTEM; speaker: FMOD_SPEAKER; x:Single; y:Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
100 // function FMOD_System_GetSpeakerPosition (system: FMOD_SYSTEM; speaker: FMOD_SPEAKER; var x:Single; var y:Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
101 function FMOD_System_SetStreamBufferSize (system: FMOD_SYSTEM; filebuffersize: Cardinal; filebuffersizetype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
102 function FMOD_System_GetStreamBufferSize (system: FMOD_SYSTEM; var filebuffersize: Cardinal; filebuffersizetype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
104 (*
105 System information functions.
106 *)
108 function FMOD_System_GetVersion (system: FMOD_SYSTEM; var version: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
109 function FMOD_System_GetOutputHandle (system: FMOD_SYSTEM; var handle: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
110 function FMOD_System_GetChannelsPlaying (system: FMOD_SYSTEM; var channels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
111 function FMOD_System_GetCPUUsage (system: FMOD_SYSTEM; var dsp, stream, update, total: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
112 function FMOD_System_GetSoundRAM (system: FMOD_SYSTEM; var currentalloced: Integer; var maxalloced: Integer; var total: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
113 function FMOD_System_GetNumCDROMDrives (system: FMOD_SYSTEM; var num: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
114 function FMOD_System_GetCDROMDriveName (system: FMOD_SYSTEM; drivenum: Integer; name: PChar; namelen: Integer; scsiaddr: PChar; scsiaddrlen: Integer; devicename: PChar; devicenamelen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
115 function FMOD_System_GetSpectrum (system: FMOD_SYSTEM; var spectrumarray: Single; numvalues: Integer; channeloffset: Integer; windowtype: FMOD_DSP_FFT_WINDOW): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
116 function FMOD_System_GetWaveData (system: FMOD_SYSTEM; var wavearray: Single; numvalues: Integer; channeloffset: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
118 (*
119 Sound/DSP/Channel/FX creation and retrieval.
120 *)
122 function FMOD_System_CreateSound (system: FMOD_SYSTEM; const name_or_data: PChar; mode: Cardinal; exinfo: PFMOD_CREATESOUNDEXINFO; var sound: FMOD_SOUND): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
123 function FMOD_System_CreateStream (system: FMOD_SYSTEM; const name_or_data: PChar; mode: Cardinal; exinfo: PFMOD_CREATESOUNDEXINFO; var sound: FMOD_SOUND): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
124 function FMOD_System_CreateDSP (system: FMOD_SYSTEM; const description: FMOD_DSP_DESCRIPTION; var dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
125 function FMOD_System_CreateDSPByType (system: FMOD_SYSTEM; type_: FMOD_DSP_TYPE; var dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
126 // function FMOD_System_CreateDSPByIndex (system: FMOD_SYSTEM; index: Integer; var dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
127 function FMOD_System_CreateChannelGroup (system: FMOD_SYSTEM; const name: PChar; var channelgroup: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
129 function FMOD_System_PlaySound (system: FMOD_SYSTEM; channelid: Integer; sound: FMOD_SOUND; paused: FMOD_BOOL; var channel: FMOD_CHANNEL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
130 function FMOD_System_PlayDSP (system: FMOD_SYSTEM; channelid: Integer; dsp: FMOD_DSP; paused: FMOD_BOOL; var channel: FMOD_CHANNEL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
131 function FMOD_System_GetChannel (system: FMOD_SYSTEM; channelid: Integer; var channel: FMOD_CHANNEL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
132 function FMOD_System_GetMasterChannelGroup (system: FMOD_SYSTEM; var channelgroup: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
134 (*
135 Reverb API
136 *)
138 function FMOD_System_SetReverbProperties (system: FMOD_SYSTEM; const prop: FMOD_REVERB_PROPERTIES): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
139 function FMOD_System_GetReverbProperties (system: FMOD_SYSTEM; var prop: FMOD_REVERB_PROPERTIES): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
140 Function FMOD_System_SetReverbAmbientProperties(system:FMOD_SYSTEM; var prop:FMOD_REVERB_PROPERTIES):FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
142 (*
143 System level DSP access.
144 *)
146 function FMOD_System_GetDSPHead (system: FMOD_SYSTEM; var dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
147 function FMOD_System_AddDSP (system: FMOD_SYSTEM; dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
148 function FMOD_System_LockDSP (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
149 function FMOD_System_UnlockDSP (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
151 (*
152 Recording API
153 *)
155 // function FMOD_System_SetRecordDriver (system: FMOD_SYSTEM; driver: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
156 // function FMOD_System_GetRecordDriver (system: FMOD_SYSTEM; var driver: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
157 function FMOD_System_GetRecordNumDrivers (system: FMOD_SYSTEM; var numdrivers: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
158 // function FMOD_System_GetRecordDriverName (system: FMOD_SYSTEM; id: Integer; name: PChar; namelen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
159 function FMOD_System_GetRecordPosition (system: FMOD_SYSTEM; var position: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
161 function FMOD_System_RecordStart (system: FMOD_SYSTEM; sound: FMOD_SOUND; loop: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
162 function FMOD_System_RecordStop (system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
163 function FMOD_System_IsRecording (system: FMOD_SYSTEM; var recording: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
165 (*
166 Geometry API.
167 *)
169 function FMOD_System_CreateGeometry (system: FMOD_SYSTEM; maxPolygons: Integer; maxVertices: Integer; var geometry: FMOD_GEOMETRY): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
170 function FMOD_System_SetGeometrySettings (system: FMOD_SYSTEM; maxWorldSize: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
171 function FMOD_System_GetGeometrySettings (system: FMOD_SYSTEM; var maxWorldSize: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
172 function FMOD_System_LoadGeometry (system: FMOD_SYSTEM; data: Pointer; dataSize: Integer; var geometry: FMOD_GEOMETRY): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
174 (*
175 Network functions.
176 *)
178 function FMOD_System_SetNetworkProxy (system: FMOD_SYSTEM; const proxy: PChar): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
179 function FMOD_System_GetNetworkProxy (system: FMOD_SYSTEM; proxy: PChar; proxylen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
180 function FMOD_System_SetNetworkTimeout (system: FMOD_SYSTEM; timeout: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
181 function FMOD_System_GetNetworkTimeout (system: FMOD_SYSTEM; var timeout: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
183 (*
184 Userdata set/get.
185 *)
187 function FMOD_System_SetUserData (system: FMOD_SYSTEM; userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
188 function FMOD_System_GetUserData (system: FMOD_SYSTEM; var userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
190 (*
191 'Sound' API
192 *)
194 function FMOD_Sound_Release (sound: FMOD_SOUND): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
195 function FMOD_Sound_GetSystemObject (sound: FMOD_SOUND; var system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
197 (*
198 Standard sound manipulation functions.
199 *)
201 function FMOD_Sound_Lock (sound: FMOD_SOUND; offset, length: Cardinal; var ptr1: Pointer; var ptr2: Pointer; var len1: Cardinal; var len2: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
202 function FMOD_Sound_Unlock (sound: FMOD_SOUND; ptr1, ptr2: Pointer; len1, len2: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
203 function FMOD_Sound_SetDefaults (sound: FMOD_SOUND; frequency, volume, pan: Single; const levels: Single; priority: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
204 function FMOD_Sound_GetDefaults (sound: FMOD_SOUND; var frequency: Single; var volume: Single; var pan: Single; var priority: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
205 function FMOD_Sound_SetVariations (sound: FMOD_SOUND; frequency, volume, pan: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
206 function FMOD_Sound_GetVariations (sound: FMOD_SOUND; var frequency: Single; var volume: Single; var pan: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
207 function FMOD_Sound_Set3DMinMaxDistance (sound: FMOD_SOUND; min, max: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
208 function FMOD_Sound_Get3DMinMaxDistance (sound: FMOD_SOUND; var min: Single; var max: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
209 function FMOD_Sound_Set3DConeSettings (sound: FMOD_SOUND; insideconeangle: Single; outsideconeangle: Single; outsidevolume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
210 function FMOD_Sound_Get3DConeSettings (sound: FMOD_SOUND; var insideconeangle: Single; var outsideconeangle: Single; var outsidevolume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
211 function FMOD_Sound_Set3DCustomRolloff (sound: FMOD_SOUND; points: FMOD_VECTOR; numpoints: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
212 function FMOD_Sound_Get3DCustomRolloff (sound: FMOD_SOUND; var points: FMOD_VECTOR; var numpoints: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
213 function FMOD_Sound_SetSubSound (sound: FMOD_SOUND; index: Integer; subsound: FMOD_SOUND): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
214 function FMOD_Sound_GetSubSound (sound: FMOD_SOUND; index: Integer; var subsound: FMOD_SOUND): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
215 function FMOD_Sound_SetSubSoundSentence (sound: FMOD_SOUND; var subsoundlist: Integer; numsubsounds: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
216 function FMOD_Sound_GetName (sound: FMOD_SOUND; name: PChar; namelen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
217 function FMOD_Sound_GetLength (sound: FMOD_SOUND; var length: Cardinal; lengthtype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
218 function FMOD_Sound_GetFormat (sound: FMOD_SOUND; var type_: FMOD_SOUND_TYPE; var format: FMOD_SOUND_FORMAT; var channels: Integer; var bits: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
219 function FMOD_Sound_GetNumSubSounds (sound: FMOD_SOUND; var numsubsounds: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
220 function FMOD_Sound_GetNumTags (sound: FMOD_SOUND; var numtags: Integer; var numtagsupdated: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
221 function FMOD_Sound_GetTag (sound: FMOD_SOUND; const name: PChar; index: Integer; var tag: FMOD_TAG): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
222 function FMOD_Sound_GetOpenState (sound: FMOD_SOUND; var openstate: FMOD_OPENSTATE; var percentbuffered: Cardinal; var starving: Boolean): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
223 function FMOD_Sound_ReadData (sound: FMOD_SOUND; buffer: Pointer; lenbytes: Cardinal; var read: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
224 function FMOD_Sound_SeekData (sound: FMOD_SOUND; pcm: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
226 (*
227 Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks.
228 *)
230 function FMOD_Sound_GetNumSyncPoints (sound: FMOD_SOUND; var numsyncpoints: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
231 function FMOD_Sound_GetSyncPoint (sound: FMOD_SOUND; index: Integer; var point: FMOD_SYNCPOINT): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
232 function FMOD_Sound_GetSyncPointInfo (sound: FMOD_SOUND; point: FMOD_SYNCPOINT; name: PChar; namelen: Integer; offset: Cardinal; offsettype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
233 function FMOD_Sound_AddSyncPoint (sound: FMOD_SOUND; offset: Cardinal; offsettype: Cardinal; name: PChar; var point: FMOD_SYNCPOINT): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
234 function FMOD_Sound_DeleteSyncPoint (sound: FMOD_SOUND; point: FMOD_SYNCPOINT): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
236 (*
237 Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time.
238 *)
240 function FMOD_Sound_SetMode (sound: FMOD_SOUND; mode: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
241 function FMOD_Sound_GetMode (sound: FMOD_SOUND; var mode: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
242 function FMOD_Sound_SetLoopCount (sound: FMOD_SOUND; loopcount: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
243 function FMOD_Sound_GetLoopCount (sound: FMOD_SOUND; var loopcount: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
244 function FMOD_Sound_SetLoopPoints (sound: FMOD_SOUND; loopstart: Cardinal; loopstarttype: Cardinal; loopend: Cardinal; loopendtype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
245 function FMOD_Sound_GetLoopPoints (sound: FMOD_SOUND; var loopstart: Cardinal; loopstarttype: Cardinal; var loopend: Cardinal; loopendtype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
247 (*
248 Userdata set/get.
249 *)
251 function FMOD_Sound_SetUserData (sound: FMOD_SOUND; userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
252 function FMOD_Sound_GetUserData (sound: FMOD_SOUND; var userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
254 (*
255 'Channel' API
256 *)
258 function FMOD_Channel_GetSystemObject (channel: FMOD_CHANNEL; var system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
260 function FMOD_Channel_Stop (channel: FMOD_CHANNEL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
261 function FMOD_Channel_SetPaused (channel: FMOD_CHANNEL; paused: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
262 function FMOD_Channel_GetPaused (channel: FMOD_CHANNEL; var paused: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
263 function FMOD_Channel_SetVolume (channel: FMOD_CHANNEL; volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
264 function FMOD_Channel_GetVolume (channel: FMOD_CHANNEL; var volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
265 function FMOD_Channel_SetFrequency (channel: FMOD_CHANNEL; frequency: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
266 function FMOD_Channel_GetFrequency (channel: FMOD_CHANNEL; var frequency: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
267 function FMOD_Channel_SetPan (channel: FMOD_CHANNEL; pan: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
268 function FMOD_Channel_GetPan (channel: FMOD_CHANNEL; var pan: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
269 function FMOD_Channel_SetDelay (channel: FMOD_CHANNEL; startdelay: Cardinal; enddelay: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
270 function FMOD_Channel_GetDelay (channel: FMOD_CHANNEL; var startdelay: Cardinal; var enddelay: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
271 function FMOD_Channel_SetSpeakerMix (channel: FMOD_CHANNEL; frontleft, frontright, center, lfe, backleft, backright, sideleft, sideright: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
272 function FMOD_Channel_GetSpeakerMix (channel: FMOD_CHANNEL; var frontleft: Single; var frontright: Single; var center: Single; var lfe: Single; var backleft: Single; var backright: Single; var sideleft: Single; var sideright: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
273 function FMOD_Channel_SetSpeakerLevels (channel: FMOD_CHANNEL; speaker: FMOD_SPEAKER; const levels: Single; numlevels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
274 function FMOD_Channel_GetSpeakerLevels (channel: FMOD_CHANNEL; speaker: FMOD_SPEAKER; var levels: Single; var numlevels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
275 function FMOD_Channel_SetMute (channel: FMOD_CHANNEL; mute: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
276 function FMOD_Channel_GetMute (channel: FMOD_CHANNEL; var mute: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
277 function FMOD_Channel_SetPriority (channel: FMOD_CHANNEL; priority: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
278 function FMOD_Channel_GetPriority (channel: FMOD_CHANNEL; var priority: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
279 function FMOD_Channel_SetPosition (channel: FMOD_CHANNEL; position: Cardinal; postype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
280 function FMOD_Channel_GetPosition (channel: FMOD_CHANNEL; var position: Cardinal; postype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
281 function FMOD_Channel_SetReverbProperties (channel: FMOD_CHANNEL; const prop: FMOD_REVERB_CHANNELPROPERTIES): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
282 function FMOD_Channel_GetReverbProperties (channel: FMOD_CHANNEL; var prop: FMOD_REVERB_CHANNELPROPERTIES): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
283 function FMOD_Channel_SetChannelGroup (channel: FMOD_CHANNEL; channelgroup: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
284 function FMOD_Channel_GetChannelGroup (channel: FMOD_CHANNEL; var channelgroup: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
285 function FMOD_Channel_SetCallback (channel: FMOD_CHANNEL; callback: FMOD_CHANNEL_CALLBACK): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
287 (*
288 3D functionality.
289 *)
291 function FMOD_Channel_Set3DAttributes (channel: FMOD_CHANNEL; const pos: FMOD_VECTOR; const vel: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
292 function FMOD_Channel_Get3DAttributes (channel: FMOD_CHANNEL; var pos: FMOD_VECTOR; var vel: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
293 function FMOD_Channel_Set3DMinMaxDistance (channel: FMOD_CHANNEL; mindistance, maxdistance: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
294 function FMOD_Channel_Get3DMinMaxDistance (channel: FMOD_CHANNEL; var mindistance: Single; var maxdistance: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
295 function FMOD_Channel_Set3DConeSettings (channel: FMOD_CHANNEL; insideconeangle: Single; outsideconeangle: Single; outsidevolume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
296 function FMOD_Channel_Get3DConeSettings (channel: FMOD_CHANNEL; var insideconeangle: Single; var outsideconeangle: Single; var outsidevolume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
297 function FMOD_Channel_Set3DConeOrientation (channel: FMOD_CHANNEL; var orientation: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
298 function FMOD_Channel_Get3DConeOrientation (channel: FMOD_CHANNEL; var orientation: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
299 function FMOD_Channel_Set3DCustomRolloff (channel: FMOD_CHANNEL; points: FMOD_VECTOR; numpoints: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
300 function FMOD_Channel_Get3DCustomRolloff (channel: FMOD_CHANNEL; var points: FMOD_VECTOR; var numpoints: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
301 function FMOD_Channel_Set3DOcclusion (channel: FMOD_CHANNEL; directOcclusion: Single; reverbOcclusion: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
302 function FMOD_Channel_Get3DOcclusion (channel: FMOD_CHANNEL; var directOcclusion: Single; var reverbOcclusion: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
303 function FMOD_Channel_Set3DSpread (channel: FMOD_CHANNEL; angle: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
304 function FMOD_Channel_Get3DSpread (channel: FMOD_CHANNEL; var angle: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
305 function FMOD_Channel_Set3DPanLevel (channel: FMOD_CHANNEL; level: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
306 function FMOD_Channel_Get3DPanLevel (channel: FMOD_CHANNEL; var level: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
308 (*
309 DSP functionality only for channels playing sounds created with FMOD_SOFTWARE.
310 *)
312 function FMOD_Channel_GetDSPHead (channel: FMOD_CHANNEL; var dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
313 function FMOD_Channel_AddDSP (channel: FMOD_CHANNEL; dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
315 (*
316 Information only functions.
317 *)
319 function FMOD_Channel_IsPlaying (channel: FMOD_CHANNEL; var isplaying: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
320 function FMOD_Channel_IsVirtual (channel: FMOD_CHANNEL; var isvirtual: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
321 function FMOD_Channel_GetAudibility (channel: FMOD_CHANNEL; var audibility: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
322 function FMOD_Channel_GetCurrentSound (channel: FMOD_CHANNEL; var sound: FMOD_SOUND): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
323 function FMOD_Channel_GetSpectrum (channel: FMOD_CHANNEL; spectrumarray: PSingle; numvalues: Integer; channeloffset: Integer; windowtype: FMOD_DSP_FFT_WINDOW): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
324 function FMOD_Channel_GetWaveData (channel: FMOD_CHANNEL; var wavearray: Single; numvalues: Integer; channeloffset: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
325 function FMOD_Channel_GetIndex (channel: FMOD_CHANNEL; var index: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
327 (*
328 Functions also found in Sound class but here they can be set per channel.
329 *)
331 function FMOD_Channel_SetMode (channel: FMOD_CHANNEL; mode: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
332 function FMOD_Channel_GetMode (channel: FMOD_CHANNEL; var mode: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
333 function FMOD_Channel_SetLoopCount (channel: FMOD_CHANNEL; loopcount: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
334 function FMOD_Channel_GetLoopCount (channel: FMOD_CHANNEL; var loopcount: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
335 function FMOD_Channel_SetLoopPoints (channel: FMOD_CHANNEL; loopstart: Cardinal; loopstarttype: Cardinal; loopend: Cardinal; loopendtype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
336 function FMOD_Channel_GetLoopPoints (channel: FMOD_CHANNEL; var loopstart: Cardinal; loopstarttype: Cardinal; var loopend: Cardinal; loopendtype: Cardinal): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
338 (*
339 Userdata set/get.
340 *)
342 function FMOD_Channel_SetUserData (channel: FMOD_CHANNEL; userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
343 function FMOD_Channel_GetUserData (channel: FMOD_CHANNEL; var userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
345 (*
346 'ChannelGroup' API
347 *)
349 function FMOD_ChannelGroup_Release (channelgroup: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
350 function FMOD_ChannelGroup_GetSystemObject (channelgroup: FMOD_CHANNELGROUP; var system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
352 (*
353 Channelgroup scale values. (scales the current volume or pitch of all channels and channel groups, DOESN'T overwrite)
354 *)
356 function FMOD_ChannelGroup_SetVolume (channelgroup: FMOD_CHANNELGROUP; volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
357 function FMOD_ChannelGroup_GetVolume (channelgroup: FMOD_CHANNELGROUP; var volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
358 function FMOD_ChannelGroup_SetPitch (channelgroup: FMOD_CHANNELGROUP; pitch: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
359 function FMOD_ChannelGroup_GetPitch (channelgroup: FMOD_CHANNELGROUP; var pitch: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
361 (*
362 Channelgroup override values. (recursively overwrites whatever settings the channels had)
363 *)
365 function FMOD_ChannelGroup_Stop (channelgroup: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
366 // function FMOD_ChannelGroup_OverridePaused (channelgroup: FMOD_CHANNELGROUP; paused: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
367 function FMOD_ChannelGroup_OverrideVolume (channelgroup: FMOD_CHANNELGROUP; volume : Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
368 function FMOD_ChannelGroup_OverrideFrequency (channelgroup: FMOD_CHANNELGROUP; frequency: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
369 function FMOD_ChannelGroup_OverridePan (channelgroup: FMOD_CHANNELGROUP; pan: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
370 // function FMOD_ChannelGroup_OverrideMute (channelgroup: FMOD_CHANNELGROUP; mute: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
371 function FMOD_ChannelGroup_OverrideReverbProperties(channelgroup: FMOD_CHANNELGROUP; const prop: FMOD_REVERB_CHANNELPROPERTIES): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
372 function FMOD_ChannelGroup_Override3DAttributes (channelgroup: FMOD_CHANNELGROUP; const pos: FMOD_VECTOR; const vel: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
373 function FMOD_ChannelGroup_OverrideSpeakerMix (channelgroup: FMOD_CHANNELGROUP; frontleft, frontright, center, lfe, backleft, backright, sideleft, sideright: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
375 (*
376 Nested channel groups.
377 *)
379 function FMOD_ChannelGroup_AddGroup (channelgroup: FMOD_CHANNELGROUP; group: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
380 function FMOD_ChannelGroup_GetNumGroups (channelgroup: FMOD_CHANNELGROUP; var numgroups: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
381 function FMOD_ChannelGroup_GetGroup (channelgroup: FMOD_CHANNELGROUP; index: Integer; var group: FMOD_CHANNELGROUP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
383 (*
384 DSP functionality only for channel groups playing sounds created with FMOD_SOFTWARE.
385 *)
387 function FMOD_ChannelGroup_GetDSPHead (channelgroup: FMOD_CHANNELGROUP; var dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
388 function FMOD_ChannelGroup_AddDSP (channelgroup: FMOD_CHANNELGROUP; dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
390 (*
391 Information only functions.
392 *)
394 function FMOD_ChannelGroup_GetName (channelgroup: FMOD_CHANNELGROUP; name: PChar; namelen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
395 function FMOD_ChannelGroup_GetNumChannels (channelgroup: FMOD_CHANNELGROUP; var numchannels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
396 function FMOD_ChannelGroup_GetChannel (channelgroup: FMOD_CHANNELGROUP; index: Integer; var channel: FMOD_CHANNEL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
397 function FMOD_ChannelGroup_GetSpectrum (channelgroup: FMOD_CHANNELGROUP; var spectrumarray: Single; numvalues: Integer; channeloffset: Integer; windowtype: FMOD_DSP_FFT_WINDOW ): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
398 function FMOD_ChannelGroup_GetWaveData (channelgroup: FMOD_CHANNELGROUP; var wavearray: Single; numvalues: Integer; channeloffset: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
400 (*
401 Userdata set/get.
402 *)
404 function FMOD_ChannelGroup_SetUserData (channelgroup: FMOD_CHANNELGROUP; userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
405 function FMOD_ChannelGroup_GetUserData (channelgroup: FMOD_CHANNELGROUP; var userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
407 (*
408 'DSP' API
409 *)
411 function FMOD_DSP_Release (dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
412 function FMOD_DSP_GetSystemObject (dsp: FMOD_DSP; var system: FMOD_SYSTEM): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
414 (*
415 Connection / disconnection / input and output enumeration.
416 *)
418 function FMOD_DSP_AddInput (dsp, target: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
419 function FMOD_DSP_DisconnectFrom (dsp, target: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
420 function FMOD_DSP_Remove (dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
421 function FMOD_DSP_GetNumInputs (dsp: FMOD_DSP; var numinputs: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
422 function FMOD_DSP_GetNumOutputs (dsp: FMOD_DSP; var numoutputs: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
423 function FMOD_DSP_GetInput (dsp: FMOD_DSP; index: Integer; var input: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
424 function FMOD_DSP_GetOutput (dsp: FMOD_DSP; index: Integer; var output: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
425 // function FMOD_DSP_SetInputMix (dsp: FMOD_DSP; index: Integer; volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
426 // function FMOD_DSP_GetInputMix (dsp: FMOD_DSP; index: Integer; var volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
427 // function FMOD_DSP_SetInputLevels (dsp: FMOD_DSP; index: Integer; speaker: FMOD_SPEAKER; const levels: Single; numlevels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
428 // function FMOD_DSP_GetInputLevels (dsp: FMOD_DSP; index: Integer; speaker: FMOD_SPEAKER; const levels: Single; numlevels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
429 // function FMOD_DSP_SetOutputMix (dsp: FMOD_DSP; index: Integer; volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
430 // function FMOD_DSP_GetOutputMix (dsp: FMOD_DSP; index: Integer; var volume: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
431 // function FMOD_DSP_SetOutputLevels (dsp: FMOD_DSP; index: Integer; speaker: FMOD_SPEAKER; const levels: Single; numlevels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
432 // function FMOD_DSP_GetOutputLevels (dsp: FMOD_DSP; index: Integer; speaker: FMOD_SPEAKER; const levels: Single; numlevels: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
434 (*
435 DSP unit control
436 *)
438 function FMOD_DSP_SetActive (dsp: FMOD_DSP; active: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
439 function FMOD_DSP_GetActive (dsp: FMOD_DSP; var active: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
440 function FMOD_DSP_SetBypass (dsp: FMOD_DSP; bypass: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
441 function FMOD_DSP_GetBypass (dsp: FMOD_DSP; var bypass: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
442 function FMOD_DSP_Reset (dsp: FMOD_DSP): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
444 (*
445 DSP parameter control
446 *)
448 function FMOD_DSP_SetParameter (dsp: FMOD_DSP; index: Integer; value: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
449 function FMOD_DSP_GetParameter (dsp: FMOD_DSP; index: Integer; var value: Single; valuestr: PChar; valuestrlen: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
450 function FMOD_DSP_GetNumParameters (dsp: FMOD_DSP; var numparams: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
451 function FMOD_DSP_GetParameterInfo (dsp: FMOD_DSP; index: Integer; name: PChar; plabel: PChar; description: PChar; descriptionlen: Integer; var min: Single; var max: Single): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
452 function FMOD_DSP_ShowConfigDialog (dsp: FMOD_DSP; hwnd: Pointer; show: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
454 (*
455 DSP attributes.
456 *)
458 function FMOD_DSP_GetInfo (dsp: FMOD_DSP; name:PChar; var version: cardinal; var channels:integer; var configwidth:integer; var configheight:integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
459 function FMOD_DSP_SetDefaults (dsp: FMOD_DSP; frequency: Single; volume: Single; pan: Single; var levels: Single; priority: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
460 function FMOD_DSP_GetDefaults (dsp: FMOD_DSP; var frequency: Single; var volume: Single; var pan: Single; var priority: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
462 (*
463 Userdata set/get.
464 *)
466 function FMOD_DSP_SetUserData (dsp: FMOD_DSP; userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
467 function FMOD_DSP_GetUserData (dsp: FMOD_DSP; var userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
469 (*
470 'Geometry' API
471 *)
473 function FMOD_Geometry_Release (geometry: FMOD_GEOMETRY): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
475 function FMOD_Geometry_AddPolygon (geometry: FMOD_GEOMETRY; directOcclusion: Single; reverbOcclusion: Single; doubleSided: FMOD_BOOL; numVertices: Integer; vertices: PFMOD_VECTOR; var polygonIndex: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
476 function FMOD_Geometry_GetNumPolygons (geometry: FMOD_GEOMETRY; var numPolygons: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
477 function FMOD_Geometry_GetMaxPolygons (geometry: FMOD_GEOMETRY; var maxPolygons: Integer; maxVertices: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
478 function FMOD_Geometry_GetPolygonNumVertices(geometry: FMOD_GEOMETRY; polygonIndex: Integer; var numVertices: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
479 function FMOD_Geometry_SetPolygonVertex (geometry: FMOD_GEOMETRY; polygonIndex: Integer; vertexIndex: Integer; var vertex: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
480 function FMOD_Geometry_GetPolygonVertex (geometry: FMOD_GEOMETRY; polygonIndex: Integer; vertexIndex: Integer; var vertex: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
481 function FMOD_Geometry_SetPolygonAttributes (geometry: FMOD_GEOMETRY; polygonIndex: Integer; directOcclusion: Single; reverbOcclusion: Single; doubleSided: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
482 function FMOD_Geometry_GetPolygonAttributes (geometry: FMOD_GEOMETRY; polygonIndex: Integer; var directOcclusion: Single; var reverbOcclusion: Single; var doubleSided: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
484 function FMOD_Geometry_SetActive (geometry: FMOD_GEOMETRY; active: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
485 function FMOD_Geometry_GetActive (geometry: FMOD_GEOMETRY; var active: FMOD_BOOL): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
486 function FMOD_Geometry_SetRotation (geometry: FMOD_GEOMETRY; var forward: FMOD_VECTOR; var up: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
487 function FMOD_Geometry_GetRotation (geometry: FMOD_GEOMETRY; var forward: FMOD_VECTOR; var up: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
488 function FMOD_Geometry_SetPosition (geometry: FMOD_GEOMETRY; var position: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
489 function FMOD_Geometry_GetPosition (geometry: FMOD_GEOMETRY; var position: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
490 function FMOD_Geometry_SetScale (geometry: FMOD_GEOMETRY; var scale: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
491 function FMOD_Geometry_GetScale (geometry: FMOD_GEOMETRY; var scale: FMOD_VECTOR): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
492 function FMOD_Geometry_Save (geometry: FMOD_GEOMETRY; data: Pointer; var datasize: Integer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
494 (*
495 Userdata set/get.
496 *)
498 function FMOD_Geometry_SetUserData (geometry: FMOD_GEOMETRY; userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
499 function FMOD_Geometry_GetUserData (geometry: FMOD_GEOMETRY; var userdata: Pointer): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
501 function FMOD_Load (const libname: PChar): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
502 function FMOD_Unload (): FMOD_RESULT; {$IFDEF WIN32} stdcall; {$ELSE} cdecl; {$ENDIF}
504 implementation
506 const
507 {$IFDEF MSWINDOWS}
508 FMOD_DLL = 'fmodex.dll';
509 {$ELSE}
510 {$IFDEF LINUX}
511 FMOD_DLL = 'libfmodex.so';
512 {$ENDIF}
513 {$ENDIF}
515 function FMOD_Load(const libname: PChar): FMOD_RESULT;
516 begin
517 FMOD_Load := FMOD_OK;
518 end;
520 function FMOD_Unload(): FMOD_RESULT;
521 begin
522 FMOD_Unload := FMOD_OK;
523 end;
525 (*
526 FMOD System memory functions (optional).
527 *)
529 function FMOD_Memory_Initialize ; external FMOD_DLL;
530 function FMOD_Memory_GetStats ; external FMOD_DLL;
532 (*
533 FMOD System factory functions. Use this to create an FMOD System Instance. below you will see FMOD_System_Init/Close to get started.
534 *)
536 function FMOD_System_Create ; external FMOD_DLL;
537 function FMOD_System_Release ; external FMOD_DLL;
539 (*
540 'System' API
541 *)
543 (*
544 Pre-init functions.
545 *)
547 function FMOD_System_SetOutput ; external FMOD_DLL;
548 function FMOD_System_GetOutput ; external FMOD_DLL;
549 function FMOD_System_GetNumDrivers ; external FMOD_DLL;
550 // function FMOD_System_GetDriverName ; external FMOD_DLL;
551 function FMOD_System_GetDriverCaps ; external FMOD_DLL;
552 function FMOD_System_SetDriver ; external FMOD_DLL;
553 function FMOD_System_GetDriver ; external FMOD_DLL;
554 function FMOD_System_SetHardwareChannels ; external FMOD_DLL;
555 function FMOD_System_GetHardwareChannels ; external FMOD_DLL;
556 function FMOD_System_SetSoftwareChannels ; external FMOD_DLL;
557 function FMOD_System_GetSoftwareChannels ; external FMOD_DLL;
558 function FMOD_System_SetSoftwareFormat ; external FMOD_DLL;
559 function FMOD_System_GetSoftwareFormat ; external FMOD_DLL;
560 function FMOD_System_SetDSPBufferSize ; external FMOD_DLL;
561 function FMOD_System_GetDSPBufferSize ; external FMOD_DLL;
562 function FMOD_System_SetFileSystem ; external FMOD_DLL;
563 function FMOD_System_AttachFileSystem ; external FMOD_DLL;
564 function FMOD_System_SetAdvancedSettings ; external FMOD_DLL;
565 function FMOD_System_GetAdvancedSettings ; external FMOD_DLL;
566 function FMOD_System_SetSpeakerMode ; external FMOD_DLL;
567 function FMOD_System_GetSpeakerMode ; external FMOD_DLL;
569 (*
570 Plug-in support
571 *)
573 function FMOD_System_SetPluginPath ; external FMOD_DLL;
574 function FMOD_System_LoadPlugin ; external FMOD_DLL;
575 function FMOD_System_GetNumPlugins ; external FMOD_DLL;
576 function FMOD_System_GetPluginInfo ; external FMOD_DLL;
577 function FMOD_System_UnloadPlugin ; external FMOD_DLL;
578 function FMOD_System_SetOutputByPlugin ; external FMOD_DLL;
579 function FMOD_System_GetOutputByPlugin ; external FMOD_DLL;
580 // function FMOD_System_CreateCodec ; external FMOD_DLL;
582 (*
583 Init/Close
584 *)
586 function FMOD_System_Init ; external FMOD_DLL;
587 function FMOD_System_Close ; external FMOD_DLL;
589 (*
590 General post-init system functions
591 *)
593 function FMOD_System_Update ; external FMOD_DLL;
594 // function FMOD_System_UpdateFinished ; external FMOD_DLL;
596 function FMOD_System_Set3DSettings ; external FMOD_DLL;
597 function FMOD_System_Get3DSettings ; external FMOD_DLL;
598 function FMOD_System_Set3DNumListeners ; external FMOD_DLL;
599 function FMOD_System_Get3DNumListeners ; external FMOD_DLL;
600 function FMOD_System_Set3DListenerAttributes; external FMOD_DLL;
601 function FMOD_System_Get3DListenerAttributes; external FMOD_DLL;
603 // function FMOD_System_SetSpeakerPosition ; external FMOD_DLL;
604 // function FMOD_System_GetSpeakerPosition ; external FMOD_DLL;
605 function FMOD_System_SetStreamBufferSize ; external FMOD_DLL;
606 function FMOD_System_GetStreamBufferSize ; external FMOD_DLL;
608 (*
609 System information functions.
610 *)
612 function FMOD_System_GetVersion ; external FMOD_DLL;
613 function FMOD_System_GetOutputHandle ; external FMOD_DLL;
614 function FMOD_System_GetChannelsPlaying ; external FMOD_DLL;
615 function FMOD_System_GetCPUUsage ; external FMOD_DLL;
616 function FMOD_System_GetSoundRAM ; external FMOD_DLL;
617 function FMOD_System_GetNumCDROMDrives ; external FMOD_DLL;
618 function FMOD_System_GetCDROMDriveName ; external FMOD_DLL;
619 function FMOD_System_GetSpectrum ; external FMOD_DLL;
620 function FMOD_System_GetWaveData ; external FMOD_DLL;
622 (*
623 Sound/DSP/Channel/FX creation and retrieval.
624 *)
626 function FMOD_System_CreateSound ; external FMOD_DLL;
627 function FMOD_System_CreateStream ; external FMOD_DLL;
628 function FMOD_System_CreateDSP ; external FMOD_DLL;
629 function FMOD_System_CreateDSPByType ; external FMOD_DLL;
630 // function FMOD_System_CreateDSPByIndex ; external FMOD_DLL;
631 function FMOD_System_CreateChannelGroup ; external FMOD_DLL;
633 function FMOD_System_PlaySound ; external FMOD_DLL;
634 function FMOD_System_PlayDSP ; external FMOD_DLL;
635 function FMOD_System_GetChannel ; external FMOD_DLL;
636 function FMOD_System_GetMasterChannelGroup ; external FMOD_DLL;
638 (*
639 Reverb API
640 *)
642 function FMOD_System_SetReverbProperties ; external FMOD_DLL;
643 function FMOD_System_GetReverbProperties ; external FMOD_DLL;
644 Function FMOD_System_SetReverbAmbientProperties; external fmod_dll;
645 (*
646 System level DSP access.
647 *)
649 function FMOD_System_GetDSPHead ; external FMOD_DLL;
650 function FMOD_System_AddDSP ; external FMOD_DLL;
651 function FMOD_System_LockDSP ; external FMOD_DLL;
652 function FMOD_System_UnlockDSP ; external FMOD_DLL;
654 (*
655 Recording API
656 *)
658 // function FMOD_System_SetRecordDriver ; external FMOD_DLL;
659 // function FMOD_System_GetRecordDriver ; external FMOD_DLL;
660 function FMOD_System_GetRecordNumDrivers ; external FMOD_DLL;
661 // function FMOD_System_GetRecordDriverName ; external FMOD_DLL;
662 function FMOD_System_GetRecordPosition ; external FMOD_DLL;
664 function FMOD_System_RecordStart ; external FMOD_DLL;
665 function FMOD_System_RecordStop ; external FMOD_DLL;
666 function FMOD_System_IsRecording ; external FMOD_DLL;
668 (*
669 Geometry API.
670 *)
672 function FMOD_System_CreateGeometry ; external FMOD_DLL;
673 function FMOD_System_SetGeometrySettings ; external FMOD_DLL;
674 function FMOD_System_GetGeometrySettings ; external FMOD_DLL;
675 function FMOD_System_LoadGeometry ; external FMOD_DLL;
677 (*
678 Network functions
679 *)
681 function FMOD_System_SetNetworkProxy ; external FMOD_DLL;
682 function FMOD_System_GetNetworkProxy ; external FMOD_DLL;
683 function FMOD_System_SetNetworkTimeout ; external FMOD_DLL;
684 function FMOD_System_GetNetworkTimeout ; external FMOD_DLL;
686 (*
687 Userdata set/get
688 *)
690 function FMOD_System_SetUserData ; external FMOD_DLL;
691 function FMOD_System_GetUserData ; external FMOD_DLL;
693 (*
694 'Sound' API
695 *)
697 function FMOD_Sound_Release ; external FMOD_DLL;
698 function FMOD_Sound_GetSystemObject ; external FMOD_DLL;
700 (*
701 Standard sound manipulation functions.
702 *)
704 function FMOD_Sound_Lock ; external FMOD_DLL;
705 function FMOD_Sound_Unlock ; external FMOD_DLL;
706 function FMOD_Sound_SetDefaults ; external FMOD_DLL;
707 function FMOD_Sound_GetDefaults ; external FMOD_DLL;
708 function FMOD_Sound_SetVariations ; external FMOD_DLL;
709 function FMOD_Sound_GetVariations ; external FMOD_DLL;
710 function FMOD_Sound_Set3DMinMaxDistance ; external FMOD_DLL;
711 function FMOD_Sound_Get3DMinMaxDistance ; external FMOD_DLL;
712 function FMOD_Sound_Set3DConeSettings ; external FMOD_DLL;
713 function FMOD_Sound_Get3DConeSettings ; external FMOD_DLL;
714 function FMOD_Sound_Set3DCustomRolloff ; external FMOD_DLL;
715 function FMOD_Sound_Get3DCustomRolloff ; external FMOD_DLL;
716 function FMOD_Sound_SetSubSound ; external FMOD_DLL;
717 function FMOD_Sound_GetSubSound ; external FMOD_DLL;
718 function FMOD_Sound_SetSubSoundSentence ; external FMOD_DLL;
719 function FMOD_Sound_GetName ; external FMOD_DLL;
720 function FMOD_Sound_GetLength ; external FMOD_DLL;
721 function FMOD_Sound_GetFormat ; external FMOD_DLL;
722 function FMOD_Sound_GetNumSubSounds ; external FMOD_DLL;
723 function FMOD_Sound_GetNumTags ; external FMOD_DLL;
724 function FMOD_Sound_GetTag ; external FMOD_DLL;
725 function FMOD_Sound_GetOpenState ; external FMOD_DLL;
726 function FMOD_Sound_ReadData ; external FMOD_DLL;
727 function FMOD_Sound_SeekData ; external FMOD_DLL;
729 (*
730 Synchronization point API. These points can come from markers embedded in wav files, and can also generate channel callbacks.
731 *)
733 function FMOD_Sound_GetNumSyncPoints ; external FMOD_DLL;
734 function FMOD_Sound_GetSyncPoint ; external FMOD_DLL;
735 function FMOD_Sound_GetSyncPointInfo ; external FMOD_DLL;
736 function FMOD_Sound_AddSyncPoint ; external FMOD_DLL;
737 function FMOD_Sound_DeleteSyncPoint ; external FMOD_DLL;
739 (*
740 Functions also in Channel class but here they are the 'default' to save having to change it in Channel all the time.
741 *)
743 function FMOD_Sound_SetMode ; external FMOD_DLL;
744 function FMOD_Sound_GetMode ; external FMOD_DLL;
745 function FMOD_Sound_SetLoopCount ; external FMOD_DLL;
746 function FMOD_Sound_GetLoopCount ; external FMOD_DLL;
747 function FMOD_Sound_SetLoopPoints ; external FMOD_DLL;
748 function FMOD_Sound_GetLoopPoints ; external FMOD_DLL;
750 (*
751 Userdata set/get.
752 *)
754 function FMOD_Sound_SetUserData ; external FMOD_DLL;
755 function FMOD_Sound_GetUserData ; external FMOD_DLL;
757 (*
758 'Channel' API
759 *)
761 function FMOD_Channel_GetSystemObject ; external FMOD_DLL;
763 function FMOD_Channel_Stop ; external FMOD_DLL;
764 function FMOD_Channel_SetPaused ; external FMOD_DLL;
765 function FMOD_Channel_GetPaused ; external FMOD_DLL;
766 function FMOD_Channel_SetVolume ; external FMOD_DLL;
767 function FMOD_Channel_GetVolume ; external FMOD_DLL;
768 function FMOD_Channel_SetFrequency ; external FMOD_DLL;
769 function FMOD_Channel_GetFrequency ; external FMOD_DLL;
770 function FMOD_Channel_SetPan ; external FMOD_DLL;
771 function FMOD_Channel_GetPan ; external FMOD_DLL;
772 function FMOD_Channel_SetDelay ; external FMOD_DLL;
773 function FMOD_Channel_GetDelay ; external FMOD_DLL;
774 function FMOD_Channel_SetSpeakerMix ; external FMOD_DLL;
775 function FMOD_Channel_GetSpeakerMix ; external FMOD_DLL;
776 function FMOD_Channel_SetSpeakerLevels ; external FMOD_DLL;
777 function FMOD_Channel_GetSpeakerLevels ; external FMOD_DLL;
778 function FMOD_Channel_SetMute ; external FMOD_DLL;
779 function FMOD_Channel_GetMute ; external FMOD_DLL;
780 function FMOD_Channel_SetPriority ; external FMOD_DLL;
781 function FMOD_Channel_GetPriority ; external FMOD_DLL;
782 function FMOD_Channel_SetPosition ; external FMOD_DLL;
783 function FMOD_Channel_GetPosition ; external FMOD_DLL;
784 function FMOD_Channel_SetReverbProperties ; external FMOD_DLL;
785 function FMOD_Channel_GetReverbProperties ; external FMOD_DLL;
786 function FMOD_Channel_SetChannelGroup ; external FMOD_DLL;
787 function FMOD_Channel_GetChannelGroup ; external FMOD_DLL;
788 function FMOD_Channel_SetCallback ; external FMOD_DLL;
790 (*
791 3D functionality.
792 *)
794 function FMOD_Channel_Set3DAttributes ; external FMOD_DLL;
795 function FMOD_Channel_Get3DAttributes ; external FMOD_DLL;
796 function FMOD_Channel_Set3DMinMaxDistance ; external FMOD_DLL;
797 function FMOD_Channel_Get3DMinMaxDistance ; external FMOD_DLL;
798 function FMOD_Channel_Set3DConeSettings ; external FMOD_DLL;
799 function FMOD_Channel_Get3DConeSettings ; external FMOD_DLL;
800 function FMOD_Channel_Set3DConeOrientation ; external FMOD_DLL;
801 function FMOD_Channel_Get3DConeOrientation ; external FMOD_DLL;
802 function FMOD_Channel_Set3DCustomRolloff ; external FMOD_DLL;
803 function FMOD_Channel_Get3DCustomRolloff ; external FMOD_DLL;
804 function FMOD_Channel_Set3DOcclusion ; external FMOD_DLL;
805 function FMOD_Channel_Get3DOcclusion ; external FMOD_DLL;
806 function FMOD_Channel_Set3DSpread ; external FMOD_DLL;
807 function FMOD_Channel_Get3DSpread ; external FMOD_DLL;
808 function FMOD_Channel_Set3DPanLevel ; external FMOD_DLL;
809 function FMOD_Channel_Get3DPanLevel ; external FMOD_DLL;
811 (*
812 DSP functionality only for channels playing sounds created with FMOD_SOFTWARE.
813 *)
815 function FMOD_Channel_GetDSPHead ; external FMOD_DLL;
816 function FMOD_Channel_AddDSP ; external FMOD_DLL;
818 (*
819 Information only functions.
820 *)
822 function FMOD_Channel_IsPlaying ; external FMOD_DLL;
823 function FMOD_Channel_IsVirtual ; external FMOD_DLL;
824 function FMOD_Channel_GetAudibility ; external FMOD_DLL;
825 function FMOD_Channel_GetCurrentSound ; external FMOD_DLL;
826 function FMOD_Channel_GetSpectrum ; external FMOD_DLL;
827 function FMOD_Channel_GetWaveData ; external FMOD_DLL;
828 function FMOD_Channel_GetIndex ; external FMOD_DLL;
830 (*
831 Functions also found in Sound class but here they can be set per channel.
832 *)
834 function FMOD_Channel_SetMode ; external FMOD_DLL;
835 function FMOD_Channel_GetMode ; external FMOD_DLL;
836 function FMOD_Channel_SetLoopCount ; external FMOD_DLL;
837 function FMOD_Channel_GetLoopCount ; external FMOD_DLL;
838 function FMOD_Channel_SetLoopPoints ; external FMOD_DLL;
839 function FMOD_Channel_GetLoopPoints ; external FMOD_DLL;
841 (*
842 Userdata set/get.
843 *)
845 function FMOD_Channel_SetUserData ; external FMOD_DLL;
846 function FMOD_Channel_GetUserData ; external FMOD_DLL;
848 (*
849 'ChannelGroup' API
850 *)
852 function FMOD_ChannelGroup_Release ; external FMOD_DLL;
853 function FMOD_ChannelGroup_GetSystemObject ; external FMOD_DLL;
855 (*
856 Channelgroup scale values. (scales the current volume or pitch of all channels and channel groups, DOESN'T overwrite)
857 *)
859 function FMOD_ChannelGroup_SetVolume ; external FMOD_DLL;
860 function FMOD_ChannelGroup_GetVolume ; external FMOD_DLL;
861 function FMOD_ChannelGroup_SetPitch ; external FMOD_DLL;
862 function FMOD_ChannelGroup_GetPitch ; external FMOD_DLL;
864 (*
865 Channelgroup override values. (recursively overwrites whatever settings the channels had)
866 *)
868 function FMOD_ChannelGroup_Stop ; external FMOD_DLL;
869 // function FMOD_ChannelGroup_OverridePaused ; external FMOD_DLL;
870 function FMOD_ChannelGroup_OverrideVolume ; external FMOD_DLL;
871 function FMOD_ChannelGroup_OverrideFrequency ; external FMOD_DLL;
872 function FMOD_ChannelGroup_OverridePan ; external FMOD_DLL;
873 // function FMOD_ChannelGroup_OverrideMute ; external FMOD_DLL;
874 function FMOD_ChannelGroup_OverrideReverbProperties; external FMOD_DLL;
875 function FMOD_ChannelGroup_Override3DAttributes ; external FMOD_DLL;
876 function FMOD_ChannelGroup_OverrideSpeakerMix ; external FMOD_DLL;
878 (*
879 Nested channel groups.
880 *)
882 function FMOD_ChannelGroup_AddGroup ; external FMOD_DLL;
883 function FMOD_ChannelGroup_GetNumGroups ; external FMOD_DLL;
884 function FMOD_ChannelGroup_GetGroup ; external FMOD_DLL;
886 (*
887 DSP functionality only for channel groups playing sounds created with FMOD_SOFTWARE.
888 *)
890 function FMOD_ChannelGroup_GetDSPHead ; external FMOD_DLL;
891 function FMOD_ChannelGroup_AddDSP ; external FMOD_DLL;
893 (*
894 Information only functions.
895 *)
897 function FMOD_ChannelGroup_GetName ; external FMOD_DLL;
898 function FMOD_ChannelGroup_GetNumChannels ; external FMOD_DLL;
899 function FMOD_ChannelGroup_GetChannel ; external FMOD_DLL;
900 function FMOD_ChannelGroup_GetSpectrum ; external FMOD_DLL;
901 function FMOD_ChannelGroup_GetWaveData ; external FMOD_DLL;
903 (*
904 Userdata set/get.
905 *)
907 function FMOD_ChannelGroup_SetUserData ; external FMOD_DLL;
908 function FMOD_ChannelGroup_GetUserData ; external FMOD_DLL;
910 (*
911 'DSP' API
912 *)
914 function FMOD_DSP_Release ; external FMOD_DLL;
915 function FMOD_DSP_GetSystemObject ; external FMOD_DLL;
917 (*
918 Connection / disconnection / input and output enumeration.
919 *)
921 function FMOD_DSP_AddInput ; external FMOD_DLL;
922 function FMOD_DSP_DisconnectFrom ; external FMOD_DLL;
923 function FMOD_DSP_Remove ; external FMOD_DLL;
924 function FMOD_DSP_GetNumInputs ; external FMOD_DLL;
925 function FMOD_DSP_GetNumOutputs ; external FMOD_DLL;
926 function FMOD_DSP_GetInput ; external FMOD_DLL;
927 function FMOD_DSP_GetOutput ; external FMOD_DLL;
928 // function FMOD_DSP_SetInputMix ; external FMOD_DLL;
929 // function FMOD_DSP_GetInputMix ; external FMOD_DLL;
930 // function FMOD_DSP_SetInputLevels ; external FMOD_DLL;
931 // function FMOD_DSP_GetInputLevels ; external FMOD_DLL;
932 // function FMOD_DSP_SetOutputMix ; external FMOD_DLL;
933 // function FMOD_DSP_GetOutputMix ; external FMOD_DLL;
934 // function FMOD_DSP_SetOutputLevels ; external FMOD_DLL;
935 // function FMOD_DSP_GetOutputLevels ; external FMOD_DLL;
937 (*
938 DSP unit control
939 *)
941 function FMOD_DSP_SetActive ; external FMOD_DLL;
942 function FMOD_DSP_GetActive ; external FMOD_DLL;
943 function FMOD_DSP_SetBypass ; external FMOD_DLL;
944 function FMOD_DSP_GetBypass ; external FMOD_DLL;
945 function FMOD_DSP_Reset ; external FMOD_DLL;
947 (*
948 DSP parameter control
949 *)
951 function FMOD_DSP_SetParameter ; external FMOD_DLL;
952 function FMOD_DSP_GetParameter ; external FMOD_DLL;
953 function FMOD_DSP_GetNumParameters ; external FMOD_DLL;
954 function FMOD_DSP_GetParameterInfo ; external FMOD_DLL;
955 function FMOD_DSP_ShowConfigDialog ; external FMOD_DLL;
957 (*
958 DSP attributes.
959 *)
961 function FMOD_DSP_GetInfo ; external FMOD_DLL;
962 function FMOD_DSP_SetDefaults ; external FMOD_DLL;
963 function FMOD_DSP_GetDefaults ; external FMOD_DLL;
965 (*
966 Userdata set/get.
967 *)
969 function FMOD_DSP_SetUserData ; external FMOD_DLL;
970 function FMOD_DSP_GetUserData ; external FMOD_DLL;
972 (*
973 'Geometry' API
974 *)
976 function FMOD_Geometry_Release ; external FMOD_DLL;
978 function FMOD_Geometry_AddPolygon ; external FMOD_DLL;
979 function FMOD_Geometry_GetNumPolygons ; external FMOD_DLL;
980 function FMOD_Geometry_GetMaxPolygons ; external FMOD_DLL;
981 function FMOD_Geometry_GetPolygonNumVertices; external FMOD_DLL;
982 function FMOD_Geometry_SetPolygonVertex ; external FMOD_DLL;
983 function FMOD_Geometry_GetPolygonVertex ; external FMOD_DLL;
984 function FMOD_Geometry_SetPolygonAttributes ; external FMOD_DLL;
985 function FMOD_Geometry_GetPolygonAttributes ; external FMOD_DLL;
987 function FMOD_Geometry_SetActive ; external FMOD_DLL;
988 function FMOD_Geometry_GetActive ; external FMOD_DLL;
989 function FMOD_Geometry_SetRotation ; external FMOD_DLL;
990 function FMOD_Geometry_GetRotation ; external FMOD_DLL;
991 function FMOD_Geometry_SetPosition ; external FMOD_DLL;
992 function FMOD_Geometry_GetPosition ; external FMOD_DLL;
993 function FMOD_Geometry_SetScale ; external FMOD_DLL;
994 function FMOD_Geometry_GetScale ; external FMOD_DLL;
995 function FMOD_Geometry_Save ; external FMOD_DLL;
997 (*
998 Userdata set/get.
999 *)
1001 function FMOD_Geometry_SetUserData ; external FMOD_DLL;
1002 function FMOD_Geometry_GetUserData ; external FMOD_DLL;
1004 end.