1 | {================================================================================================ }
|
---|
2 | { FMOD Types header file. Copyright (c), Firelight Technologies Pty, Ltd. 1999-2004. }
|
---|
3 | { =============================================================================================== }
|
---|
4 | {
|
---|
5 | NOTE: For the demos to run you must have either fmod.dll (in Windows)
|
---|
6 | or libfmod-3.75.so (in Linux) installed.
|
---|
7 |
|
---|
8 | In Windows, copy the fmod.dll file found in the api directory to either of
|
---|
9 | the following locations (in order of preference)
|
---|
10 | - your application directory
|
---|
11 | - Windows\System (95/98) or WinNT\System32 (NT/2000/XP)
|
---|
12 |
|
---|
13 | In Linux, make sure you are signed in as root and copy the libfmod-3.75.so
|
---|
14 | file from the api directory to your /usr/lib/ directory.
|
---|
15 | Then via a command line, navigate to the /usr/lib/ directory and create
|
---|
16 | a symbolic link between libfmod-3.75.so and libfmod.so. This is done with
|
---|
17 | the following command (assuming you are in /usr/lib/)...
|
---|
18 | ln -s libfmod-3.75.so libfmod.so.
|
---|
19 | }
|
---|
20 | { =============================================================================================== }
|
---|
21 |
|
---|
22 | unit fmodtypes;
|
---|
23 |
|
---|
24 | {$IFDEF FPC}
|
---|
25 | {$MODE DELPHI}
|
---|
26 | {$IFDEF WIN32}
|
---|
27 | {$DEFINE MSWINDOWS}
|
---|
28 | {$ENDIF}
|
---|
29 | {$PACKRECORDS C}
|
---|
30 | {$ENDIF}
|
---|
31 |
|
---|
32 | {$IFDEF VER110}
|
---|
33 | {$DEFINE DELPHI_5_OR_LOWER}
|
---|
34 | {$ELSE}
|
---|
35 | {$IFDEF VER120}
|
---|
36 | {$DEFINE DELPHI_5_OR_LOWER}
|
---|
37 | {$ELSE}
|
---|
38 | {$IFDEF VER130}
|
---|
39 | {$DEFINE DELPHI_5_OR_LOWER}
|
---|
40 | {$ENDIF}
|
---|
41 | {$ENDIF}
|
---|
42 | {$ENDIF}
|
---|
43 |
|
---|
44 | interface
|
---|
45 |
|
---|
46 | {$IFDEF MSWINDOWS}
|
---|
47 | uses
|
---|
48 | Windows;
|
---|
49 | {$ENDIF}
|
---|
50 |
|
---|
51 | { =============================================================================================== }
|
---|
52 | { DEFINITIONS }
|
---|
53 | { =============================================================================================== }
|
---|
54 |
|
---|
55 | {
|
---|
56 | Force four-byte enums
|
---|
57 | }
|
---|
58 | {$Z4}
|
---|
59 |
|
---|
60 | {
|
---|
61 | Disable warning for unsafe types in Delphi 7
|
---|
62 | }
|
---|
63 | {$IFDEF VER150}
|
---|
64 | {$WARN UNSAFE_TYPE OFF}
|
---|
65 | {$ENDIF}
|
---|
66 |
|
---|
67 | {$IFDEF DELPHI_5_OR_LOWER}
|
---|
68 | type
|
---|
69 | PSingle = ^Single;
|
---|
70 | THandle = Cardinal;
|
---|
71 | {$ENDIF}
|
---|
72 |
|
---|
73 | const
|
---|
74 | FMOD_VERSION: Single = 3.75;
|
---|
75 |
|
---|
76 | {
|
---|
77 | FMOD defined types
|
---|
78 | }
|
---|
79 |
|
---|
80 | type
|
---|
81 | PFSoundSample = Pointer;
|
---|
82 | PFSoundStream = Pointer;
|
---|
83 | PFSoundDSPUnit = Pointer;
|
---|
84 | PFMusicModule = Pointer;
|
---|
85 | PFSyncPoint = Pointer;
|
---|
86 |
|
---|
87 | PFSoundVector = ^TFSoundVector;
|
---|
88 | TFSoundVector = record
|
---|
89 | x: Single;
|
---|
90 | y: Single;
|
---|
91 | z: Single;
|
---|
92 | end;
|
---|
93 |
|
---|
94 | {
|
---|
95 | Callback types
|
---|
96 | }
|
---|
97 |
|
---|
98 | TFSoundStreamCallback = function (Stream: PFSoundStream; Buff: Pointer; Length, Param: Integer): ByteBool; stdcall;
|
---|
99 | TFSoundDSPCallback = function (OriginalBuffer: Pointer; NewBuffer: Pointer; Length, Param: Integer): Pointer; stdcall;
|
---|
100 | TFMusicCallback = procedure (Module: PFMusicModule; Param: Byte); stdcall;
|
---|
101 |
|
---|
102 | TFSoundOpenCallback = function (Name: PChar): Cardinal; stdcall;
|
---|
103 | TFSoundCloseCallback = procedure (Handle: Cardinal); stdcall;
|
---|
104 | TFSoundReadCallback = function (Buffer: Pointer; Size: Cardinal; Handle: Cardinal): Cardinal; stdcall;
|
---|
105 | TFSoundSeekCallback = procedure (Handle: Cardinal; Pos: Cardinal; Mode: Byte); stdcall;
|
---|
106 | TFSoundTellCallback = function (Handle: Cardinal): Cardinal; stdcall;
|
---|
107 |
|
---|
108 | TFSoundAllocCallback = function(Size: Cardinal): Pointer; stdcall;
|
---|
109 | TFSoundReallocCallback = function(Ptr: Pointer; Size: Cardinal): Pointer; stdcall;
|
---|
110 | TFSoundFreeCallback = procedure(Ptr: Pointer); stdcall;
|
---|
111 |
|
---|
112 | TFMetaDataCallback = function(Name: PChar; Value: PChar; userdata: Integer): ByteBool; stdcall;
|
---|
113 |
|
---|
114 | {
|
---|
115 | [ENUM]
|
---|
116 | [
|
---|
117 | [DESCRIPTION]
|
---|
118 | On failure of commands in FMOD, use FSOUND_GetError to attain what happened.
|
---|
119 |
|
---|
120 | [SEE_ALSO]
|
---|
121 | FSOUND_GetError
|
---|
122 | ]
|
---|
123 | }
|
---|
124 |
|
---|
125 | type
|
---|
126 | TFModErrors = (
|
---|
127 | FMOD_ERR_NONE, // No errors
|
---|
128 | FMOD_ERR_BUSY, // Cannot call this command after FSOUND_Init. Call FSOUND_Close first.
|
---|
129 | FMOD_ERR_UNINITIALIZED, // This command failed because FSOUND_Init was not called
|
---|
130 | FMOD_ERR_INIT, // Error initializing output device.
|
---|
131 | FMOD_ERR_ALLOCATED, // Error initializing output device, but more specifically, the output device is already in use and cannot be reused.
|
---|
132 | FMOD_ERR_PLAY, // Playing the sound failed.
|
---|
133 | FMOD_ERR_OUTPUT_FORMAT, // Soundcard does not support the features needed for this soundsystem (16bit stereo output)
|
---|
134 | FMOD_ERR_COOPERATIVELEVEL, // Error setting cooperative level for hardware.
|
---|
135 | FMOD_ERR_CREATEBUFFER, // Error creating hardware sound buffer.
|
---|
136 | FMOD_ERR_FILE_NOTFOUND, // File not found
|
---|
137 | FMOD_ERR_FILE_FORMAT, // Unknown file format
|
---|
138 | FMOD_ERR_FILE_BAD, // Error loading file
|
---|
139 | FMOD_ERR_MEMORY, // Not enough memory or resources
|
---|
140 | FMOD_ERR_VERSION, // The version number of this file format is not supported
|
---|
141 | FMOD_ERR_INVALID_PARAM, // An invalid parameter was passed to this function
|
---|
142 | FMOD_ERR_NO_EAX, // Tried to use an EAX command on a non EAX enabled channel or output.
|
---|
143 | FMOD_ERR_CHANNEL_ALLOC, // Failed to allocate a new channel
|
---|
144 | FMOD_ERR_RECORD, // Recording is not supported on this machine
|
---|
145 | FMOD_ERR_MEDIAPLAYER, // Windows Media Player not installed so cannot play wma or use internet streaming. */
|
---|
146 | FMOD_ERR_CDDEVICE // An error occured trying to open the specified CD device
|
---|
147 | );
|
---|
148 |
|
---|
149 | {
|
---|
150 | [ENUM]
|
---|
151 | [
|
---|
152 | [DESCRIPTION]
|
---|
153 | These output types are used with FSOUND_SetOutput, to choose which output driver to use.
|
---|
154 |
|
---|
155 | FSOUND_OUTPUT_DSOUND will not support hardware 3d acceleration if the sound card driver
|
---|
156 | does not support DirectX 6 Voice Manager Extensions.
|
---|
157 |
|
---|
158 | FSOUND_OUTPUT_WINMM is recommended for NT and CE.
|
---|
159 |
|
---|
160 | [SEE_ALSO]
|
---|
161 | FSOUND_SetOutput
|
---|
162 | FSOUND_GetOutput
|
---|
163 | ]
|
---|
164 | }
|
---|
165 |
|
---|
166 | type
|
---|
167 | TFSoundOutputTypes = (
|
---|
168 | FSOUND_OUTPUT_NOSOUND, // NoSound driver, all calls to this succeed but do nothing.
|
---|
169 | FSOUND_OUTPUT_WINMM, // Windows Multimedia driver.
|
---|
170 | FSOUND_OUTPUT_DSOUND, // DirectSound driver. You need this to get EAX2 or EAX3 support, or FX api support.
|
---|
171 | FSOUND_OUTPUT_A3D, // A3D driver.
|
---|
172 |
|
---|
173 | FSOUND_OUTPUT_OSS, // Linux/Unix OSS (Open Sound System) driver, i.e. the kernel sound drivers.
|
---|
174 | FSOUND_OUTPUT_ESD, // Linux/Unix ESD (Enlightment Sound Daemon) driver.
|
---|
175 | FSOUND_OUTPUT_ALSA, // Linux Alsa driver.
|
---|
176 |
|
---|
177 | FSOUND_OUTPUT_ASIO, // Low latency ASIO driver.
|
---|
178 | FSOUND_OUTPUT_XBOX, // Xbox driver.
|
---|
179 | FSOUND_OUTPUT_PS2, // PlayStation 2 driver.
|
---|
180 | FSOUND_OUTPUT_MAC, // Mac SoundMager driver.
|
---|
181 | FSOUND_OUTPUT_GC, // Gamecube driver.
|
---|
182 | FSOUND_OUTPUT_PSP, // PlayStation Portable driver.
|
---|
183 |
|
---|
184 | FSOUND_OUTPUT_NOSOUND_NONREALTIME // This is the same as nosound, but the sound generation is driven by FSOUND_Update
|
---|
185 | );
|
---|
186 |
|
---|
187 |
|
---|
188 | {
|
---|
189 | [ENUM]
|
---|
190 | [
|
---|
191 | [DESCRIPTION]
|
---|
192 | These mixer types are used with FSOUND_SetMixer, to choose which mixer to use, or to act
|
---|
193 | upon for other reasons using FSOUND_GetMixer.
|
---|
194 | It is not necessary to set the mixer. FMOD will autodetect the best mixer for you.
|
---|
195 |
|
---|
196 | [SEE_ALSO]
|
---|
197 | FSOUND_SetMixer
|
---|
198 | FSOUND_GetMixer
|
---|
199 | ]
|
---|
200 | }
|
---|
201 | type
|
---|
202 | TFSoundMixerTypes = (
|
---|
203 | FSOUND_MIXER_AUTODETECT, // CE/PS2/GC Only - Non interpolating/low quality mixer.
|
---|
204 | FSOUND_MIXER_BLENDMODE, // Removed / obsolete
|
---|
205 | FSOUND_MIXER_MMXP5, // Removed / obsolete
|
---|
206 | FSOUND_MIXER_MMXP6, // Removed / obsolete
|
---|
207 |
|
---|
208 | FSOUND_MIXER_QUALITY_AUTODETECT,// All platforms - Autodetect the fastest quality mixer based on your cpu.
|
---|
209 | FSOUND_MIXER_QUALITY_FPU, // Win32/Linux only - Interpolating/volume ramping FPU mixer.
|
---|
210 | FSOUND_MIXER_QUALITY_MMXP5, // Win32/Linux only - Interpolating/volume ramping P5 MMX mixer.
|
---|
211 | FSOUND_MIXER_QUALITY_MMXP6, // Win32/Linux only - Interpolating/volume ramping ppro+ MMX mixer.
|
---|
212 |
|
---|
213 | FSOUND_MIXER_MONO, // CE/PS2/GC only - MONO non interpolating/low quality mixer. For speed
|
---|
214 | FSOUND_MIXER_QUALITY_MONO, // CE/PS2/GC only - MONO Interpolating mixer. For speed
|
---|
215 |
|
---|
216 | FSOUND_MIXER_MAX
|
---|
217 | );
|
---|
218 |
|
---|
219 |
|
---|
220 | {
|
---|
221 | [ENUM]
|
---|
222 | [
|
---|
223 | [DESCRIPTION]
|
---|
224 | These definitions describe the type of song being played.
|
---|
225 |
|
---|
226 | [SEE_ALSO]
|
---|
227 | FMUSIC_GetType
|
---|
228 | ]
|
---|
229 | }
|
---|
230 | type
|
---|
231 | TFMusicTypes = (
|
---|
232 | FMUSIC_TYPE_NONE,
|
---|
233 | FMUSIC_TYPE_MOD, // Protracker / FastTracker
|
---|
234 | FMUSIC_TYPE_S3M, // ScreamTracker 3
|
---|
235 | FMUSIC_TYPE_XM, // FastTracker 2
|
---|
236 | FMUSIC_TYPE_IT, // Impulse Tracker
|
---|
237 | FMUSIC_TYPE_MIDI, // MIDI file
|
---|
238 | FMUSIC_TYPE_FSB // FMOD Sample Bank file
|
---|
239 | );
|
---|
240 |
|
---|
241 |
|
---|
242 | {
|
---|
243 | [DEFINE_START]
|
---|
244 | [
|
---|
245 | [NAME]
|
---|
246 | FSOUND_DSP_PRIORITIES
|
---|
247 |
|
---|
248 | [DESCRIPTION]
|
---|
249 | These default priorities are used by FMOD internal system DSP units. They describe the
|
---|
250 | position of the DSP chain, and the order of how audio processing is executed.
|
---|
251 | You can actually through the use of FSOUND_DSP_GetxxxUnit (where xxx is the name of the DSP
|
---|
252 | unit), disable or even change the priority of a DSP unit.
|
---|
253 |
|
---|
254 | [SEE_ALSO]
|
---|
255 | FSOUND_DSP_Create
|
---|
256 | FSOUND_DSP_SetPriority
|
---|
257 | FSOUND_DSP_GetSpectrum
|
---|
258 | ]
|
---|
259 | }
|
---|
260 | const
|
---|
261 | FSOUND_DSP_DEFAULTPRIORITY_CLEARUNIT = 0; // DSP CLEAR unit - done first
|
---|
262 | FSOUND_DSP_DEFAULTPRIORITY_SFXUNIT = 100; // DSP SFX unit - done second
|
---|
263 | FSOUND_DSP_DEFAULTPRIORITY_MUSICUNIT = 200; // DSP MUSIC unit - done third
|
---|
264 | FSOUND_DSP_DEFAULTPRIORITY_USER = 300; // User priority, use this as reference for your own DSP units
|
---|
265 | FSOUND_DSP_DEFAULTPRIORITY_FFTUNIT = 900; // This reads data for FSOUND_DSP_GetSpectrum, so it comes after user units
|
---|
266 | FSOUND_DSP_DEFAULTPRIORITY_CLIPANDCOPYUNIT = 1000; // DSP CLIP AND COPY unit - last
|
---|
267 | // [DEFINE_END]
|
---|
268 |
|
---|
269 |
|
---|
270 | {
|
---|
271 | [DEFINE_START]
|
---|
272 | [
|
---|
273 | [NAME]
|
---|
274 | FSOUND_CAPS
|
---|
275 |
|
---|
276 | [DESCRIPTION]
|
---|
277 | Driver description bitfields. Use FSOUND_Driver_GetCaps to determine if a driver enumerated
|
---|
278 | has the settings you are after. The enumerated driver depends on the output mode, see
|
---|
279 | FSOUND_OUTPUTTYPES
|
---|
280 |
|
---|
281 | [SEE_ALSO]
|
---|
282 | FSOUND_GetDriverCaps
|
---|
283 | FSOUND_OUTPUTTYPES
|
---|
284 | ]
|
---|
285 | }
|
---|
286 | const
|
---|
287 | FSOUND_CAPS_HARDWARE = $1; // This driver supports hardware accelerated 3d sound.
|
---|
288 | FSOUND_CAPS_EAX2 = $2; // This driver supports EAX 2 reverb
|
---|
289 | FSOUND_CAPS_EAX3 = $10; // This driver supports EAX 3 reverb
|
---|
290 | // [DEFINE_END]
|
---|
291 |
|
---|
292 |
|
---|
293 | {
|
---|
294 | [DEFINE_START]
|
---|
295 | [
|
---|
296 | [NAME]
|
---|
297 | FSOUND_MODES
|
---|
298 |
|
---|
299 | [DESCRIPTION]
|
---|
300 | Sample description bitfields, OR them together for loading and describing samples.
|
---|
301 | NOTE. If the file format being loaded already has a defined format, such as WAV or MP3, then
|
---|
302 | trying to override the pre-defined format with a new set of format flags will not work. For
|
---|
303 | example, an 8 bit WAV file will not load as 16bit if you specify FSOUND_16BITS. It will just
|
---|
304 | ignore the flag and go ahead loading it as 8bits. For these type of formats the only flags
|
---|
305 | you can specify that will really alter the behaviour of how it is loaded, are the following.
|
---|
306 |
|
---|
307 | Looping behaviour - FSOUND_LOOP_OFF, FSOUND_LOOP_NORMAL, FSOUND_LOOP_BIDI
|
---|
308 | Load destination - FSOUND_HW3D, FSOUND_HW2D, FSOUND_2D
|
---|
309 | Loading behaviour - FSOUND_NONBLOCKING, FSOUND_LOADMEMORY, FSOUND_LOADRAW, FSOUND_MPEGACCURATE, FSOUND_MPEGHALFRATE, FSOUND_FORCEMONO
|
---|
310 | Playback behaviour - FSOUND_STREAMABLE, FSOUND_ENABLEFX
|
---|
311 | PlayStation 2 only - FSOUND_USECORE0, FSOUND_USECORE1, FSOUND_LOADMEMORYIOP
|
---|
312 |
|
---|
313 | See flag descriptions for what these do.
|
---|
314 | ]
|
---|
315 | }
|
---|
316 | const
|
---|
317 | FSOUND_LOOP_OFF = $00000001; // For non looping samples.
|
---|
318 | FSOUND_LOOP_NORMAL = $00000002; // For forward looping samples.
|
---|
319 | FSOUND_LOOP_BIDI = $00000004; // For bidirectional looping samples. (no effect if in hardware).
|
---|
320 | FSOUND_8BITS = $00000008; // For 8 bit samples.
|
---|
321 | FSOUND_16BITS = $00000010; // For 16 bit samples.
|
---|
322 | FSOUND_MONO = $00000020; // For mono samples.
|
---|
323 | FSOUND_STEREO = $00000040; // For stereo samples.
|
---|
324 | FSOUND_UNSIGNED = $00000080; // For user created source data containing unsigned samples.
|
---|
325 | FSOUND_SIGNED = $00000100; // For user created source data containing signed data.
|
---|
326 | FSOUND_DELTA = $00000200; // For user created source data stored as delta values.
|
---|
327 | FSOUND_IT214 = $00000400; // For user created source data stored using IT214 compression.
|
---|
328 | FSOUND_IT215 = $00000800; // For user created source data stored using IT215 compression.
|
---|
329 | FSOUND_HW3D = $00001000; // Attempts to make samples use 3d hardware acceleration. (if the card supports it)
|
---|
330 | FSOUND_2D = $00002000; // Ignores any 3d processing. Overrides FSOUND_HW3D. Located in software.
|
---|
331 | FSOUND_STREAMABLE = $00004000; // For a streamimg sound where you feed the data to it. */
|
---|
332 | FSOUND_LOADMEMORY = $00008000; // "name" will be interpreted as a pointer to data for streaming and samples.
|
---|
333 | FSOUND_LOADRAW = $00010000; // Will ignore file format and treat as raw pcm.
|
---|
334 | FSOUND_MPEGACCURATE = $00020000; // For FSOUND_Stream_OpenFile - for accurate FSOUND_Stream_GetLengthMs/FSOUND_Stream_SetTime. WARNING, see FSOUND_Stream_OpenFile for inital opening time performance issues.
|
---|
335 | FSOUND_FORCEMONO = $00040000; // For forcing stereo streams and samples to be mono - needed if using FSOUND_HW3D and stereo data - incurs a small speed hit for streams
|
---|
336 | FSOUND_HW2D = $00080000; // 2D hardware sounds. allows hardware specific effects
|
---|
337 | FSOUND_ENABLEFX = $00100000; // Allows DX8 FX to be played back on a sound. Requires DirectX 8 - Note these sounds cannot be played more than once, be 8 bit, be less than a certain size, or have a changing frequency
|
---|
338 | FSOUND_MPEGHALFRATE = $00200000; // For FMODCE only - decodes mpeg streams using a lower quality decode, but faster execution
|
---|
339 | FSOUND_XADPCM = $00400000; // For XBOX only - Contents are compressed as XADPCM */
|
---|
340 | FSOUND_VAG = $00800000; // For PS2 only - Contents are compressed as Sony VAG format */
|
---|
341 | FSOUND_NONBLOCKING = $01000000; // For FSOUND_Stream_OpenFile - Causes stream to open in the background and not block the foreground app - stream plays only when ready.
|
---|
342 | FSOUND_GCADPCM = $02000000; // For Gamecube only - Contents are compressed as Gamecube DSP-ADPCM format
|
---|
343 | FSOUND_MULTICHANNEL = $04000000; // For PS2 only - Contents are interleaved into a multi-channel (more than stereo) format
|
---|
344 | FSOUND_USECORE0 = $08000000; // For PS2 only - Sample/Stream is forced to use hardware voices 00-23
|
---|
345 | FSOUND_USECORE1 = $10000000; // For PS2 only - Sample/Stream is forced to use hardware voices 24-47
|
---|
346 | FSOUND_LOADMEMORYIOP = $20000000; // For PS2 only - "name" will be interpreted as a pointer to data for streaming and samples. The address provided will be an IOP address
|
---|
347 |
|
---|
348 | const
|
---|
349 | FSOUND_NORMAL = (FSOUND_16BITS or FSOUND_SIGNED or FSOUND_MONO);
|
---|
350 | // [DEFINE_END]
|
---|
351 |
|
---|
352 |
|
---|
353 | {
|
---|
354 | [DEFINE_START]
|
---|
355 | [
|
---|
356 | [NAME]
|
---|
357 | FSOUND_CDPLAYMODES
|
---|
358 |
|
---|
359 | [DESCRIPTION]
|
---|
360 | Playback method for a CD Audio track, using FSOUND_CD_SetPlayMode
|
---|
361 |
|
---|
362 | [SEE_ALSO]
|
---|
363 | FSOUND_CD_SetPlayMode
|
---|
364 | FSOUND_CD_Play
|
---|
365 | ]
|
---|
366 | }
|
---|
367 | const
|
---|
368 | FSOUND_CD_PLAYCONTINUOUS = 0; // Starts from the current track and plays to end of CD.
|
---|
369 | FSOUND_CD_PLAYONCE = 1; // Plays the specified track then stops.
|
---|
370 | FSOUND_CD_PLAYLOOPED = 2; // Plays the specified track looped, forever until stopped manually.
|
---|
371 | FSOUND_CD_PLAYRANDOM = 3; // Plays tracks in random order
|
---|
372 | // [DEFINE_END]
|
---|
373 |
|
---|
374 |
|
---|
375 | {
|
---|
376 | [DEFINE_START]
|
---|
377 | [
|
---|
378 | [NAME]
|
---|
379 | FSOUND_CHANNELSAMPLEMODE
|
---|
380 |
|
---|
381 | [DESCRIPTION]
|
---|
382 | Miscellaneous values for FMOD functions.
|
---|
383 |
|
---|
384 | [SEE_ALSO]
|
---|
385 | FSOUND_PlaySound
|
---|
386 | FSOUND_PlaySoundEx
|
---|
387 | FSOUND_Sample_Alloc
|
---|
388 | FSOUND_Sample_Load
|
---|
389 | FSOUND_SetPan
|
---|
390 | ]
|
---|
391 | }
|
---|
392 | const
|
---|
393 | FSOUND_FREE = -1; // value to play on any free channel, or to allocate a sample in a free sample slot.
|
---|
394 | FSOUND_UNMANAGED = -2; // value to allocate a sample that is NOT managed by FSOUND or placed in a sample slot.
|
---|
395 | FSOUND_ALL = -3; // for a channel index , this flag will affect ALL channels available! Not supported by every function.
|
---|
396 | FSOUND_STEREOPAN = -1; // value for FSOUND_SetPan so that stereo sounds are not played at half volume. See FSOUND_SetPan for more on this.
|
---|
397 | FSOUND_SYSTEMCHANNEL = -1000; // special 'channel' ID for all channel based functions that want to alter the global FSOUND software mixing output
|
---|
398 | FSOUND_SYSTEMSAMPLE = -1000; // special 'sample' ID for all sample based functions that want to alter the global FSOUND software mixing output sample
|
---|
399 | // [DEFINE_END]
|
---|
400 |
|
---|
401 |
|
---|
402 | {
|
---|
403 | [STRUCT_START]
|
---|
404 | [
|
---|
405 | [NAME]
|
---|
406 | FSOUND_REVERB_PROPERTIES
|
---|
407 |
|
---|
408 | [DESCRIPTION]
|
---|
409 | Structure defining a reverb environment.
|
---|
410 |
|
---|
411 | [REMARKS]
|
---|
412 | For more indepth descriptions of the reverb properties under win32, please see the EAX2/EAX3
|
---|
413 | documentation at http://developer.creative.com/ under the 'downloads' section.
|
---|
414 | If they do not have the EAX3 documentation, then most information can be attained from
|
---|
415 | the EAX2 documentation, as EAX3 only adds some more parameters and functionality on top of
|
---|
416 | EAX2.
|
---|
417 | Note the default reverb properties are the same as the FSOUND_PRESET_GENERIC preset.
|
---|
418 | Note that integer values that typically range from -10,000 to 1000 are represented in
|
---|
419 | decibels, and are of a logarithmic scale, not linear, wheras float values are typically linear.
|
---|
420 | PORTABILITY: Each member has the platform it supports in braces ie (win32/xbox).
|
---|
421 | Some reverb parameters are only supported in win32 and some only on xbox. If all parameters are set then
|
---|
422 | the reverb should product a similar effect on either platform.
|
---|
423 | Only WIN32 supports the reverb api.
|
---|
424 |
|
---|
425 | The numerical values listed below are the maximum, minimum and default values for each variable respectively.
|
---|
426 |
|
---|
427 | [SEE_ALSO]
|
---|
428 | FSOUND_Reverb_SetProperties
|
---|
429 | FSOUND_Reverb_GetProperties
|
---|
430 | FSOUND_REVERB_PRESETS
|
---|
431 | FSOUND_REVERB_FLAGS
|
---|
432 | ]
|
---|
433 | }
|
---|
434 | type
|
---|
435 | TFSoundReverbProperties = record // MIN MAX DEFAULT DESCRIPTION
|
---|
436 | Environment: Cardinal; // 0 25 0 sets all listener properties (win32 only)
|
---|
437 | EnvSize: Single; // 1.0 100.0 7.5 environment size in meters (win32 only)
|
---|
438 | EnvDiffusion: Single; // 0.0 1.0 1.0 environment diffusion (win32/xbox)
|
---|
439 | Room: Integer; // -10000 0 -1000 room effect level (at mid frequencies) (win32/xbox)
|
---|
440 | RoomHF: Integer; // -10000 0 -100 relative room effect level at high frequencies (win32/xbox)
|
---|
441 | RoomLF: Integer; // -10000 0 0 relative room effect level at low frequencies (win32 only)
|
---|
442 | DecayTime: Single; // 0.1 20.0 1.49 reverberation decay time at mid frequencies (win32/xbox)
|
---|
443 | DecayHFRatio: Single; // 0.1 2.0 0.83 high-frequency to mid-frequency decay time ratio (win32/xbox)
|
---|
444 | DecayLFRatio: Single; // 0.1 2.0 1.0 low-frequency to mid-frequency decay time ratio (win32 only)
|
---|
445 | Reflections: Integer; // -10000 1000 -2602 early reflections level relative to room effect (win32/xbox)
|
---|
446 | ReflectionsDelay: Single; // 0.0 0.3 0.007 initial reflection delay time (win32/xbox)
|
---|
447 | ReflectionsPan: array [0..2] of Single; // 0,0,0 early reflections panning vector (win32 only)
|
---|
448 | Reverb: Integer; // -10000 2000 200 late reverberation level relative to room effect (win32/xbox)
|
---|
449 | ReverbDelay: Single; // 0.0 0.1 0.011 late reverberation delay time relative to initial reflection (win32/xbox)
|
---|
450 | ReverbPan: array [0..2] of Single; // 0,0,0 late reverberation panning vector (win32 only)
|
---|
451 | EchoTime: Single; // .075 0.25 0.25 echo time (win32 only)
|
---|
452 | EchoDepth: Single; // 0.0 1.0 0.0 echo depth (win32 only)
|
---|
453 | ModulationTime: Single; // 0.04 4.0 0.25 modulation time (win32 only)
|
---|
454 | ModulationDepth: Single; // 0.0 1.0 0.0 modulation depth (win32 only)
|
---|
455 | AirAbsorptionHF: Single; // -100 0.0 -5.0 change in level per meter at high frequencies (win32 only)
|
---|
456 | HFReference: Single; // 1000.0 20000 5000.0 reference high frequency (hz) (win32/xbox)
|
---|
457 | LFReference: Single; // 20.0 1000.0 250.0 reference low frequency (hz) (win32 only)
|
---|
458 | RoomRolloffFactor: Single; // 0.0 10.0 0.0 like FSOUND_3D_SetRolloffFactor but for room effect (win32/xbox)
|
---|
459 | Diffusion: Single; // 0.0 100.0 100.0 Value that controls the echo density in the late reverberation decay. (xbox only)
|
---|
460 | Density: Single; // 0.0 100.0 100.0 Value that controls the modal density in the late reverberation decay (xbox only)
|
---|
461 | Flags: Cardinal; // FSOUND_REVERB_PROPERTYFLAGS - modifies the behavior of above properties (win32 only)
|
---|
462 | end;
|
---|
463 | // [STRUCT_END]
|
---|
464 |
|
---|
465 |
|
---|
466 | {
|
---|
467 | [DEFINE_START]
|
---|
468 | [
|
---|
469 | [NAME]
|
---|
470 | FSOUND_REVERB_FLAGS
|
---|
471 |
|
---|
472 | [DESCRIPTION]
|
---|
473 | Values for the Flags member of the FSOUND_REVERB_PROPERTIES structure.
|
---|
474 |
|
---|
475 | [SEE_ALSO]
|
---|
476 | FSOUND_REVERB_PROPERTIES
|
---|
477 | ]
|
---|
478 | }
|
---|
479 | const
|
---|
480 | FSOUND_REVERBFLAGS_DECAYTIMESCALE = $00000001; // EnvironmentSize affects reverberation decay time
|
---|
481 | FSOUND_REVERBFLAGS_REFLECTIONSSCALE = $00000002; // EnvironmentSize affects reflection level
|
---|
482 | FSOUND_REVERBFLAGS_REFLECTIONSDELAYSCALE = $00000004; // EnvironmentSize affects initial reflection delay time
|
---|
483 | FSOUND_REVERBFLAGS_REVERBSCALE = $00000008; // EnvironmentSize affects reflections level
|
---|
484 | FSOUND_REVERBFLAGS_REVERBDELAYSCALE = $00000010; // EnvironmentSize affects late reverberation delay time
|
---|
485 | FSOUND_REVERBFLAGS_DECAYHFLIMIT = $00000020; // AirAbsorptionHF affects DecayHFRatio
|
---|
486 | FSOUND_REVERBFLAGS_ECHOTIMESCALE = $00000040; // EnvironmentSize affects echo time
|
---|
487 | FSOUND_REVERBFLAGS_MODULATIONTIMESCALE = $00000080; // EnvironmentSize affects modulation time
|
---|
488 | FSOUND_REVERB_FLAGS_CORE0 = $00000100; // PS2 Only - Reverb is applied to CORE0 (hw voices 0-23)
|
---|
489 | FSOUND_REVERB_FLAGS_CORE1 = $00000200; // PS2 Only - Reverb is applied to CORE1 (hw voices 24-47)
|
---|
490 | FSOUND_REVERBFLAGS_DEFAULT = FSOUND_REVERBFLAGS_DECAYTIMESCALE or FSOUND_REVERBFLAGS_REFLECTIONSSCALE or
|
---|
491 | FSOUND_REVERBFLAGS_REFLECTIONSDELAYSCALE or FSOUND_REVERBFLAGS_REVERBSCALE or
|
---|
492 | FSOUND_REVERBFLAGS_REVERBDELAYSCALE or FSOUND_REVERBFLAGS_DECAYHFLIMIT or
|
---|
493 | FSOUND_REVERB_FLAGS_CORE0 or FSOUND_REVERB_FLAGS_CORE1;
|
---|
494 | // [DEFINE_END]
|
---|
495 |
|
---|
496 |
|
---|
497 | {
|
---|
498 | [DEFINE_START]
|
---|
499 | [
|
---|
500 | [NAME]
|
---|
501 | FSOUND_REVERB_PRESETS
|
---|
502 |
|
---|
503 | [DESCRIPTION]
|
---|
504 | A set of predefined environment PARAMETERS, created by Creative Labs
|
---|
505 | These are used to initialize an FSOUND_REVERB_PROPERTIES structure statically.
|
---|
506 | ie
|
---|
507 | FSOUND_REVERB_PROPERTIES prop = FSOUND_PRESET_GENERIC;
|
---|
508 |
|
---|
509 | [SEE_ALSO]
|
---|
510 | FSOUND_Reverb_SetProperties
|
---|
511 | ]
|
---|
512 | }
|
---|
513 | {
|
---|
514 | const
|
---|
515 | // Env Size Diffus Room RoomHF RmLF DecTm DecHF DecLF Refl RefDel RefPan Revb RevDel ReverbPan EchoTm EchDp ModTm ModDp AirAbs HFRef LFRef RRlOff Diffus Densty FLAGS
|
---|
516 | FSOUND_PRESET_OFF = 0, 7.5f, 1.00f, -10000, -10000, 0, 1.00f, 1.00f, 1.0f, -2602, 0.007f, 0.0f,0.0f,0.0f, 200, 0.011f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 0.0f, 0.0f, 0x3f ;
|
---|
517 | FSOUND_PRESET_GENERIC = 0, 7.5f, 1.00f, -1000, -100, 0, 1.49f, 0.83f, 1.0f, -2602, 0.007f, 0.0f,0.0f,0.0f, 200, 0.011f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
518 | FSOUND_PRESET_PADDEDCELL = 1, 1.4f, 1.00f, -1000, -6000, 0, 0.17f, 0.10f, 1.0f, -1204, 0.001f, 0.0f,0.0f,0.0f, 207, 0.002f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
519 | FSOUND_PRESET_ROOM = 2, 1.9f, 1.00f, -1000, -454, 0, 0.40f, 0.83f, 1.0f, -1646, 0.002f, 0.0f,0.0f,0.0f, 53, 0.003f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
520 | FSOUND_PRESET_BATHROOM = 3, 1.4f, 1.00f, -1000, -1200, 0, 1.49f, 0.54f, 1.0f, -370, 0.007f, 0.0f,0.0f,0.0f, 1030, 0.011f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 60.0f, 0x3f ;
|
---|
521 | FSOUND_PRESET_LIVINGROOM = 4, 2.5f, 1.00f, -1000, -6000, 0, 0.50f, 0.10f, 1.0f, -1376, 0.003f, 0.0f,0.0f,0.0f, -1104, 0.004f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
522 | FSOUND_PRESET_STONEROOM = 5, 11.6f, 1.00f, -1000, -300, 0, 2.31f, 0.64f, 1.0f, -711, 0.012f, 0.0f,0.0f,0.0f, 83, 0.017f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
523 | FSOUND_PRESET_AUDITORIUM = 6, 21.6f, 1.00f, -1000, -476, 0, 4.32f, 0.59f, 1.0f, -789, 0.020f, 0.0f,0.0f,0.0f, -289, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
524 | FSOUND_PRESET_CONCERTHALL = 7, 19.6f, 1.00f, -1000, -500, 0, 3.92f, 0.70f, 1.0f, -1230, 0.020f, 0.0f,0.0f,0.0f, -2, 0.029f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
525 | FSOUND_PRESET_CAVE = 8, 14.6f, 1.00f, -1000, 0, 0, 2.91f, 1.30f, 1.0f, -602, 0.015f, 0.0f,0.0f,0.0f, -302, 0.022f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x1f ;
|
---|
526 | FSOUND_PRESET_ARENA = 9, 36.2f, 1.00f, -1000, -698, 0, 7.24f, 0.33f, 1.0f, -1166, 0.020f, 0.0f,0.0f,0.0f, 16, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
527 | FSOUND_PRESET_HANGAR = 10, 50.3f, 1.00f, -1000, -1000, 0, 10.05f, 0.23f, 1.0f, -602, 0.020f, 0.0f,0.0f,0.0f, 198, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
528 | FSOUND_PRESET_CARPETTEDHALLWAY = 11, 1.9f, 1.00f, -1000, -4000, 0, 0.30f, 0.10f, 1.0f, -1831, 0.002f, 0.0f,0.0f,0.0f, -1630, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
529 | FSOUND_PRESET_HALLWAY = 12, 1.8f, 1.00f, -1000, -300, 0, 1.49f, 0.59f, 1.0f, -1219, 0.007f, 0.0f,0.0f,0.0f, 441, 0.011f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
530 | FSOUND_PRESET_STONECORRIDOR = 13, 13.5f, 1.00f, -1000, -237, 0, 2.70f, 0.79f, 1.0f, -1214, 0.013f, 0.0f,0.0f,0.0f, 395, 0.020f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
531 | FSOUND_PRESET_ALLEY = 14, 7.5f, 0.30f, -1000, -270, 0, 1.49f, 0.86f, 1.0f, -1204, 0.007f, 0.0f,0.0f,0.0f, -4, 0.011f, 0.0f,0.0f,0.0f, 0.125f, 0.95f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
532 | FSOUND_PRESET_FOREST = 15, 38.0f, 0.30f, -1000, -3300, 0, 1.49f, 0.54f, 1.0f, -2560, 0.162f, 0.0f,0.0f,0.0f, -229, 0.088f, 0.0f,0.0f,0.0f, 0.125f, 1.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 79.0f, 100.0f, 0x3f ;
|
---|
533 | FSOUND_PRESET_CITY = 16, 7.5f, 0.50f, -1000, -800, 0, 1.49f, 0.67f, 1.0f, -2273, 0.007f, 0.0f,0.0f,0.0f, -1691, 0.011f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 50.0f, 100.0f, 0x3f ;
|
---|
534 | FSOUND_PRESET_MOUNTAINS = 17, 100.0f, 0.27f, -1000, -2500, 0, 1.49f, 0.21f, 1.0f, -2780, 0.300f, 0.0f,0.0f,0.0f, -1434, 0.100f, 0.0f,0.0f,0.0f, 0.250f, 1.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 27.0f, 100.0f, 0x1f ;
|
---|
535 | FSOUND_PRESET_QUARRY = 18, 17.5f, 1.00f, -1000, -1000, 0, 1.49f, 0.83f, 1.0f, -10000, 0.061f, 0.0f,0.0f,0.0f, 500, 0.025f, 0.0f,0.0f,0.0f, 0.125f, 0.70f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
536 | FSOUND_PRESET_PLAIN = 19, 42.5f, 0.21f, -1000, -2000, 0, 1.49f, 0.50f, 1.0f, -2466, 0.179f, 0.0f,0.0f,0.0f, -1926, 0.100f, 0.0f,0.0f,0.0f, 0.250f, 1.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 21.0f, 100.0f, 0x3f ;
|
---|
537 | FSOUND_PRESET_PARKINGLOT = 20, 8.3f, 1.00f, -1000, 0, 0, 1.65f, 1.50f, 1.0f, -1363, 0.008f, 0.0f,0.0f,0.0f, -1153, 0.012f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x1f ;
|
---|
538 | FSOUND_PRESET_SEWERPIPE = 21, 1.7f, 0.80f, -1000, -1000, 0, 2.81f, 0.14f, 1.0f, 429, 0.014f, 0.0f,0.0f,0.0f, 1023, 0.021f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 0.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 80.0f, 60.0f, 0x3f ;
|
---|
539 | FSOUND_PRESET_UNDERWATER = 22, 1.8f, 1.00f, -1000, -4000, 0, 1.49f, 0.10f, 1.0f, -449, 0.007f, 0.0f,0.0f,0.0f, 1700, 0.011f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 1.18f, 0.348f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x3f ;
|
---|
540 |
|
---|
541 | // Non I3DL2 presets
|
---|
542 |
|
---|
543 | FSOUND_PRESET_DRUGGED = 23, 1.9f, 0.50f, -1000, 0, 0, 8.39f, 1.39f, 1.0f, -115, 0.002f, 0.0f,0.0f,0.0f, 985, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 0.25f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x1f ;
|
---|
544 | FSOUND_PRESET_DIZZY = 24, 1.8f, 0.60f, -1000, -400, 0, 17.23f, 0.56f, 1.0f, -1713, 0.020f, 0.0f,0.0f,0.0f, -613, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 1.00f, 0.81f, 0.310f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x1f ;
|
---|
545 | FSOUND_PRESET_PSYCHOTIC = 25, 1.0f, 0.50f, -1000, -151, 0, 7.56f, 0.91f, 1.0f, -626, 0.020f, 0.0f,0.0f,0.0f, 774, 0.030f, 0.0f,0.0f,0.0f, 0.250f, 0.00f, 4.00f, 1.000f, -5.0f, 5000.0f, 250.0f, 0.0f, 100.0f, 100.0f, 0x1f ;
|
---|
546 | }
|
---|
547 | // [DEFINE_END]
|
---|
548 |
|
---|
549 |
|
---|
550 | {
|
---|
551 | [STRUCTURE]
|
---|
552 | [
|
---|
553 | [DESCRIPTION]
|
---|
554 | Structure defining the properties for a reverb source, related to a FSOUND channel.
|
---|
555 | For more indepth descriptions of the reverb properties under win32, please see the EAX3
|
---|
556 | documentation at http://developer.creative.com/ under the 'downloads' section.
|
---|
557 | If they do not have the EAX3 documentation, then most information can be attained from
|
---|
558 | the EAX2 documentation, as EAX3 only adds some more parameters and functionality on top of
|
---|
559 | EAX2.
|
---|
560 |
|
---|
561 | Note the default reverb properties are the same as the FSOUND_PRESET_GENERIC preset.
|
---|
562 | Note that integer values that typically range from -10,000 to 1000 are represented in
|
---|
563 | decibels, and are of a logarithmic scale, not linear, wheras float values are typically linear.
|
---|
564 | PORTABILITY: Each member has the platform it supports in braces ie (win32/xbox).
|
---|
565 | Some reverb parameters are only supported in win32 and some only on xbox. If all parameters are set then
|
---|
566 | the reverb should product a similar effect on either platform.
|
---|
567 | Linux and FMODCE do not support the reverb api.
|
---|
568 |
|
---|
569 | The numerical values listed below are the maximum, minimum and default values for each variable respectively.
|
---|
570 |
|
---|
571 | [SEE_ALSO]
|
---|
572 | FSOUND_Reverb_SetChannelProperties
|
---|
573 | FSOUND_Reverb_GetChannelProperties
|
---|
574 | FSOUND_REVERB_CHANNELFLAGS
|
---|
575 | ]
|
---|
576 | }
|
---|
577 | type
|
---|
578 | TFSoundReverbChannelProperties = record // MIN MAX DEFAULT
|
---|
579 | Direct: Integer; // -10000 1000 0 direct path level (at low and mid frequencies) (win32/xbox)
|
---|
580 | DirectHF: Integer; // -10000 0 0 relative direct path level at high frequencies (win32/xbox)
|
---|
581 | Room: Integer; // -10000 1000 0 room effect level (at low and mid frequencies) (win32/xbox)
|
---|
582 | RoomHF: Integer; // -10000 0 0 relative room effect level at high frequencies (win32/xbox)
|
---|
583 | Obstruction: Integer; // -10000 0 0 main obstruction control (attenuation at high frequencies) (win32/xbox)
|
---|
584 | ObstructionLFRatio: Single; // 0.0 1.0 0.0 obstruction low-frequency level re. main control (win32/xbox)
|
---|
585 | Occlusion: Integer; // -10000 0 0 main occlusion control (attenuation at high frequencies) (win32/xbox)
|
---|
586 | OcclusionLFRatio: Single; // 0.0 1.0 0.25 occlusion low-frequency level re. main control (win32/xbox)
|
---|
587 | OcclusionRoomRatio: Single; // 0.0 10.0 1.5 relative occlusion control for room effect (win32)
|
---|
588 | OcclusionDirectRatio: Single; // 0.0 10.0 1.0 relative occlusion control for direct path (win32)
|
---|
589 | Exclusion: Integer; // -10000 0 0 main exlusion control (attenuation at high frequencies) (win32)
|
---|
590 | ExclusionLFRatio: Single; // 0.0 1.0 1.0 exclusion low-frequency level re. main control (win32)
|
---|
591 | OutsideVolumeHF: Integer; // -10000 0 0 outside sound cone level at high frequencies (win32)
|
---|
592 | DopplerFactor: Single; // 0.0 10.0 0.0 like DS3D flDopplerFactor but per source (win32)
|
---|
593 | RolloffFactor: Single; // 0.0 10.0 0.0 like DS3D flRolloffFactor but per source (win32)
|
---|
594 | RoomRolloffFactor: Single; // 0.0 10.0 0.0 like DS3D flRolloffFactor but for room effect (win32/xbox)
|
---|
595 | AirAbsorptionFactor: Single; // 0.0 10.0 1.0 multiplies AirAbsorptionHF member of FSOUND_REVERB_PROPERTIES (win32)
|
---|
596 | Flags: Integer; // FSOUND_REVERB_CHANNELFLAGS - modifies the behavior of properties (win32)
|
---|
597 | end;
|
---|
598 | // [STRUCT_END]
|
---|
599 |
|
---|
600 | {
|
---|
601 | [DEFINE_START]
|
---|
602 | [
|
---|
603 | [NAME]
|
---|
604 | FSOUND_REVERB_CHANNELFLAGS
|
---|
605 |
|
---|
606 | [DESCRIPTION]
|
---|
607 | Values for the Flags member of the FSOUND_REVERB_CHANNELPROPERTIES structure.
|
---|
608 |
|
---|
609 | [SEE_ALSO]
|
---|
610 | FSOUND_REVERB_CHANNELPROPERTIES
|
---|
611 | ]
|
---|
612 | }
|
---|
613 | const
|
---|
614 | FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO = $01; // Automatic setting of 'Direct' due to distance from listener
|
---|
615 | FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO = $02; // Automatic setting of 'Room' due to distance from listener
|
---|
616 | FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO = $04; // Automatic setting of 'RoomHF' due to distance from listener
|
---|
617 | FSOUND_REVERB_CHANNELFLAGS_DEFAULT = FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO or
|
---|
618 | FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO or
|
---|
619 | FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO;
|
---|
620 | // [DEFINE_END]
|
---|
621 |
|
---|
622 |
|
---|
623 | {
|
---|
624 | [ENUM]
|
---|
625 | [
|
---|
626 | [DESCRIPTION]
|
---|
627 | These values are used with FSOUND_FX_Enable to enable DirectX 8 FX for a channel.
|
---|
628 |
|
---|
629 | [SEE_ALSO]
|
---|
630 | FSOUND_FX_Enable
|
---|
631 | FSOUND_FX_Disable
|
---|
632 | FSOUND_FX_SetChorus
|
---|
633 | FSOUND_FX_SetCompressor
|
---|
634 | FSOUND_FX_SetDistortion
|
---|
635 | FSOUND_FX_SetEcho
|
---|
636 | FSOUND_FX_SetFlanger
|
---|
637 | FSOUND_FX_SetGargle
|
---|
638 | FSOUND_FX_SetI3DL2Reverb
|
---|
639 | FSOUND_FX_SetParamEQ
|
---|
640 | FSOUND_FX_SetWavesReverb
|
---|
641 | ]
|
---|
642 | }
|
---|
643 |
|
---|
644 | type
|
---|
645 | TFSoundFXModes = (
|
---|
646 | FSOUND_FX_CHORUS,
|
---|
647 | FSOUND_FX_COMPRESSOR,
|
---|
648 | FSOUND_FX_DISTORTION,
|
---|
649 | FSOUND_FX_ECHO,
|
---|
650 | FSOUND_FX_FLANGER,
|
---|
651 | FSOUND_FX_GARGLE,
|
---|
652 | FSOUND_FX_I3DL2REVERB,
|
---|
653 | FSOUND_FX_PARAMEQ,
|
---|
654 | FSOUND_FX_WAVES_REVERB,
|
---|
655 | FSOUND_FX_MAX
|
---|
656 | );
|
---|
657 | // [DEFINE_END]
|
---|
658 |
|
---|
659 |
|
---|
660 | {
|
---|
661 | [ENUM]
|
---|
662 | [
|
---|
663 | [DESCRIPTION]
|
---|
664 | These are speaker types defined for use with the FSOUND_SetSpeakerMode command.
|
---|
665 | Note - Only reliably works with FSOUND_OUTPUT_DSOUND or FSOUND_OUTPUT_XBOX output modes. Other output modes will only
|
---|
666 | interpret FSOUND_SPEAKERMODE_MONO and set everything else to be stereo.
|
---|
667 |
|
---|
668 | [SEE_ALSO]
|
---|
669 | FSOUND_SetSpeakerMode
|
---|
670 |
|
---|
671 | [REMARKS]
|
---|
672 | Note - Only reliably works with FSOUND_OUTPUT_DSOUND or FSOUND_OUTPUT_XBOX output modes. Other output modes will only
|
---|
673 | interpret FSOUND_SPEAKERMODE_MONO and set everything else to be stereo.
|
---|
674 |
|
---|
675 | Using either DolbyDigital or DTS will use whatever 5.1 digital mode is available if destination hardware is unsure.
|
---|
676 | ]
|
---|
677 | }
|
---|
678 | type
|
---|
679 | TFSoundSpeakerModes =
|
---|
680 | (
|
---|
681 | FSOUND_SPEAKERMODE_DOLBYDIGITAL, // The audio is played through a speaker arrangement of surround speakers with a subwoofer.
|
---|
682 | FSOUND_SPEAKERMODE_HEADPHONES, // The speakers are headphones.
|
---|
683 | FSOUND_SPEAKERMODE_MONO, // The speakers are monaural.
|
---|
684 | FSOUND_SPEAKERMODE_QUAD, // The speakers are quadraphonic.
|
---|
685 | FSOUND_SPEAKERMODE_STEREO, // The speakers are stereo (default value).
|
---|
686 | FSOUND_SPEAKERMODE_SURROUND, // The speakers are surround sound.
|
---|
687 | FSOUND_SPEAKERMODE_DTS // The audio is played through a speaker arrangement of surround speakers with a subwoofer.
|
---|
688 | );
|
---|
689 | FSOUND_SPEAKERMODES = TFSoundSpeakerModes;
|
---|
690 |
|
---|
691 |
|
---|
692 | {
|
---|
693 | [DEFINE_START]
|
---|
694 | [
|
---|
695 | [NAME]
|
---|
696 | FSOUND_INIT_FLAGS
|
---|
697 |
|
---|
698 | [DESCRIPTION]
|
---|
699 | Initialization flags. Use them with FSOUND_Init in the flags parameter to change various behaviour.
|
---|
700 |
|
---|
701 | FSOUND_INIT_ENABLESYSTEMCHANNELFX Is an init mode which enables the FSOUND mixer buffer to be affected by DirectX 8 effects.
|
---|
702 | Note that due to limitations of DirectSound, FSOUND_Init may fail if this is enabled because the buffersize is too small.
|
---|
703 | This can be fixed with FSOUND_SetBufferSize. Increase the BufferSize until it works.
|
---|
704 | When it is enabled you can use the FSOUND_FX api, and use FSOUND_SYSTEMCHANNEL as the channel id when setting parameters.
|
---|
705 |
|
---|
706 | [SEE_ALSO]
|
---|
707 | FSOUND_Init
|
---|
708 | ]
|
---|
709 | }
|
---|
710 | const
|
---|
711 | FSOUND_INIT_USEDEFAULTMIDISYNTH = $01; // Causes MIDI playback to force software decoding.
|
---|
712 | FSOUND_INIT_GLOBALFOCUS = $02; // For DirectSound output - sound is not muted when window is out of focus.
|
---|
713 | FSOUND_INIT_ENABLESYSTEMCHANNELFX = $04; // For DirectSound output - Allows FSOUND_FX api to be used on global software mixer output!
|
---|
714 | FSOUND_INIT_ACCURATEVULEVELS = $08; // This latency adjusts FSOUND_GetCurrentLevels, but incurs a small cpu and memory hit.
|
---|
715 | FSOUND_INIT_PS2_DISABLECORE0REVERB = $10; // PS2 only - Disable reverb on CORE 0 to regain SRAM.
|
---|
716 | FSOUND_INIT_PS2_DISABLECORE1REVERB = $20; // PS2 only - Disable reverb on CORE 1 to regain SRAM.
|
---|
717 | FSOUND_INIT_PS2_SWAPDMACORES = $40; // PS2 only - By default FMOD uses DMA CH0 for mixing, CH1 for uploads, this flag swaps them around.
|
---|
718 | FSOUND_INIT_DONTLATENCYADJUST = $80; // Callbacks are not latency adjusted, and are called at mix time. Also information functions are immediate.
|
---|
719 | FSOUND_INIT_GC_INITLIBS = $100; // Gamecube only - Initializes GC audio libraries.
|
---|
720 | FSOUND_INIT_STREAM_FROM_MAIN_THREAD = $200; // Turns off fmod streamer thread, and makes streaming update from FSOUND_Update called by the user.
|
---|
721 | FSOUND_INIT_PS2_USEVOLUMERAMPING = $400; // PS2 only - Turns on volume ramping system to remove hardware clicks.
|
---|
722 | FSOUND_INIT_DSOUND_DEFERRED = $800; // Win32 only - For DirectSound output. 3D commands are batched together and executed at FSOUND_Update.
|
---|
723 | FSOUND_INIT_DSOUND_HRTF_LIGHT = $1000; // Win32 only - For DirectSound output. FSOUND_HW3D buffers use a slightly higher quality algorithm when 3d hardware acceleration is not present.
|
---|
724 | FSOUND_INIT_DSOUND_HRTF_FULL = $2000; // Win32 only - For DirectSound output. FSOUND_HW3D buffers use full quality 3d playback when 3d hardware acceleration is not present.
|
---|
725 | FSOUND_INIT_XBOX_REMOVEHEADROOM = $4000; // XBox only - By default directsound attenuates all sound by 6db to avoid clipping/distortion. CAUTION. If you use this flag you are responsible for the final mix to make sure clipping / distortion doesn't happen.
|
---|
726 | FSOUND_INIT_PSP_SILENCEONUNDERRUN = $8000; // PSP only - If streams skip / stutter when device is powered on, either increase stream buffersize, or use this flag instead to play silence while the UMD is recovering.
|
---|
727 |
|
---|
728 | // [DEFINE_END]
|
---|
729 |
|
---|
730 | (*
|
---|
731 | [ENUM]
|
---|
732 | [
|
---|
733 | [DESCRIPTION]
|
---|
734 | Status values for internet streams. Use FSOUND_Stream_Net_GetStatus to get the current status of an internet stream.
|
---|
735 |
|
---|
736 | [SEE_ALSO]
|
---|
737 | FSOUND_Stream_Net_GetStatus
|
---|
738 | ]
|
---|
739 | *)
|
---|
740 | type
|
---|
741 | TFSoundStreamNetStatus =
|
---|
742 | (
|
---|
743 | FSOUND_STREAM_NET_NOTCONNECTED, (* Stream hasn't connected yet *)
|
---|
744 | FSOUND_STREAM_NET_CONNECTING, (* Stream is connecting to remote host *)
|
---|
745 | FSOUND_STREAM_NET_BUFFERING, (* Stream is buffering data *)
|
---|
746 | FSOUND_STREAM_NET_READY, (* Stream is ready to play *)
|
---|
747 | FSOUND_STREAM_NET_ERROR (* Stream has suffered a fatal error *)
|
---|
748 | );
|
---|
749 |
|
---|
750 |
|
---|
751 | (*
|
---|
752 | [ENUM]
|
---|
753 | [
|
---|
754 | [DESCRIPTION]
|
---|
755 | Describes the type of a particular tag field.
|
---|
756 |
|
---|
757 | [SEE_ALSO]
|
---|
758 | FSOUND_Stream_GetNumTagFields
|
---|
759 | FSOUND_Stream_GetTagField
|
---|
760 | FSOUND_Stream_FindTagField
|
---|
761 | ]
|
---|
762 | *)
|
---|
763 | type
|
---|
764 | TFSoundTagFieldType =
|
---|
765 | (
|
---|
766 | FSOUND_TAGFIELD_VORBISCOMMENT, (* A vorbis comment *)
|
---|
767 | FSOUND_TAGFIELD_ID3V1, (* Part of an ID3v1 tag *)
|
---|
768 | FSOUND_TAGFIELD_ID3V2, (* An ID3v2 frame *)
|
---|
769 | FSOUND_TAGFIELD_SHOUTCAST, (* A SHOUTcast header line *)
|
---|
770 | FSOUND_TAGFIELD_ICECAST, (* An Icecast header line *)
|
---|
771 | FSOUND_TAGFIELD_ASF (* An Advanced Streaming Format header line *)
|
---|
772 | );
|
---|
773 |
|
---|
774 |
|
---|
775 | (*
|
---|
776 | [DEFINE_START]
|
---|
777 | [
|
---|
778 | [NAME]
|
---|
779 | FSOUND_STATUS_FLAGS
|
---|
780 |
|
---|
781 | [DESCRIPTION]
|
---|
782 | These values describe the protocol and format of an internet stream. Use FSOUND_Stream_Net_GetStatus to retrieve this information for an open internet stream.
|
---|
783 |
|
---|
784 | [SEE_ALSO]
|
---|
785 | FSOUND_Stream_Net_GetStatus
|
---|
786 | ]
|
---|
787 | *)
|
---|
788 | const
|
---|
789 | FSOUND_PROTOCOL_SHOUTCAST = $00000001;
|
---|
790 | FSOUND_PROTOCOL_ICECAST = $00000002;
|
---|
791 | FSOUND_PROTOCOL_HTTP = $00000004;
|
---|
792 | FSOUND_FORMAT_MPEG = $00010000;
|
---|
793 | FSOUND_FORMAT_OGGVORBIS = $00020000;
|
---|
794 | (* [DEFINE_END] *)
|
---|
795 |
|
---|
796 | {
|
---|
797 | [STRUCTURE]
|
---|
798 | [
|
---|
799 | [DESCRIPTION]
|
---|
800 | Structure defining a CD table of contents. This structure is returned as a tag from FSOUND_Stream_FindTagField when the tag name "CD_TOC" is specified.
|
---|
801 | Note: All tracks on the CD - including data tracks- will be represented in this structure so it's use for anything other than generating disc id information is not recommended.
|
---|
802 | See the cdda example program for info on retrieving and using this structure.
|
---|
803 |
|
---|
804 | [SEE_ALSO]
|
---|
805 | FSOUND_Stream_Open
|
---|
806 | FSOUND_Stream_FindTagField
|
---|
807 | ]
|
---|
808 | }
|
---|
809 | type
|
---|
810 | TFSoundTOCTag = record
|
---|
811 | Name: array [0..3] of Char; // The string "TOC" (4th character is 0), just in case this structure is accidentally treated as a string.
|
---|
812 | NumTracks: Integer; // The number of tracks on the CD.
|
---|
813 | Min: array [0..99] of Integer; // The start offset of each track in minutes.
|
---|
814 | Sec: array [0..99] of Integer; // The start offset of each track in seconds.
|
---|
815 | Frame: array [0..99] of Integer; // The start offset of each track in frames.
|
---|
816 | end;
|
---|
817 | // [STRUCT_END]
|
---|
818 |
|
---|
819 | implementation
|
---|
820 |
|
---|
821 | end.
|
---|