| 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.
|
|---|