00001
00002
00003
00004
00005 #ifndef _FMOD_H_
00006 #define _FMOD_H_
00007
00008
00009
00010
00011
00012 #if (!defined(WIN32) && !defined(_WIN32) && !defined(__WIN32__) && !defined(_WIN64) && !defined(_WIN32_WCE) && !defined(_XBOX)) || (defined(__GNUC__) && defined(WIN32))
00013 #ifndef __cdecl
00014 #define __cdecl
00015 #endif
00016 #ifndef __stdcall
00017 #define __stdcall
00018 #endif
00019 #endif
00020
00021 #if defined(_WIN32_WCE)
00022 #define F_API _cdecl
00023 #define F_CALLBACKAPI _cdecl
00024 #else
00025 #define F_API __stdcall
00026 #define F_CALLBACKAPI __stdcall
00027 #endif
00028
00029 #ifdef DLL_EXPORTS
00030 #define DLL_API __declspec(dllexport)
00031 #else
00032 #if defined(__LCC__) || defined(__MINGW32__) || defined(__CYGWIN32__)
00033 #define DLL_API F_API
00034 #else
00035 #define DLL_API
00036 #endif
00037 #endif
00038
00039 #define FMOD_VERSION 3.74f
00040
00041
00042
00043
00044 typedef struct FSOUND_SAMPLE FSOUND_SAMPLE;
00045 typedef struct FSOUND_STREAM FSOUND_STREAM;
00046 typedef struct FSOUND_DSPUNIT FSOUND_DSPUNIT;
00047 typedef struct FSOUND_SYNCPOINT FSOUND_SYNCPOINT;
00048 typedef struct FMUSIC_MODULE FMUSIC_MODULE;
00049
00050
00051
00052
00053 typedef void * (F_CALLBACKAPI *FSOUND_OPENCALLBACK) (const char *name);
00054 typedef void (F_CALLBACKAPI *FSOUND_CLOSECALLBACK) (void *handle);
00055 typedef int (F_CALLBACKAPI *FSOUND_READCALLBACK) (void *buffer, int size, void *handle);
00056 typedef int (F_CALLBACKAPI *FSOUND_SEEKCALLBACK) (void *handle, int pos, signed char mode);
00057 typedef int (F_CALLBACKAPI *FSOUND_TELLCALLBACK) (void *handle);
00058
00059 typedef void * (F_CALLBACKAPI *FSOUND_ALLOCCALLBACK) (unsigned int size);
00060 typedef void * (F_CALLBACKAPI *FSOUND_REALLOCCALLBACK) (void *ptr, unsigned int size);
00061 typedef void (F_CALLBACKAPI *FSOUND_FREECALLBACK) (void *ptr);
00062
00063 typedef void * (F_CALLBACKAPI *FSOUND_DSPCALLBACK) (void *originalbuffer, void *newbuffer, int length, void *userdata);
00064 typedef signed char (F_CALLBACKAPI *FSOUND_STREAMCALLBACK) (FSOUND_STREAM *stream, void *buff, int len, void *userdata);
00065 typedef signed char (F_CALLBACKAPI *FSOUND_METADATACALLBACK)(char *name, char *value, void *userdata);
00066 typedef void (F_CALLBACKAPI *FMUSIC_CALLBACK) (FMUSIC_MODULE *mod, unsigned char param);
00067
00068
00069
00070
00071
00072
00073
00074
00075
00076
00077
00078
00079 enum FMOD_ERRORS
00080 {
00081 FMOD_ERR_NONE,
00082 FMOD_ERR_BUSY,
00083 FMOD_ERR_UNINITIALIZED,
00084 FMOD_ERR_INIT,
00085 FMOD_ERR_ALLOCATED,
00086 FMOD_ERR_PLAY,
00087 FMOD_ERR_OUTPUT_FORMAT,
00088 FMOD_ERR_COOPERATIVELEVEL,
00089 FMOD_ERR_CREATEBUFFER,
00090 FMOD_ERR_FILE_NOTFOUND,
00091 FMOD_ERR_FILE_FORMAT,
00092 FMOD_ERR_FILE_BAD,
00093 FMOD_ERR_MEMORY,
00094 FMOD_ERR_VERSION,
00095 FMOD_ERR_INVALID_PARAM,
00096 FMOD_ERR_NO_EAX,
00097 FMOD_ERR_CHANNEL_ALLOC,
00098 FMOD_ERR_RECORD,
00099 FMOD_ERR_MEDIAPLAYER,
00100 FMOD_ERR_CDDEVICE
00101 };
00102
00103
00104
00105
00106
00107
00108
00109
00110
00111
00112
00113
00114
00115
00116
00117
00118
00119
00120 enum FSOUND_OUTPUTTYPES
00121 {
00122 FSOUND_OUTPUT_NOSOUND,
00123 FSOUND_OUTPUT_WINMM,
00124 FSOUND_OUTPUT_DSOUND,
00125 FSOUND_OUTPUT_A3D,
00126
00127 FSOUND_OUTPUT_OSS,
00128 FSOUND_OUTPUT_ESD,
00129 FSOUND_OUTPUT_ALSA,
00130
00131 FSOUND_OUTPUT_ASIO,
00132 FSOUND_OUTPUT_XBOX,
00133 FSOUND_OUTPUT_PS2,
00134 FSOUND_OUTPUT_MAC,
00135 FSOUND_OUTPUT_GC,
00136
00137 FSOUND_OUTPUT_NOSOUND_NONREALTIME
00138 };
00139
00140
00141
00142
00143
00144
00145
00146
00147
00148
00149
00150
00151
00152
00153
00154 enum FSOUND_MIXERTYPES
00155 {
00156 FSOUND_MIXER_AUTODETECT,
00157 FSOUND_MIXER_BLENDMODE,
00158 FSOUND_MIXER_MMXP5,
00159 FSOUND_MIXER_MMXP6,
00160
00161 FSOUND_MIXER_QUALITY_AUTODETECT,
00162 FSOUND_MIXER_QUALITY_FPU,
00163 FSOUND_MIXER_QUALITY_MMXP5,
00164 FSOUND_MIXER_QUALITY_MMXP6,
00165
00166 FSOUND_MIXER_MONO,
00167 FSOUND_MIXER_QUALITY_MONO,
00168
00169 FSOUND_MIXER_MAX
00170 };
00171
00172
00173
00174
00175
00176
00177
00178
00179
00180
00181
00182
00183 enum FMUSIC_TYPES
00184 {
00185 FMUSIC_TYPE_NONE,
00186 FMUSIC_TYPE_MOD,
00187 FMUSIC_TYPE_S3M,
00188 FMUSIC_TYPE_XM,
00189 FMUSIC_TYPE_IT,
00190 FMUSIC_TYPE_MIDI,
00191 FMUSIC_TYPE_FSB
00192 };
00193
00194
00195
00196
00197
00198
00199
00200
00201
00202
00203
00204
00205
00206
00207
00208
00209
00210
00211
00212
00213 #define FSOUND_DSP_DEFAULTPRIORITY_CLEARUNIT 0
00214 #define FSOUND_DSP_DEFAULTPRIORITY_SFXUNIT 100
00215 #define FSOUND_DSP_DEFAULTPRIORITY_MUSICUNIT 200
00216 #define FSOUND_DSP_DEFAULTPRIORITY_USER 300
00217 #define FSOUND_DSP_DEFAULTPRIORITY_FFTUNIT 900
00218 #define FSOUND_DSP_DEFAULTPRIORITY_CLIPANDCOPYUNIT 1000
00219
00220
00221
00222
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238 #define FSOUND_CAPS_HARDWARE 0x1
00239 #define FSOUND_CAPS_EAX2 0x2
00240 #define FSOUND_CAPS_EAX3 0x10
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252
00253
00254
00255
00256
00257
00258
00259
00260
00261
00262
00263
00264
00265
00266
00267 #define FSOUND_LOOP_OFF 0x00000001
00268 #define FSOUND_LOOP_NORMAL 0x00000002
00269 #define FSOUND_LOOP_BIDI 0x00000004
00270 #define FSOUND_8BITS 0x00000008
00271 #define FSOUND_16BITS 0x00000010
00272 #define FSOUND_MONO 0x00000020
00273 #define FSOUND_STEREO 0x00000040
00274 #define FSOUND_UNSIGNED 0x00000080
00275 #define FSOUND_SIGNED 0x00000100
00276 #define FSOUND_DELTA 0x00000200
00277 #define FSOUND_IT214 0x00000400
00278 #define FSOUND_IT215 0x00000800
00279 #define FSOUND_HW3D 0x00001000
00280 #define FSOUND_2D 0x00002000
00281 #define FSOUND_STREAMABLE 0x00004000
00282 #define FSOUND_LOADMEMORY 0x00008000
00283 #define FSOUND_LOADRAW 0x00010000
00284 #define FSOUND_MPEGACCURATE 0x00020000
00285 #define FSOUND_FORCEMONO 0x00040000
00286 #define FSOUND_HW2D 0x00080000
00287 #define FSOUND_ENABLEFX 0x00100000
00288 #define FSOUND_MPEGHALFRATE 0x00200000
00289 #define FSOUND_IMAADPCM 0x00400000
00290 #define FSOUND_VAG 0x00800000
00291 #define FSOUND_NONBLOCKING 0x01000000
00292 #define FSOUND_GCADPCM 0x02000000
00293 #define FSOUND_MULTICHANNEL 0x04000000
00294 #define FSOUND_USECORE0 0x08000000
00295 #define FSOUND_USECORE1 0x10000000
00296 #define FSOUND_LOADMEMORYIOP 0x20000000
00297 #define FSOUND_IGNORETAGS 0x40000000
00298 #define FSOUND_STREAM_NET 0x80000000
00299
00300 #define FSOUND_NORMAL (FSOUND_16BITS | FSOUND_SIGNED | FSOUND_MONO)
00301
00302
00303
00304
00305
00306
00307
00308
00309
00310
00311
00312
00313
00314
00315
00316
00317
00318
00319 #define FSOUND_CD_PLAYCONTINUOUS 0
00320 #define FSOUND_CD_PLAYONCE 1
00321 #define FSOUND_CD_PLAYLOOPED 2
00322 #define FSOUND_CD_PLAYRANDOM 3
00323
00324
00325
00326
00327
00328
00329
00330
00331
00332
00333
00334
00335
00336
00337
00338
00339
00340
00341
00342
00343 #define FSOUND_FREE -1
00344 #define FSOUND_UNMANAGED -2
00345 #define FSOUND_ALL -3
00346 #define FSOUND_STEREOPAN -1
00347 #define FSOUND_SYSTEMCHANNEL -1000
00348 #define FSOUND_SYSTEMSAMPLE -1000
00349
00350
00351
00352
00353
00354
00355
00356
00357
00358
00359
00360
00361
00362
00363
00364
00365
00366
00367
00368
00369
00370
00371
00372
00373
00374
00375
00376 typedef struct _FSOUND_REVERB_PROPERTIES
00377 {
00378 unsigned int Environment;
00379 float EnvSize;
00380 float EnvDiffusion;
00381 int Room;
00382 int RoomHF;
00383 int RoomLF;
00384 float DecayTime;
00385 float DecayHFRatio;
00386 float DecayLFRatio;
00387 int Reflections;
00388 float ReflectionsDelay;
00389 float ReflectionsPan[3];
00390 int Reverb;
00391 float ReverbDelay;
00392 float ReverbPan[3];
00393 float EchoTime;
00394 float EchoDepth;
00395 float ModulationTime;
00396 float ModulationDepth;
00397 float AirAbsorptionHF;
00398 float HFReference;
00399 float LFReference;
00400 float RoomRolloffFactor;
00401 float Diffusion;
00402 float Density;
00403 unsigned int Flags;
00404 } FSOUND_REVERB_PROPERTIES;
00405
00406
00407
00408
00409
00410
00411
00412
00413
00414
00415
00416
00417
00418
00419
00420 #define FSOUND_REVERB_FLAGS_DECAYTIMESCALE 0x00000001
00421 #define FSOUND_REVERB_FLAGS_REFLECTIONSSCALE 0x00000002
00422 #define FSOUND_REVERB_FLAGS_REFLECTIONSDELAYSCALE 0x00000004
00423 #define FSOUND_REVERB_FLAGS_REVERBSCALE 0x00000008
00424 #define FSOUND_REVERB_FLAGS_REVERBDELAYSCALE 0x00000010
00425 #define FSOUND_REVERB_FLAGS_DECAYHFLIMIT 0x00000020
00426 #define FSOUND_REVERB_FLAGS_ECHOTIMESCALE 0x00000040
00427 #define FSOUND_REVERB_FLAGS_MODULATIONTIMESCALE 0x00000080
00428 #define FSOUND_REVERB_FLAGS_CORE0 0x00000100
00429 #define FSOUND_REVERB_FLAGS_CORE1 0x00000200
00430 #define FSOUND_REVERB_FLAGS_DEFAULT (FSOUND_REVERB_FLAGS_DECAYTIMESCALE | \
00431 FSOUND_REVERB_FLAGS_REFLECTIONSSCALE | \
00432 FSOUND_REVERB_FLAGS_REFLECTIONSDELAYSCALE | \
00433 FSOUND_REVERB_FLAGS_REVERBSCALE | \
00434 FSOUND_REVERB_FLAGS_REVERBDELAYSCALE | \
00435 FSOUND_REVERB_FLAGS_DECAYHFLIMIT | \
00436 FSOUND_REVERB_FLAGS_CORE0 | \
00437 FSOUND_REVERB_FLAGS_CORE1 )
00438
00439
00440
00441
00442
00443
00444
00445
00446
00447
00448
00449
00450
00451
00452
00453
00454
00455
00456
00457
00458
00459
00460 #define 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, 0x33f }
00461 #define 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 }
00462 #define 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 }
00463 #define 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 }
00464 #define 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 }
00465 #define 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 }
00466 #define 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 }
00467 #define 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 }
00468 #define 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 }
00469 #define 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 }
00470 #define 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 }
00471 #define 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 }
00472 #define 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 }
00473 #define 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 }
00474 #define 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 }
00475 #define 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 }
00476 #define 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 }
00477 #define 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 }
00478 #define 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 }
00479 #define 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 }
00480 #define 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 }
00481 #define 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 }
00482 #define 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 }
00483 #define 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 }
00484
00485
00486
00487 #define 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 }
00488 #define 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 }
00489 #define 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 }
00490
00491
00492
00493 #define FSOUND_PRESET_PS2_ROOM {1, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00494 #define FSOUND_PRESET_PS2_STUDIO_A {2, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00495 #define FSOUND_PRESET_PS2_STUDIO_B {3, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00496 #define FSOUND_PRESET_PS2_STUDIO_C {4, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00497 #define FSOUND_PRESET_PS2_HALL {5, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00498 #define FSOUND_PRESET_PS2_SPACE {6, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00499 #define FSOUND_PRESET_PS2_ECHO {7, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00500 #define FSOUND_PRESET_PS2_DELAY {8, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00501 #define FSOUND_PRESET_PS2_PIPE {9, 0, 0, 0, 0, 0, 0.0f, 0.0f, 0.0f, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0, 0.000f, { 0.0f,0.0f,0.0f }, 0.000f, 0.00f, 0.00f, 0.000f, 0.0f, 0000.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0x31f }
00502
00503
00504
00505
00506
00507
00508
00509
00510
00511
00512
00513
00514
00515
00516
00517
00518
00519
00520
00521
00522
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533 typedef struct _FSOUND_REVERB_CHANNELPROPERTIES
00534 {
00535 int Direct;
00536 int DirectHF;
00537 int Room;
00538 int RoomHF;
00539 int Obstruction;
00540 float ObstructionLFRatio;
00541 int Occlusion;
00542 float OcclusionLFRatio;
00543 float OcclusionRoomRatio;
00544 float OcclusionDirectRatio;
00545 int Exclusion;
00546 float ExclusionLFRatio;
00547 int OutsideVolumeHF;
00548 float DopplerFactor;
00549 float RolloffFactor;
00550 float RoomRolloffFactor;
00551 float AirAbsorptionFactor;
00552 int Flags;
00553 } FSOUND_REVERB_CHANNELPROPERTIES;
00554
00555
00556
00557
00558
00559
00560
00561
00562
00563
00564
00565
00566
00567
00568
00569 #define FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO 0x00000001
00570 #define FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO 0x00000002
00571 #define FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO 0x00000004
00572 #define FSOUND_REVERB_CHANNELFLAGS_DEFAULT (FSOUND_REVERB_CHANNELFLAGS_DIRECTHFAUTO | \
00573 FSOUND_REVERB_CHANNELFLAGS_ROOMAUTO| \
00574 FSOUND_REVERB_CHANNELFLAGS_ROOMHFAUTO)
00575
00576
00577
00578
00579
00580
00581
00582
00583
00584
00585
00586
00587
00588
00589
00590
00591
00592
00593
00594
00595
00596
00597
00598 enum FSOUND_FX_MODES
00599 {
00600 FSOUND_FX_CHORUS,
00601 FSOUND_FX_COMPRESSOR,
00602 FSOUND_FX_DISTORTION,
00603 FSOUND_FX_ECHO,
00604 FSOUND_FX_FLANGER,
00605 FSOUND_FX_GARGLE,
00606 FSOUND_FX_I3DL2REVERB,
00607 FSOUND_FX_PARAMEQ,
00608 FSOUND_FX_WAVES_REVERB,
00609
00610 FSOUND_FX_MAX
00611 };
00612
00613
00614
00615
00616
00617
00618
00619
00620
00621
00622
00623
00624
00625
00626
00627
00628 enum FSOUND_SPEAKERMODES
00629 {
00630 FSOUND_SPEAKERMODE_DOLBYDIGITAL,
00631 FSOUND_SPEAKERMODE_HEADPHONES,
00632 FSOUND_SPEAKERMODE_MONO,
00633 FSOUND_SPEAKERMODE_QUAD,
00634 FSOUND_SPEAKERMODE_STEREO,
00635 FSOUND_SPEAKERMODE_SURROUND,
00636 FSOUND_SPEAKERMODE_DTS,
00637 FSOUND_SPEAKERMODE_PROLOGIC2,
00638 FSOUND_SPEAKERMODE_PROLOGIC2_INTERIOR
00639 };
00640
00641
00642
00643
00644
00645
00646
00647
00648
00649
00650
00651
00652
00653
00654
00655
00656
00657
00658
00659
00660 #define FSOUND_INIT_USEDEFAULTMIDISYNTH 0x0001
00661 #define FSOUND_INIT_GLOBALFOCUS 0x0002
00662 #define FSOUND_INIT_ENABLESYSTEMCHANNELFX 0x0004
00663 #define FSOUND_INIT_ACCURATEVULEVELS 0x0008
00664 #define FSOUND_INIT_PS2_DISABLECORE0REVERB 0x0010
00665 #define FSOUND_INIT_PS2_DISABLECORE1REVERB 0x0020
00666 #define FSOUND_INIT_PS2_SWAPDMACORES 0x0040
00667 #define FSOUND_INIT_DONTLATENCYADJUST 0x0080
00668 #define FSOUND_INIT_GC_INITLIBS 0x0100
00669 #define FSOUND_INIT_STREAM_FROM_MAIN_THREAD 0x0200
00670 #define FSOUND_INIT_PS2_USEVOLUMERAMPING 0x0400
00671 #define FSOUND_INIT_DSOUND_DEFERRED 0x0800
00672 #define FSOUND_INIT_DSOUND_HRTF_LIGHT 0x1000
00673 #define FSOUND_INIT_DSOUND_HRTF_FULL 0x2000
00674
00675
00676
00677
00678
00679
00680
00681
00682
00683
00684
00685
00686
00687 enum FSOUND_STREAM_NET_STATUS
00688 {
00689 FSOUND_STREAM_NET_NOTCONNECTED = 0,
00690 FSOUND_STREAM_NET_CONNECTING,
00691 FSOUND_STREAM_NET_BUFFERING,
00692 FSOUND_STREAM_NET_READY,
00693 FSOUND_STREAM_NET_ERROR
00694 };
00695
00696
00697
00698
00699
00700
00701
00702
00703
00704
00705
00706
00707
00708
00709 enum FSOUND_TAGFIELD_TYPE
00710 {
00711 FSOUND_TAGFIELD_VORBISCOMMENT = 0,
00712 FSOUND_TAGFIELD_ID3V1,
00713 FSOUND_TAGFIELD_ID3V2,
00714 FSOUND_TAGFIELD_SHOUTCAST,
00715 FSOUND_TAGFIELD_ICECAST,
00716 FSOUND_TAGFIELD_ASF
00717 };
00718
00719
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729
00730
00731
00732
00733 #define FSOUND_PROTOCOL_SHOUTCAST 0x00000001
00734 #define FSOUND_PROTOCOL_ICECAST 0x00000002
00735 #define FSOUND_PROTOCOL_HTTP 0x00000004
00736 #define FSOUND_FORMAT_MPEG 0x00010000
00737 #define FSOUND_FORMAT_OGGVORBIS 0x00020000
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749
00750
00751
00752
00753
00754 typedef struct _FSOUND_TOC_TAG
00755 {
00756 char name[4];
00757 int numtracks;
00758 int min[100];
00759 int sec[100];
00760 int frame[100];
00761
00762 } FSOUND_TOC_TAG;
00763
00764
00765
00766
00767
00768
00769 #ifdef __cplusplus
00770 extern "C" {
00771 #endif
00772
00773
00774
00775
00776
00777
00778
00779
00780
00781
00782 DLL_API signed char F_API FSOUND_SetOutput(int outputtype);
00783 DLL_API signed char F_API FSOUND_SetDriver(int driver);
00784 DLL_API signed char F_API FSOUND_SetMixer(int mixer);
00785 DLL_API signed char F_API FSOUND_SetBufferSize(int len_ms);
00786 DLL_API signed char F_API FSOUND_SetHWND(void *hwnd);
00787 DLL_API signed char F_API FSOUND_SetMinHardwareChannels(int min);
00788 DLL_API signed char F_API FSOUND_SetMaxHardwareChannels(int max);
00789 DLL_API signed char F_API FSOUND_SetMemorySystem(void *pool,
00790 int poollen,
00791 FSOUND_ALLOCCALLBACK useralloc,
00792 FSOUND_REALLOCCALLBACK userrealloc,
00793 FSOUND_FREECALLBACK userfree);
00794
00795
00796
00797
00798
00799
00800
00801
00802 DLL_API signed char F_API FSOUND_Init(int mixrate, int maxsoftwarechannels, unsigned int flags);
00803 DLL_API void F_API FSOUND_Close();
00804
00805
00806
00807
00808
00809 DLL_API void F_API FSOUND_Update();
00810
00811 DLL_API void F_API FSOUND_SetSpeakerMode(unsigned int speakermode);
00812 DLL_API void F_API FSOUND_SetSFXMasterVolume(int volume);
00813 DLL_API void F_API FSOUND_SetPanSeperation(float pansep);
00814 DLL_API void F_API FSOUND_File_SetCallbacks(FSOUND_OPENCALLBACK useropen,
00815 FSOUND_CLOSECALLBACK userclose,
00816 FSOUND_READCALLBACK userread,
00817 FSOUND_SEEKCALLBACK userseek,
00818 FSOUND_TELLCALLBACK usertell);
00819
00820
00821
00822
00823
00824 DLL_API int F_API FSOUND_GetError();
00825 DLL_API float F_API FSOUND_GetVersion();
00826 DLL_API int F_API FSOUND_GetOutput();
00827 DLL_API void * F_API FSOUND_GetOutputHandle();
00828 DLL_API int F_API FSOUND_GetDriver();
00829 DLL_API int F_API FSOUND_GetMixer();
00830 DLL_API int F_API FSOUND_GetNumDrivers();
00831 DLL_API const char * F_API FSOUND_GetDriverName(int id);
00832 DLL_API signed char F_API FSOUND_GetDriverCaps(int id, unsigned int *caps);
00833 DLL_API int F_API FSOUND_GetOutputRate();
00834 DLL_API int F_API FSOUND_GetMaxChannels();
00835 DLL_API int F_API FSOUND_GetMaxSamples();
00836 DLL_API int F_API FSOUND_GetSFXMasterVolume();
00837 DLL_API signed char F_API FSOUND_GetNumHWChannels(int *num2d, int *num3d, int *total);
00838 DLL_API int F_API FSOUND_GetChannelsPlaying();
00839 DLL_API float F_API FSOUND_GetCPUUsage();
00840 DLL_API void F_API FSOUND_GetMemoryStats(unsigned int *currentalloced, unsigned int *maxalloced);
00841
00842
00843
00844
00845
00846
00847
00848
00849
00850
00851
00852 DLL_API FSOUND_SAMPLE * F_API FSOUND_Sample_Load(int index, const char *name_or_data, unsigned int mode, int offset, int length);
00853 DLL_API FSOUND_SAMPLE * F_API FSOUND_Sample_Alloc(int index, int length, unsigned int mode, int deffreq, int defvol, int defpan, int defpri);
00854 DLL_API void F_API FSOUND_Sample_Free(FSOUND_SAMPLE *sptr);
00855 DLL_API signed char F_API FSOUND_Sample_Upload(FSOUND_SAMPLE *sptr, void *srcdata, unsigned int mode);
00856 DLL_API signed char F_API FSOUND_Sample_Lock(FSOUND_SAMPLE *sptr, int offset, int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2);
00857 DLL_API signed char F_API FSOUND_Sample_Unlock(FSOUND_SAMPLE *sptr, void *ptr1, void *ptr2, unsigned int len1, unsigned int len2);
00858
00859
00860
00861
00862
00863 DLL_API signed char F_API FSOUND_Sample_SetMode(FSOUND_SAMPLE *sptr, unsigned int mode);
00864 DLL_API signed char F_API FSOUND_Sample_SetLoopPoints(FSOUND_SAMPLE *sptr, int loopstart, int loopend);
00865 DLL_API signed char F_API FSOUND_Sample_SetDefaults(FSOUND_SAMPLE *sptr, int deffreq, int defvol, int defpan, int defpri);
00866 DLL_API signed char F_API FSOUND_Sample_SetDefaultsEx(FSOUND_SAMPLE *sptr, int deffreq, int defvol, int defpan, int defpri, int varfreq, int varvol, int varpan);
00867 DLL_API signed char F_API FSOUND_Sample_SetMinMaxDistance(FSOUND_SAMPLE *sptr, float min, float max);
00868 DLL_API signed char F_API FSOUND_Sample_SetMaxPlaybacks(FSOUND_SAMPLE *sptr, int max);
00869
00870
00871
00872
00873
00874 DLL_API FSOUND_SAMPLE * F_API FSOUND_Sample_Get(int sampno);
00875 DLL_API const char * F_API FSOUND_Sample_GetName(FSOUND_SAMPLE *sptr);
00876 DLL_API unsigned int F_API FSOUND_Sample_GetLength(FSOUND_SAMPLE *sptr);
00877 DLL_API signed char F_API FSOUND_Sample_GetLoopPoints(FSOUND_SAMPLE *sptr, int *loopstart, int *loopend);
00878 DLL_API signed char F_API FSOUND_Sample_GetDefaults(FSOUND_SAMPLE *sptr, int *deffreq, int *defvol, int *defpan, int *defpri);
00879 DLL_API signed char F_API FSOUND_Sample_GetDefaultsEx(FSOUND_SAMPLE *sptr, int *deffreq, int *defvol, int *defpan, int *defpri, int *varfreq, int *varvol, int *varpan);
00880 DLL_API unsigned int F_API FSOUND_Sample_GetMode(FSOUND_SAMPLE *sptr);
00881 DLL_API signed char F_API FSOUND_Sample_GetMinMaxDistance(FSOUND_SAMPLE *sptr, float *min, float *max);
00882
00883
00884
00885
00886
00887
00888
00889
00890
00891
00892
00893 DLL_API int F_API FSOUND_PlaySound(int channel, FSOUND_SAMPLE *sptr);
00894 DLL_API int F_API FSOUND_PlaySoundEx(int channel, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
00895 DLL_API signed char F_API FSOUND_StopSound(int channel);
00896
00897
00898
00899
00900
00901
00902 DLL_API signed char F_API FSOUND_SetFrequency(int channel, int freq);
00903 DLL_API signed char F_API FSOUND_SetVolume(int channel, int vol);
00904 DLL_API signed char F_API FSOUND_SetVolumeAbsolute(int channel, int vol);
00905 DLL_API signed char F_API FSOUND_SetPan(int channel, int pan);
00906 DLL_API signed char F_API FSOUND_SetSurround(int channel, signed char surround);
00907 DLL_API signed char F_API FSOUND_SetMute(int channel, signed char mute);
00908 DLL_API signed char F_API FSOUND_SetPriority(int channel, int priority);
00909 DLL_API signed char F_API FSOUND_SetReserved(int channel, signed char reserved);
00910 DLL_API signed char F_API FSOUND_SetPaused(int channel, signed char paused);
00911 DLL_API signed char F_API FSOUND_SetLoopMode(int channel, unsigned int loopmode);
00912 DLL_API signed char F_API FSOUND_SetCurrentPosition(int channel, unsigned int offset);
00913 DLL_API signed char F_API FSOUND_3D_SetAttributes(int channel, const float *pos, const float *vel);
00914 DLL_API signed char F_API FSOUND_3D_SetMinMaxDistance(int channel, float min, float max);
00915
00916
00917
00918
00919
00920 DLL_API signed char F_API FSOUND_IsPlaying(int channel);
00921 DLL_API int F_API FSOUND_GetFrequency(int channel);
00922 DLL_API int F_API FSOUND_GetVolume(int channel);
00923 DLL_API int F_API FSOUND_GetAmplitude(int channel);
00924 DLL_API int F_API FSOUND_GetPan(int channel);
00925 DLL_API signed char F_API FSOUND_GetSurround(int channel);
00926 DLL_API signed char F_API FSOUND_GetMute(int channel);
00927 DLL_API int F_API FSOUND_GetPriority(int channel);
00928 DLL_API signed char F_API FSOUND_GetReserved(int channel);
00929 DLL_API signed char F_API FSOUND_GetPaused(int channel);
00930 DLL_API unsigned int F_API FSOUND_GetLoopMode(int channel);
00931 DLL_API unsigned int F_API FSOUND_GetCurrentPosition(int channel);
00932 DLL_API FSOUND_SAMPLE * F_API FSOUND_GetCurrentSample(int channel);
00933 DLL_API signed char F_API FSOUND_GetCurrentLevels(int channel, float *l, float *r);
00934 DLL_API int F_API FSOUND_GetNumSubChannels(int channel);
00935 DLL_API int F_API FSOUND_GetSubChannel(int channel, int subchannel);
00936 DLL_API signed char F_API FSOUND_3D_GetAttributes(int channel, float *pos, float *vel);
00937 DLL_API signed char F_API FSOUND_3D_GetMinMaxDistance(int channel, float *min, float *max);
00938
00939
00940
00941
00942
00943
00944
00945
00946
00947
00948 DLL_API void F_API FSOUND_3D_Listener_SetAttributes(const float *pos, const float *vel, float fx, float fy, float fz, float tx, float ty, float tz);
00949 DLL_API void F_API FSOUND_3D_Listener_GetAttributes(float *pos, float *vel, float *fx, float *fy, float *fz, float *tx, float *ty, float *tz);
00950 DLL_API void F_API FSOUND_3D_Listener_SetCurrent(int current, int numlisteners);
00951 DLL_API void F_API FSOUND_3D_SetDopplerFactor(float scale);
00952 DLL_API void F_API FSOUND_3D_SetDistanceFactor(float scale);
00953 DLL_API void F_API FSOUND_3D_SetRolloffFactor(float scale);
00954
00955
00956
00957
00958
00959
00960
00961
00962
00963
00964
00965
00966
00967
00968
00969
00970
00971
00972
00973 DLL_API int F_API FSOUND_FX_Enable(int channel, unsigned int fxtype);
00974 DLL_API signed char F_API FSOUND_FX_Disable(int channel);
00975
00976 DLL_API signed char F_API FSOUND_FX_SetChorus(int fxid, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
00977 DLL_API signed char F_API FSOUND_FX_SetCompressor(int fxid, float Gain, float Attack, float Release, float Threshold, float Ratio, float Predelay);
00978 DLL_API signed char F_API FSOUND_FX_SetDistortion(int fxid, float Gain, float Edge, float PostEQCenterFrequency, float PostEQBandwidth, float PreLowpassCutoff);
00979 DLL_API signed char F_API FSOUND_FX_SetEcho(int fxid, float WetDryMix, float Feedback, float LeftDelay, float RightDelay, int PanDelay);
00980 DLL_API signed char F_API FSOUND_FX_SetFlanger(int fxid, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
00981 DLL_API signed char F_API FSOUND_FX_SetGargle(int fxid, int RateHz, int WaveShape);
00982 DLL_API signed char F_API FSOUND_FX_SetI3DL2Reverb(int fxid, int Room, int RoomHF, float RoomRolloffFactor, float DecayTime, float DecayHFRatio, int Reflections, float ReflectionsDelay, int Reverb, float ReverbDelay, float Diffusion, float Density, float HFReference);
00983 DLL_API signed char F_API FSOUND_FX_SetParamEQ(int fxid, float Center, float Bandwidth, float Gain);
00984 DLL_API signed char F_API FSOUND_FX_SetWavesReverb(int fxid, float InGain, float ReverbMix, float ReverbTime, float HighFreqRTRatio);
00985
00986
00987
00988
00989
00990
00991
00992
00993
00994
00995
00996
00997 DLL_API signed char F_API FSOUND_Stream_SetBufferSize(int ms);
00998
00999 DLL_API FSOUND_STREAM * F_API FSOUND_Stream_Open(const char *name_or_data, unsigned int mode, int offset, int length);
01000 DLL_API FSOUND_STREAM * F_API FSOUND_Stream_Create(FSOUND_STREAMCALLBACK callback, int length, unsigned int mode, int samplerate, void *userdata);
01001 DLL_API signed char F_API FSOUND_Stream_Close(FSOUND_STREAM *stream);
01002
01003 DLL_API int F_API FSOUND_Stream_Play(int channel, FSOUND_STREAM *stream);
01004 DLL_API int F_API FSOUND_Stream_PlayEx(int channel, FSOUND_STREAM *stream, FSOUND_DSPUNIT *dsp, signed char startpaused);
01005 DLL_API signed char F_API FSOUND_Stream_Stop(FSOUND_STREAM *stream);
01006
01007 DLL_API signed char F_API FSOUND_Stream_SetPosition(FSOUND_STREAM *stream, unsigned int position);
01008 DLL_API unsigned int F_API FSOUND_Stream_GetPosition(FSOUND_STREAM *stream);
01009 DLL_API signed char F_API FSOUND_Stream_SetTime(FSOUND_STREAM *stream, int ms);
01010 DLL_API int F_API FSOUND_Stream_GetTime(FSOUND_STREAM *stream);
01011 DLL_API int F_API FSOUND_Stream_GetLength(FSOUND_STREAM *stream);
01012 DLL_API int F_API FSOUND_Stream_GetLengthMs(FSOUND_STREAM *stream);
01013
01014 DLL_API signed char F_API FSOUND_Stream_SetMode(FSOUND_STREAM *stream, unsigned int mode);
01015 DLL_API unsigned int F_API FSOUND_Stream_GetMode(FSOUND_STREAM *stream);
01016 DLL_API signed char F_API FSOUND_Stream_SetLoopPoints(FSOUND_STREAM *stream, unsigned int loopstartpcm, unsigned int loopendpcm);
01017 DLL_API signed char F_API FSOUND_Stream_SetLoopCount(FSOUND_STREAM *stream, int count);
01018 DLL_API int F_API FSOUND_Stream_GetOpenState(FSOUND_STREAM *stream);
01019 DLL_API FSOUND_SAMPLE * F_API FSOUND_Stream_GetSample(FSOUND_STREAM *stream);
01020 DLL_API FSOUND_DSPUNIT * F_API FSOUND_Stream_CreateDSP(FSOUND_STREAM *stream, FSOUND_DSPCALLBACK callback, int priority, void *userdata);
01021
01022 DLL_API signed char F_API FSOUND_Stream_SetEndCallback(FSOUND_STREAM *stream, FSOUND_STREAMCALLBACK callback, void *userdata);
01023 DLL_API signed char F_API FSOUND_Stream_SetSyncCallback(FSOUND_STREAM *stream, FSOUND_STREAMCALLBACK callback, void *userdata);
01024
01025 DLL_API FSOUND_SYNCPOINT * F_API FSOUND_Stream_AddSyncPoint(FSOUND_STREAM *stream, unsigned int pcmoffset, const char *name);
01026 DLL_API signed char F_API FSOUND_Stream_DeleteSyncPoint(FSOUND_SYNCPOINT *point);
01027 DLL_API int F_API FSOUND_Stream_GetNumSyncPoints(FSOUND_STREAM *stream);
01028 DLL_API FSOUND_SYNCPOINT * F_API FSOUND_Stream_GetSyncPoint(FSOUND_STREAM *stream, int index);
01029 DLL_API char * F_API FSOUND_Stream_GetSyncPointInfo(FSOUND_SYNCPOINT *point, unsigned int *pcmoffset);
01030
01031 DLL_API signed char F_API FSOUND_Stream_SetSubStream(FSOUND_STREAM *stream, int index);
01032 DLL_API int F_API FSOUND_Stream_GetNumSubStreams(FSOUND_STREAM *stream);
01033 DLL_API signed char F_API FSOUND_Stream_SetSubStreamSentence(FSOUND_STREAM *stream, const int *sentencelist, int numitems);
01034
01035 DLL_API signed char F_API FSOUND_Stream_GetNumTagFields(FSOUND_STREAM *stream, int *num);
01036 DLL_API signed char F_API FSOUND_Stream_GetTagField(FSOUND_STREAM *stream, int num, int *type, char **name, void **value, int *length);
01037 DLL_API signed char F_API FSOUND_Stream_FindTagField(FSOUND_STREAM *stream, int type, const char *name, void **value, int *length);
01038
01039
01040
01041
01042
01043 DLL_API signed char F_API FSOUND_Stream_Net_SetProxy(const char *proxy);
01044 DLL_API char * F_API FSOUND_Stream_Net_GetLastServerStatus();
01045 DLL_API signed char F_API FSOUND_Stream_Net_SetBufferProperties(int buffersize, int prebuffer_percent, int rebuffer_percent);
01046 DLL_API signed char F_API FSOUND_Stream_Net_GetBufferProperties(int *buffersize, int *prebuffer_percent, int *rebuffer_percent);
01047 DLL_API signed char F_API FSOUND_Stream_Net_SetMetadataCallback(FSOUND_STREAM *stream, FSOUND_METADATACALLBACK callback, void *userdata);
01048 DLL_API signed char F_API FSOUND_Stream_Net_GetStatus(FSOUND_STREAM *stream, int *status, int *bufferpercentused, int *bitrate, unsigned int *flags);
01049
01050
01051
01052
01053
01054
01055
01056
01057
01058 DLL_API signed char F_API FSOUND_CD_Play(char drive, int track);
01059 DLL_API void F_API FSOUND_CD_SetPlayMode(char drive, signed char mode);
01060 DLL_API signed char F_API FSOUND_CD_Stop(char drive);
01061 DLL_API signed char F_API FSOUND_CD_SetPaused(char drive, signed char paused);
01062 DLL_API signed char F_API FSOUND_CD_SetVolume(char drive, int volume);
01063 DLL_API signed char F_API FSOUND_CD_SetTrackTime(char drive, unsigned int ms);
01064 DLL_API signed char F_API FSOUND_CD_OpenTray(char drive, signed char open);
01065
01066 DLL_API signed char F_API FSOUND_CD_GetPaused(char drive);
01067 DLL_API int F_API FSOUND_CD_GetTrack(char drive);
01068 DLL_API int F_API FSOUND_CD_GetNumTracks(char drive);
01069 DLL_API int F_API FSOUND_CD_GetVolume(char drive);
01070 DLL_API int F_API FSOUND_CD_GetTrackLength(char drive, int track);
01071 DLL_API int F_API FSOUND_CD_GetTrackTime(char drive);
01072
01073
01074
01075
01076
01077
01078
01079
01080
01081
01082 DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_Create(FSOUND_DSPCALLBACK callback, int priority, void *userdata);
01083 DLL_API void F_API FSOUND_DSP_Free(FSOUND_DSPUNIT *unit);
01084 DLL_API void F_API FSOUND_DSP_SetPriority(FSOUND_DSPUNIT *unit, int priority);
01085 DLL_API int F_API FSOUND_DSP_GetPriority(FSOUND_DSPUNIT *unit);
01086 DLL_API void F_API FSOUND_DSP_SetActive(FSOUND_DSPUNIT *unit, signed char active);
01087 DLL_API signed char F_API FSOUND_DSP_GetActive(FSOUND_DSPUNIT *unit);
01088
01089
01090
01091
01092
01093 DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetClearUnit();
01094 DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetSFXUnit();
01095 DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetMusicUnit();
01096 DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetFFTUnit();
01097 DLL_API FSOUND_DSPUNIT *F_API FSOUND_DSP_GetClipAndCopyUnit();
01098
01099
01100
01101
01102
01103
01104
01105
01106 DLL_API signed char F_API FSOUND_DSP_MixBuffers(void *destbuffer, void *srcbuffer, int len, int freq, int vol, int pan, unsigned int mode);
01107 DLL_API void F_API FSOUND_DSP_ClearMixBuffer();
01108 DLL_API int F_API FSOUND_DSP_GetBufferLength();
01109 DLL_API int F_API FSOUND_DSP_GetBufferLengthTotal();
01110 DLL_API float * F_API FSOUND_DSP_GetSpectrum();
01111
01112
01113
01114
01115
01116
01117
01118
01119
01120 DLL_API signed char F_API FSOUND_Reverb_SetProperties(const FSOUND_REVERB_PROPERTIES *prop);
01121 DLL_API signed char F_API FSOUND_Reverb_GetProperties(FSOUND_REVERB_PROPERTIES *prop);
01122 DLL_API signed char F_API FSOUND_Reverb_SetChannelProperties(int channel, const FSOUND_REVERB_CHANNELPROPERTIES *prop);
01123 DLL_API signed char F_API FSOUND_Reverb_GetChannelProperties(int channel, FSOUND_REVERB_CHANNELPROPERTIES *prop);
01124
01125
01126
01127
01128
01129
01130
01131
01132
01133 DLL_API signed char F_API FSOUND_Record_SetDriver(int outputtype);
01134 DLL_API int F_API FSOUND_Record_GetNumDrivers();
01135 DLL_API const char * F_API FSOUND_Record_GetDriverName(int id);
01136 DLL_API int F_API FSOUND_Record_GetDriver();
01137
01138
01139
01140
01141
01142 DLL_API signed char F_API FSOUND_Record_StartSample(FSOUND_SAMPLE *sptr, signed char loop);
01143 DLL_API signed char F_API FSOUND_Record_Stop();
01144 DLL_API int F_API FSOUND_Record_GetPosition();
01145
01146
01147
01148
01149
01150
01151
01152
01153
01154 DLL_API FMUSIC_MODULE * F_API FMUSIC_LoadSong(const char *name);
01155 DLL_API FMUSIC_MODULE * F_API FMUSIC_LoadSongEx(const char *name_or_data, int offset, int length, unsigned int mode, const int *samplelist, int samplelistnum);
01156 DLL_API int F_API FMUSIC_GetOpenState(FMUSIC_MODULE *mod);
01157 DLL_API signed char F_API FMUSIC_FreeSong(FMUSIC_MODULE *mod);
01158 DLL_API signed char F_API FMUSIC_PlaySong(FMUSIC_MODULE *mod);
01159 DLL_API signed char F_API FMUSIC_StopSong(FMUSIC_MODULE *mod);
01160 DLL_API void F_API FMUSIC_StopAllSongs();
01161
01162 DLL_API signed char F_API FMUSIC_SetZxxCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback);
01163 DLL_API signed char F_API FMUSIC_SetRowCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int rowstep);
01164 DLL_API signed char F_API FMUSIC_SetOrderCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int orderstep);
01165 DLL_API signed char F_API FMUSIC_SetInstCallback(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int instrument);
01166
01167 DLL_API signed char F_API FMUSIC_SetSample(FMUSIC_MODULE *mod, int sampno, FSOUND_SAMPLE *sptr);
01168 DLL_API signed char F_API FMUSIC_SetUserData(FMUSIC_MODULE *mod, void *userdata);
01169 DLL_API signed char F_API FMUSIC_OptimizeChannels(FMUSIC_MODULE *mod, int maxchannels, int minvolume);
01170
01171
01172
01173
01174
01175 DLL_API signed char F_API FMUSIC_SetReverb(signed char reverb);
01176 DLL_API signed char F_API FMUSIC_SetLooping(FMUSIC_MODULE *mod, signed char looping);
01177 DLL_API signed char F_API FMUSIC_SetOrder(FMUSIC_MODULE *mod, int order);
01178 DLL_API signed char F_API FMUSIC_SetPaused(FMUSIC_MODULE *mod, signed char pause);
01179 DLL_API signed char F_API FMUSIC_SetMasterVolume(FMUSIC_MODULE *mod, int volume);
01180 DLL_API signed char F_API FMUSIC_SetMasterSpeed(FMUSIC_MODULE *mode, float speed);
01181 DLL_API signed char F_API FMUSIC_SetPanSeperation(FMUSIC_MODULE *mod, float pansep);
01182
01183
01184
01185
01186
01187 DLL_API const char * F_API FMUSIC_GetName(FMUSIC_MODULE *mod);
01188 DLL_API int F_API FMUSIC_GetType(FMUSIC_MODULE *mod);
01189 DLL_API int F_API FMUSIC_GetNumOrders(FMUSIC_MODULE *mod);
01190 DLL_API int F_API FMUSIC_GetNumPatterns(FMUSIC_MODULE *mod);
01191 DLL_API int F_API FMUSIC_GetNumInstruments(FMUSIC_MODULE *mod);
01192 DLL_API int F_API FMUSIC_GetNumSamples(FMUSIC_MODULE *mod);
01193 DLL_API int F_API FMUSIC_GetNumChannels(FMUSIC_MODULE *mod);
01194 DLL_API FSOUND_SAMPLE * F_API FMUSIC_GetSample(FMUSIC_MODULE *mod, int sampno);
01195 DLL_API int F_API FMUSIC_GetPatternLength(FMUSIC_MODULE *mod, int orderno);
01196
01197
01198
01199
01200
01201 DLL_API signed char F_API FMUSIC_IsFinished(FMUSIC_MODULE *mod);
01202 DLL_API signed char F_API FMUSIC_IsPlaying(FMUSIC_MODULE *mod);
01203 DLL_API int F_API FMUSIC_GetMasterVolume(FMUSIC_MODULE *mod);
01204 DLL_API int F_API FMUSIC_GetGlobalVolume(FMUSIC_MODULE *mod);
01205 DLL_API int F_API FMUSIC_GetOrder(FMUSIC_MODULE *mod);
01206 DLL_API int F_API FMUSIC_GetPattern(FMUSIC_MODULE *mod);
01207 DLL_API int F_API FMUSIC_GetSpeed(FMUSIC_MODULE *mod);
01208 DLL_API int F_API FMUSIC_GetBPM(FMUSIC_MODULE *mod);
01209 DLL_API int F_API FMUSIC_GetRow(FMUSIC_MODULE *mod);
01210 DLL_API signed char F_API FMUSIC_GetPaused(FMUSIC_MODULE *mod);
01211 DLL_API int F_API FMUSIC_GetTime(FMUSIC_MODULE *mod);
01212 DLL_API int F_API FMUSIC_GetRealChannel(FMUSIC_MODULE *mod, int modchannel);
01213 DLL_API void * F_API FMUSIC_GetUserData(FMUSIC_MODULE *mod);
01214
01215 #ifdef __cplusplus
01216 }
01217 #endif
01218
01219 #endif