123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542 |
- //
- // The graphics engine GLXEngine. The unit of GXScene for Delphi
- //
- (*==========================================================================================
- FMOD Main header file. Copyright (c), FireLight Technologies Pty, Ltd. 1999-2003.
- ===========================================================================================
- NOTE: For the demos to run you must have either fmod.dll (in Windows)
- or libfmod-3.75.so (in Linux) installed.
- In Winapi.Windows, copy the fmod.dll file found in the api directory to either of
- the following locations (in order of preference)
- - your application directory
- - Windows\System (95/98) or WinNT\System32 (NT/2000/XP)
- In Linux, make sure you are signed in as root and copy the libfmod-3.75.so
- file from the api directory to your /usr/lib/ directory.
- Then via a command line, navigate to the /usr/lib/ directory and create
- a symbolic link between libfmod-3.75.so and libfmod.so. This is done with
- the following command (assuming you are in /usr/lib/)...
- ln -s libfmod-3.75.so libfmod.so.
- ============================================================================================*)
- unit GXS.Sounds.FMOD;
- interface
- uses
- System.SysUtils,
- {$IFDEF MSWINDOWS}
- Winapi.Windows,
- {$ENDIF}
- FMX.Dialogs,
- FMOD.Types;
- // ===============================================================================================
- // FUNCTION PROTOTYPES
- // ===============================================================================================
- { ================================== }
- { Library load/unload functions. }
- { ================================== }
- {
- If no library name is passed to FMOD_Load, then the default library name
- used.
- }
- function FMOD_Load(LibName: PChar = nil): boolean;
- procedure FMOD_Unload;
- { ================================== }
- { Initialization / Global functions. }
- { ================================== }
- {
- Pre FSOUND_Init functions. These can't be called after FSOUND_Init is
- called (they will fail). They set up FMOD system functionality.
- }
- var
- FSOUND_SetOutput: function(OutputType: TFSoundOutputTypes): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetDriver: function(Driver: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetMixer: function(Mixer: TFSoundMixerTypes): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetBufferSize: function(LenMs: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetHWND: function(Hwnd: THandle): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetMinHardwareChannels: function(Min: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetMaxHardwareChannels: function(Max: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetMemorySystem: function(Pool: Pointer; PoolLen: integer;
- UserAlloc: TFSoundAllocCallback; UserRealloc: TFSoundReallocCallback;
- UserFree: TFSoundFreeCallback): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Main initialization / closedown functions
- Note : Use FSOUND_INIT_USEDEFAULTMIDISYNTH with FSOUND_Init for software override with MIDI playback.
- : Use FSOUND_INIT_GLOBALFOCUS with FSOUND_Init to make sound audible
- no matter which window is in focus. (FSOUND_OUTPUT_DSOUND only)
- }
- var
- FSOUND_Init: function(MixRate: integer; MaxSoftwareChannels: integer;
- Flags: cardinal): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Close: procedure; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Runtime system level functions
- }
- var
- FSOUND_Update: procedure; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- // This is called to update 3d sound / non-realtime output
- FSOUND_SetSpeakerMode: procedure(SpeakerMode: cardinal);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetSFXMasterVolume: procedure(Volume: integer);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetPanSeperation: procedure(PanSep: single);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_File_SetCallbacks: procedure(OpenCallback: TFSoundOpenCallback;
- CloseCallback: TFSoundCloseCallback; ReadCallback: TFSoundReadCallback;
- SeekCallback: TFSoundSeekCallback; TellCallback: TFSoundTellCallback);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- System information functions
- }
- var
- FSOUND_GetError: function: TFModErrors; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetVersion: function: single; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetOutput: function: TFSoundOutputTypes;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetOutputHandle: function: Pointer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetDriver: function: integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetMixer: function: TFSoundMixerTypes;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetNumDrivers: function: integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetDriverName: function(Id: integer): PChar;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetDriverCaps: function(Id: integer; var Caps: cardinal): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- var
- FSOUND_GetOutputRate: function: integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetMaxChannels: function: integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetMaxSamples: function: integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetSpeakerMode: function: integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetSFXMasterVolume: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetNumHWChannels: function(var Num2D: integer; var Num3D: integer;
- var Total: integer): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetChannelsPlaying: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetCPUUsage: function: single; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_GetMemoryStats: procedure(var CurrentAlloced: cardinal;
- var MaxAlloced: cardinal); {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { =================================== }
- { Sample management / load functions. }
- { =================================== }
- {
- Sample creation and management functions
- Note : Use FSOUND_LOADMEMORY flag with FSOUND_Sample_Load to load from memory.
- Use FSOUND_LOADRAW flag with FSOUND_Sample_Load to treat as as raw pcm data.
- }
- var
- FSOUND_Sample_Load: function(Index: integer; const NameOrData: PChar;
- Mode: cardinal; Offset: integer; Length: integer): PFSoundSample;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_Alloc: function(Index: integer; Length: integer; Mode: cardinal;
- DefFreq: integer; DefVol: integer; DefPan: integer; DefPri: integer)
- : PFSoundSample; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_Free: procedure(Sptr: PFSoundSample);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_Upload: function(Sptr: PFSoundSample; SrcData: Pointer;
- Mode: cardinal): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_Lock: function(Sptr: PFSoundSample; Offset: integer;
- Length: integer; var Ptr1: Pointer; var Ptr2: Pointer; var Len1: cardinal;
- var Len2: cardinal): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_Unlock: function(Sptr: PFSoundSample; Ptr1: Pointer;
- Ptr2: Pointer; Len1: cardinal; Len2: cardinal): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Sample control functions
- }
- var
- FSOUND_Sample_SetMode: function(Sptr: PFSoundSample; Mode: cardinal)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_SetLoopPoints: function(Sptr: PFSoundSample;
- LoopStart, LoopEnd: integer): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_Sample_SetDefaults: function(Sptr: PFSoundSample;
- DefFreq, DefVol, DefPan, DefPri: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_SetDefaultsEx: function(Sptr: PFSoundSample;
- DefFreq, DefVol, DefPan, DefPri, VarFreq, VarVol, VarPan: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_SetMinMaxDistance: function(Sptr: PFSoundSample;
- Min, Max: single): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_SetMaxPlaybacks: function(Sptr: PFSoundSample; Max: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Sample information functions
- }
- var
- FSOUND_Sample_Get: function(SampNo: integer): PFSoundSample;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetName: function(Sptr: PFSoundSample): PChar;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetLength: function(Sptr: PFSoundSample): cardinal;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetLoopPoints: function(Sptr: PFSoundSample;
- var LoopStart: integer; var LoopEnd: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetDefaults: function(Sptr: PFSoundSample; var DefFreq: integer;
- var DefVol: integer; var DefPan: integer; var DefPri: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetDefaultsEx: function(Sptr: PFSoundSample;
- var DefFreq: integer; var DefVol: integer; var DefPan: integer;
- var DefPri: integer; var VarFreq: integer; var VarVol: integer; var VarPan)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetMode: function(Sptr: PFSoundSample): cardinal;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Sample_GetMinMaxDistance: function(Sptr: PFSoundSample;
- var Min: single; var Max: single): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { ============================ }
- { Channel control functions. }
- { ============================ }
- {
- Playing and stopping sounds.
- Note : Use FSOUND_FREE as the 'channel' variable, to let FMOD pick a free channel for you.
- Use FSOUND_ALL as the 'channel' variable to control ALL channels with one function call!
- }
- var
- FSOUND_PlaySound: function(Channel: integer; Sptr: PFSoundSample): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_PlaySoundEx: function(Channel: integer; Sptr: PFSoundSample;
- Dsp: PFSoundDSPUnit; StartPaused: bytebool): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_StopSound: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Functions to control playback of a channel.
- }
- var
- FSOUND_SetFrequency: function(Channel: integer; Freq: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetVolume: function(Channel: integer; Vol: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetVolumeAbsolute: function(Channel: integer; Vol: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetPan: function(Channel: integer; Pan: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetSurround: function(Channel: integer; Surround: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetMute: function(Channel: integer; Mute: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetPriority: function(Channel: integer; Priority: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetReserved: function(Channel: integer; Reserved: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetPaused: function(Channel: integer; Paused: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetLoopMode: function(Channel: integer; LoopMode: cardinal): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_SetCurrentPosition: function(Channel: integer; Offset: cardinal)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_SetAttributes: function(Channel: integer; Pos: PFSoundVector;
- Vel: PFSoundVector): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_SetMinMaxDistance: function(Channel: integer; Min: single;
- Max: single): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Channel information functions
- }
- var
- FSOUND_IsPlaying: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetFrequency: function(Channel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetVolume: function(Channel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetAmplitude: function(Channel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetPan: function(Channel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetSurround: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetMute: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetPriority: function(Channel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetReserved: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetPaused: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetLoopMode: function(Channel: integer): cardinal;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetCurrentPosition: function(Channel: integer): cardinal;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetCurrentSample: function(Channel: integer): PFSoundSample;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetCurrentLevels: function(Channel: integer; L, R: PSingle): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetNumSubChannels: function(Channel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_GetSubChannel: function(Channel: integer; SubChannel: integer)
- : integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_GetAttributes: function(Channel: integer; Pos: PFSoundVector;
- Vel: PFSoundVector): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_GetMinMaxDistance: function(Channel: integer; var Min: single;
- var Max: single): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { =================== }
- { 3D sound functions. }
- { =================== }
- {
- See also 3d sample and channel based functions above.
- Call FSOUND_Update once a frame to process 3d information.
- }
- var
- FSOUND_3D_Listener_SetCurrent: procedure(current: integer);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_Listener_SetAttributes: procedure(Pos: PFSoundVector;
- Vel: PFSoundVector; fx: single; fy: single; fz: single; tx: single;
- ty: single; tz: single); {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_Listener_GetAttributes: procedure(Pos: PFSoundVector;
- Vel: PFSoundVector; fx: PSingle; fy: PSingle; fz: PSingle; tx: PSingle;
- ty: PSingle; tz: PSingle); {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_SetDopplerFactor: procedure(Scale: single);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_SetDistanceFactor: procedure(Scale: single);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_3D_SetRolloffFactor: procedure(Scale: single);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { =================== }
- { FX functions. }
- { =================== }
- {
- Functions to control DX8 only effects processing.
- - FX enabled samples can only be played once at a time, not multiple times at once.
- - Sounds have to be created with FSOUND_HW2D or FSOUND_HW3D for this to work.
- - FSOUND_INIT_ENABLESYSTEMCHANNELFX can be used to apply hardware effect processing to the
- global mixed output of FMOD's software channels.
- - FSOUND_FX_Enable returns an FX handle that you can use to alter fx parameters.
- - FSOUND_FX_Enable can be called multiple times in a row, even on the same FX type,
- it will return a unique handle for each FX.
- - FSOUND_FX_Enable cannot be called if the sound is playing or locked.
- - Stopping or starting a sound resets all FX and they must be re-enabled each time
- if this happens.
- }
- var
- FSOUND_FX_Enable: function(Channel: integer; fx: TFSoundFXModes): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF}; { Set bits to enable following fx }
- FSOUND_FX_Disable: function(Channel: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetChorus: function(FXId: integer; WetDryMix, Depth, Feedback,
- Frequency: single; Waveform: integer; Delay: single; Phase: integer)
- : bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetCompressor: function(FXId: integer;
- Gain, Attack, Release, Threshold, Ratio, Predelay: single): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetDistortion: function(FXId: integer;
- Gain, Edge, PostEQCenterFrequency, PostEQBandwidth, PreLowpassCutoff
- : single): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetEcho: function(FXId: integer; WetDryMix, Feedback, LeftDelay,
- RightDelay: single; PanDelay: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetFlanger: function(FXId: integer;
- WetDryMix, Depth, Feedback, Frequency: single; Waveform: integer;
- Delay: single; Phase: integer): bytebool; {$IFDEF UNIX} cdecl
- {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetGargle: function(FXId, RateHz, WaveShape: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetI3DL2Reverb: function(FXId, Room, RoomHF: integer;
- RoomRolloffFactor, DecayTime, DecayHFRatio: single; Reflections: integer;
- ReflectionsDelay: single; Reverb: integer; ReverbDelay, Diffusion, Density,
- HFReference: single): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetParamEQ: function(FXId: integer; Center, Bandwidth, Gain: single)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_FX_SetWavesReverb: function(FXId: integer;
- InGain, ReverbMix, ReverbTime, HighFreqRTRatio: single): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { ========================= }
- { File Streaming functions. }
- { ========================= }
- {
- Note : Use FSOUND_LOADMEMORY flag with FSOUND_Stream_Open to stream from memory.
- Use FSOUND_LOADRAW flag with FSOUND_Stream_Open to treat stream as raw pcm data.
- Use FSOUND_MPEGACCURATE flag with FSOUND_Stream_Open to open mpegs in 'accurate mode' for settime/gettime/getlengthms.
- Use FSOUND_FREE as the 'channel' variable, to let FMOD pick a free channel for you.
- }
- var
- // call this before opening streams, not after
- FSOUND_Stream_SetBufferSize: function(Ms: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Open: function(const name_or_data: PChar; Mode: cardinal;
- Offset: integer; Length: integer): PFSoundStream;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Create: function(Callback: TFSoundStreamCallback;
- Length: integer; Mode: cardinal; SampleRate: integer; UserData: integer)
- : PFSoundStream;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Close: function(Stream: PFSoundStream): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Play: function(Channel: integer; Stream: PFSoundStream)
- : integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_PlayEx: function(Channel: integer; Stream: PFSoundStream;
- Dsp: PFSoundDSPUnit; StartPaused: bytebool): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Stop: function(Stream: PFSoundStream): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetPosition: function(Stream: PFSoundStream; Position: cardinal)
- : bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetPosition: function(Stream: PFSoundStream): cardinal;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetTime: function(Stream: PFSoundStream; Ms: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetTime: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetLength: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetLengthMs: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetMode: function(Stream: PFSoundStream; Mode: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetMode: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetLoopPoints: function(Stream: PFSoundStream;
- LoopStartPCM, LoopEndPCM: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetLoopCount: function(Stream: PFSoundStream; Count: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetOpenState: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetSample: function(Stream: PFSoundStream): PFSoundSample;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { Every stream contains a sample to play back on }
- FSOUND_Stream_CreateDSP: function(Stream: PFSoundStream;
- Callback: TFSoundDSPCallback; Priority: integer; Param: integer)
- : PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetEndCallback: function(Stream: PFSoundStream;
- Callback: TFSoundStreamCallback; UserData: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetSyncCallback: function(Stream: PFSoundStream;
- Callback: TFSoundStreamCallback; UserData: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_AddSyncPoint: function(Stream: PFSoundStream;
- PCMOffset: cardinal; Name: PChar): PFSyncPoint;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_DeleteSyncPoint: function(Point: PFSyncPoint): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetNumSyncPoints: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetSyncPoint: function(Stream: PFSoundStream; Index: integer)
- : PFSyncPoint; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetSyncPointInfo: function(Point: PFSyncPoint;
- var PCMOffset: cardinal): integer; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_Stream_SetSubStream: function(Stream: PFSoundStream; Index: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetNumSubStreams: function(Stream: PFSoundStream): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_SetSubStreamSentence: function(Stream: PFSoundStream;
- var sentencelist: cardinal; numitems: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetNumTagFields: function(Stream: PFSoundStream;
- var Num: integer): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_GetTagField: function(Stream: PFSoundStream; Num: integer;
- var _Type: TFSoundTagFieldType; var Name: PChar; var Value: Pointer;
- var Length: integer): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_Stream_FindTagField: function(Stream: PFSoundStream;
- _Type: TFSoundTagFieldType; Name: PChar; var Value: Pointer;
- var Length: integer): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_Stream_Net_SetProxy: function(Proxy: PChar): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Net_GetLastServerStatus: function: PChar;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Net_SetBufferProperties: function(BufferSize: integer;
- PreBuffer_Percent: integer; ReBuffer_Percent: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Net_GetBufferProperties: function(var BufferSize: integer;
- var PreBuffer_Percent: integer; var ReBuffer_Percent: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Net_SetMetadataCallback: function(Stream: PFSoundStream;
- Callback: TFMetaDataCallback; UserData: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Stream_Net_GetStatus: function(Stream: PFSoundStream;
- var Status: TFSoundStreamNetStatus; var BufferPercentUsed: integer;
- var BitRate: integer; var Flags: cardinal): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { =================== }
- { CD audio functions. }
- { =================== }
- {
- Note : 0 = default cdrom. Otherwise specify the drive letter, for example. 'D'.
- }
- var
- FSOUND_CD_Play: function(Drive: byte; Track: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_SetPlayMode: procedure(Drive: byte; Mode: integer);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_Stop: function(Drive: byte): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_SetPaused: function(Drive: byte; Paused: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_SetVolume: function(Drive: byte; Volume: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_SetTrackTime: function(Drive: byte; Ms: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_OpenTray: function(Drive: byte; Open: byte): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- var
- FSOUND_CD_GetPaused: function(Drive: byte): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_GetTrack: function(Drive: byte): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_GetNumTracks: function(Drive: byte): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_GetVolume: function(Drive: byte): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_GetTrackLength: function(Drive: byte; Track: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_CD_GetTrackTime: function(Drive: byte): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { ============== }
- { DSP functions. }
- { ============== }
- {
- DSP Unit control and information functions.
- }
- var
- FSOUND_DSP_Create: function(Callback: TFSoundDSPCallback; Priority: integer;
- Param: integer): PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_Free: procedure(DSPUnit: PFSoundDSPUnit);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_SetPriority: procedure(DSPUnit: PFSoundDSPUnit; Priority: integer);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_GetPriority: function(DSPUnit: PFSoundDSPUnit): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_SetActive: procedure(DSPUnit: PFSoundDSPUnit; Active: bytebool);
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_GetActive: function(DSPUnit: PFSoundDSPUnit): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Functions to get hold of FSOUND 'system DSP unit' handles.
- }
- var
- FSOUND_DSP_GetClearUnit: function: PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_GetSFXUnit: function: PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_GetMusicUnit: function: PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_GetClipAndCopyUnit: function: PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_GetFFTUnit: function: PFSoundDSPUnit;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Miscellaneous DSP functions
- Note for the spectrum analysis function to work, you have to enable the FFT DSP unit with
- the following code FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), TRUE);
- It is off by default to save cpu usage.
- }
- var
- FSOUND_DSP_MixBuffers: function(DestBuffer: Pointer; SrcBuffer: Pointer;
- Len: integer; Freq: integer; Vol: integer; Pan: integer; Mode: cardinal)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_DSP_ClearMixBuffer: procedure; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_DSP_GetBufferLength: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF}; { Length of each DSP update }
- FSOUND_DSP_GetBufferLengthTotal: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { Total buffer length due to FSOUND_SetBufferSize }
- FSOUND_DSP_GetSpectrum: function: PSingle;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { Array of 512 floats - call FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), TRUE)) for this to work. }
- { ========================================================================== }
- { Reverb functions. (eax2/eax3 reverb) (NOT SUPPORTED IN LINUX/CE) }
- { ========================================================================== }
- {
- See structures above for definitions and information on the reverb parameters.
- }
- var
- FSOUND_Reverb_SetProperties: function(const Prop: TFSoundReverbProperties)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Reverb_GetProperties: function(var Prop: TFSoundReverbProperties)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Reverb_SetChannelProperties: function(Channel: integer;
- var Prop: TFSoundReverbChannelProperties): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Reverb_GetChannelProperties: function(Channel: integer;
- var Prop: TFSoundReverbChannelProperties): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { ================================================ }
- { Recording functions (NOT SUPPORTED IN LINUX/MAC) }
- { ================================================ }
- {
- Recording initialization functions
- }
- var
- FSOUND_Record_SetDriver: function(OutputType: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Record_GetNumDrivers: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Record_GetDriverName: function(Id: integer): PChar;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Record_GetDriver: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Recording functionality. Only one recording session will work at a time.
- }
- var
- FSOUND_Record_StartSample: function(Sptr: PFSoundSample; Loop: bytebool)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FSOUND_Record_Stop: function: bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FSOUND_Record_GetPosition: function: integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- { ============================================================================================= }
- { FMUSIC API (MOD,S3M,XM,IT,MIDI PLAYBACK) }
- { ============================================================================================= }
- {
- Song management / playback functions.
- }
- var
- FMUSIC_LoadSong: function(const Name: PChar): PFMusicModule;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_LoadSongEx: function(name_or_data: Pointer; Offset: integer;
- Length: integer; Mode: cardinal; var SampleList: integer;
- SampleListNum: integer): PFMusicModule; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FMUSIC_GetOpenState: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_FreeSong: function(Module: PFMusicModule): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_PlaySong: function(Module: PFMusicModule): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_StopSong: function(Module: PFMusicModule): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_StopAllSongs: procedure; {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- var
- FMUSIC_SetZxxCallback: function(Module: PFMusicModule;
- Callback: TFMusicCallback): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FMUSIC_SetRowCallback: function(Module: PFMusicModule;
- Callback: TFMusicCallback; RowStep: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetOrderCallback: function(Module: PFMusicModule;
- Callback: TFMusicCallback; OrderStep: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetInstCallback: function(Module: PFMusicModule;
- Callback: TFMusicCallback; Instrument: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- var
- FMUSIC_SetSample: function(Module: PFMusicModule; SampNo: integer;
- Sptr: PFSoundSample): bytebool; {$IFDEF UNIX} cdecl {$ELSE} stdcall
- {$ENDIF};
- FMUSIC_SetUserData: function(Module: PFMusicModule; UserData: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_OptimizeChannels: function(Module: PFMusicModule; MaxChannels: integer;
- MinVolume: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Runtime song functions.
- }
- var
- FMUSIC_SetReverb: function(Reverb: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetLooping: function(Module: PFMusicModule; Looping: bytebool)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetOrder: function(Module: PFMusicModule; Order: integer): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetPaused: function(Module: PFMusicModule; Pause: bytebool): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetMasterVolume: function(Module: PFMusicModule; Volume: integer)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetMasterSpeed: function(Module: PFMusicModule; Speed: single)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_SetPanSeperation: function(Module: PFMusicModule; PanSep: single)
- : bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Static song information functions.
- }
- var
- FMUSIC_GetName: function(Module: PFMusicModule): PChar;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetType: function(Module: PFMusicModule): TFMusicTypes;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetNumOrders: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetNumPatterns: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetNumInstruments: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetNumSamples: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetNumChannels: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetSample: function(Module: PFMusicModule; SampNo: integer)
- : PFSoundSample;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetPatternLength: function(Module: PFMusicModule;
- OrderNo: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- {
- Runtime song information.
- }
- var
- FMUSIC_IsFinished: function(Module: PFMusicModule): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_IsPlaying: function(Module: PFMusicModule): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetMasterVolume: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetGlobalVolume: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetOrder: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetPattern: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetSpeed: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetBPM: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetRow: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetPaused: function(Module: PFMusicModule): bytebool;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetTime: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetRealChannel: function(Module: PFMusicModule;
- ModChannel: integer): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- FMUSIC_GetUserData: function(Module: PFMusicModule): integer;
- {$IFDEF UNIX} cdecl {$ELSE} stdcall {$ENDIF};
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- implementation
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- //----------------------------------------------------------------------
- {$IFDEF UNIX}
- {$IFDEF LINUX}
- uses
- Libc;
- {$ENDIF}
- uses
- dynlibs;
- {$ENDIF}
- const
- {$IFDEF LINUX}
- FMOD_DLL = 'libfmod.so';
- {$ELSE}
- {$IFDEF MSWINDOWS}
- FMOD_DLL = 'fmod.dll';
- {$ENDIF}
- {$IFDEF DARWIN}
- FMOD_DLL = 'fmod.dylib';
- {$ENDIF}
- {$ENDIF}
- type
- {$IFDEF UNIX}
- TFMODModuleHandle = TLibHandle;
- {$ELSE}
- TFMODModuleHandle = HINST;
- {$ENDIF}
- const
- INVALID_MODULEHANDLE_VALUE = TFMODModuleHandle(0);
- var
- FMODHandle: TFMODModuleHandle;
- function GetAddress(Handle: TFMODModuleHandle; FuncName: PChar): Pointer;
- begin
- Result := GetProcAddress(Handle, FuncName);
- if not Assigned(Result) then
- ShowMessage(Format('Failed to find "%s" in "%s"', [FuncName, FMOD_DLL]));
- end;
- function FMOD_Load(LibName: PChar): boolean;
- begin
- Result := False;
- { Make sure the previous library is unloaded }
- FMOD_Unload;
- { If no library name given, use the default library names }
- if LibName = nil then
- LibName := FMOD_DLL;
- { Load the library }
- FMODHandle := INVALID_MODULEHANDLE_VALUE;
- FMODHandle := LoadLibrary(LibName);
- if FMODHandle = INVALID_MODULEHANDLE_VALUE then
- Exit;
- { Get all the function addresses from the library }
- {$IFDEF MSWINDOWS}
- FMUSIC_FreeSong := GetAddress(FMODHandle, '_FMUSIC_FreeSong@4');
- FMUSIC_GetBPM := GetAddress(FMODHandle, '_FMUSIC_GetBPM@4');
- FMUSIC_GetGlobalVolume := GetAddress(FMODHandle, '_FMUSIC_GetGlobalVolume@4');
- FMUSIC_GetMasterVolume := GetAddress(FMODHandle, '_FMUSIC_GetMasterVolume@4');
- FMUSIC_GetName := GetAddress(FMODHandle, '_FMUSIC_GetName@4');
- FMUSIC_GetNumChannels := GetAddress(FMODHandle, '_FMUSIC_GetNumChannels@4');
- FMUSIC_GetNumInstruments := GetAddress(FMODHandle,
- '_FMUSIC_GetNumInstruments@4');
- FMUSIC_GetNumOrders := GetAddress(FMODHandle, '_FMUSIC_GetNumOrders@4');
- FMUSIC_GetNumPatterns := GetAddress(FMODHandle, '_FMUSIC_GetNumPatterns@4');
- FMUSIC_GetNumSamples := GetAddress(FMODHandle, '_FMUSIC_GetNumSamples@4');
- FMUSIC_GetOpenState := GetAddress(FMODHandle, '_FMUSIC_GetOpenState@4');
- FMUSIC_GetOrder := GetAddress(FMODHandle, '_FMUSIC_GetOrder@4');
- FMUSIC_GetPattern := GetAddress(FMODHandle, '_FMUSIC_GetPattern@4');
- FMUSIC_GetPatternLength := GetAddress(FMODHandle,
- '_FMUSIC_GetPatternLength@8');
- FMUSIC_GetPaused := GetAddress(FMODHandle, '_FMUSIC_GetPaused@4');
- FMUSIC_GetRealChannel := GetAddress(FMODHandle, '_FMUSIC_GetRealChannel@8');
- FMUSIC_GetRow := GetAddress(FMODHandle, '_FMUSIC_GetRow@4');
- FMUSIC_GetSample := GetAddress(FMODHandle, '_FMUSIC_GetSample@8');
- FMUSIC_GetSpeed := GetAddress(FMODHandle, '_FMUSIC_GetSpeed@4');
- FMUSIC_GetTime := GetAddress(FMODHandle, '_FMUSIC_GetTime@4');
- FMUSIC_GetType := GetAddress(FMODHandle, '_FMUSIC_GetType@4');
- FMUSIC_GetUserData := GetAddress(FMODHandle, '_FMUSIC_GetUserData@4');
- FMUSIC_IsFinished := GetAddress(FMODHandle, '_FMUSIC_IsFinished@4');
- FMUSIC_IsPlaying := GetAddress(FMODHandle, '_FMUSIC_IsPlaying@4');
- FMUSIC_LoadSong := GetAddress(FMODHandle, '_FMUSIC_LoadSong@4');
- FMUSIC_LoadSongEx := GetAddress(FMODHandle, '_FMUSIC_LoadSongEx@24');
- FMUSIC_OptimizeChannels := GetAddress(FMODHandle,
- '_FMUSIC_OptimizeChannels@12');
- FMUSIC_PlaySong := GetAddress(FMODHandle, '_FMUSIC_PlaySong@4');
- FMUSIC_SetInstCallback := GetAddress(FMODHandle,
- '_FMUSIC_SetInstCallback@12');
- FMUSIC_SetLooping := GetAddress(FMODHandle, '_FMUSIC_SetLooping@8');
- FMUSIC_SetMasterSpeed := GetAddress(FMODHandle, '_FMUSIC_SetMasterSpeed@8');
- FMUSIC_SetMasterVolume := GetAddress(FMODHandle, '_FMUSIC_SetMasterVolume@8');
- FMUSIC_SetOrder := GetAddress(FMODHandle, '_FMUSIC_SetOrder@8');
- FMUSIC_SetOrderCallback := GetAddress(FMODHandle,
- '_FMUSIC_SetOrderCallback@12');
- FMUSIC_SetPanSeperation := GetAddress(FMODHandle,
- '_FMUSIC_SetPanSeperation@8');
- FMUSIC_SetPaused := GetAddress(FMODHandle, '_FMUSIC_SetPaused@8');
- FMUSIC_SetReverb := GetAddress(FMODHandle, '_FMUSIC_SetReverb@4');
- FMUSIC_SetRowCallback := GetAddress(FMODHandle, '_FMUSIC_SetRowCallback@12');
- FMUSIC_SetSample := GetAddress(FMODHandle, '_FMUSIC_SetSample@12');
- FMUSIC_SetUserData := GetAddress(FMODHandle, '_FMUSIC_SetUserData@8');
- FMUSIC_SetZxxCallback := GetAddress(FMODHandle, '_FMUSIC_SetZxxCallback@8');
- FMUSIC_StopAllSongs := GetAddress(FMODHandle, '_FMUSIC_StopAllSongs@0');
- FMUSIC_StopSong := GetAddress(FMODHandle, '_FMUSIC_StopSong@4');
- FSOUND_3D_GetAttributes := GetAddress(FMODHandle,
- '_FSOUND_3D_GetAttributes@12');
- FSOUND_3D_GetMinMaxDistance := GetAddress(FMODHandle,
- '_FSOUND_3D_GetMinMaxDistance@12');
- FSOUND_3D_Listener_GetAttributes := GetAddress(FMODHandle,
- '_FSOUND_3D_Listener_GetAttributes@32');
- FSOUND_3D_Listener_SetAttributes := GetAddress(FMODHandle,
- '_FSOUND_3D_Listener_SetAttributes@32');
- FSOUND_3D_Listener_SetCurrent := GetAddress(FMODHandle,
- '_FSOUND_3D_Listener_SetCurrent@8');
- FSOUND_3D_SetAttributes := GetAddress(FMODHandle,
- '_FSOUND_3D_SetAttributes@12');
- FSOUND_3D_SetDistanceFactor := GetAddress(FMODHandle,
- '_FSOUND_3D_SetDistanceFactor@4');
- FSOUND_3D_SetDopplerFactor := GetAddress(FMODHandle,
- '_FSOUND_3D_SetDopplerFactor@4');
- FSOUND_3D_SetMinMaxDistance := GetAddress(FMODHandle,
- '_FSOUND_3D_SetMinMaxDistance@12');
- FSOUND_3D_SetRolloffFactor := GetAddress(FMODHandle,
- '_FSOUND_3D_SetRolloffFactor@4');
- // FSOUND_CD_Eject := GetAddress(FMODHandle,'_FSOUND_CD_Eject@4');
- FSOUND_CD_GetNumTracks := GetAddress(FMODHandle, '_FSOUND_CD_GetNumTracks@4');
- FSOUND_CD_GetPaused := GetAddress(FMODHandle, '_FSOUND_CD_GetPaused@4');
- FSOUND_CD_GetTrack := GetAddress(FMODHandle, '_FSOUND_CD_GetTrack@4');
- FSOUND_CD_GetTrackLength := GetAddress(FMODHandle,
- '_FSOUND_CD_GetTrackLength@8');
- FSOUND_CD_GetTrackTime := GetAddress(FMODHandle, '_FSOUND_CD_GetTrackTime@4');
- FSOUND_CD_GetVolume := GetAddress(FMODHandle, '_FSOUND_CD_GetVolume@4');
- FSOUND_CD_OpenTray := GetAddress(FMODHandle, '_FSOUND_CD_OpenTray@8');
- FSOUND_CD_Play := GetAddress(FMODHandle, '_FSOUND_CD_Play@8');
- FSOUND_CD_SetPaused := GetAddress(FMODHandle, '_FSOUND_CD_SetPaused@8');
- FSOUND_CD_SetPlayMode := GetAddress(FMODHandle, '_FSOUND_CD_SetPlayMode@8');
- FSOUND_CD_SetTrackTime := GetAddress(FMODHandle, '_FSOUND_CD_SetTrackTime@8');
- FSOUND_CD_SetVolume := GetAddress(FMODHandle, '_FSOUND_CD_SetVolume@8');
- FSOUND_CD_Stop := GetAddress(FMODHandle, '_FSOUND_CD_Stop@4');
- FSOUND_Close := GetAddress(FMODHandle, '_FSOUND_Close@0');
- FSOUND_DSP_ClearMixBuffer := GetAddress(FMODHandle,
- '_FSOUND_DSP_ClearMixBuffer@0');
- FSOUND_DSP_Create := GetAddress(FMODHandle, '_FSOUND_DSP_Create@12');
- FSOUND_DSP_Free := GetAddress(FMODHandle, '_FSOUND_DSP_Free@4');
- FSOUND_DSP_GetActive := GetAddress(FMODHandle, '_FSOUND_DSP_GetActive@4');
- FSOUND_DSP_GetBufferLength := GetAddress(FMODHandle,
- '_FSOUND_DSP_GetBufferLength@0');
- FSOUND_DSP_GetBufferLengthTotal := GetAddress(FMODHandle,
- '_FSOUND_DSP_GetBufferLengthTotal@0');
- FSOUND_DSP_GetClearUnit := GetAddress(FMODHandle,
- '_FSOUND_DSP_GetClearUnit@0');
- FSOUND_DSP_GetClipAndCopyUnit := GetAddress(FMODHandle,
- '_FSOUND_DSP_GetClipAndCopyUnit@0');
- FSOUND_DSP_GetFFTUnit := GetAddress(FMODHandle, '_FSOUND_DSP_GetFFTUnit@0');
- FSOUND_DSP_GetMusicUnit := GetAddress(FMODHandle,
- '_FSOUND_DSP_GetMusicUnit@0');
- FSOUND_DSP_GetPriority := GetAddress(FMODHandle, '_FSOUND_DSP_GetPriority@4');
- FSOUND_DSP_GetSFXUnit := GetAddress(FMODHandle, '_FSOUND_DSP_GetSFXUnit@0');
- FSOUND_DSP_GetSpectrum := GetAddress(FMODHandle, '_FSOUND_DSP_GetSpectrum@0');
- FSOUND_DSP_MixBuffers := GetAddress(FMODHandle, '_FSOUND_DSP_MixBuffers@28');
- FSOUND_DSP_SetActive := GetAddress(FMODHandle, '_FSOUND_DSP_SetActive@8');
- FSOUND_DSP_SetPriority := GetAddress(FMODHandle, '_FSOUND_DSP_SetPriority@8');
- FSOUND_File_SetCallbacks := GetAddress(FMODHandle,
- '_FSOUND_File_SetCallbacks@20');
- FSOUND_FX_Disable := GetAddress(FMODHandle, '_FSOUND_FX_Disable@4');
- FSOUND_FX_Enable := GetAddress(FMODHandle, '_FSOUND_FX_Enable@8');
- FSOUND_FX_SetChorus := GetAddress(FMODHandle, '_FSOUND_FX_SetChorus@32');
- FSOUND_FX_SetCompressor := GetAddress(FMODHandle,
- '_FSOUND_FX_SetCompressor@28');
- FSOUND_FX_SetDistortion := GetAddress(FMODHandle,
- '_FSOUND_FX_SetDistortion@24');
- FSOUND_FX_SetEcho := GetAddress(FMODHandle, '_FSOUND_FX_SetEcho@24');
- FSOUND_FX_SetFlanger := GetAddress(FMODHandle, '_FSOUND_FX_SetFlanger@32');
- FSOUND_FX_SetGargle := GetAddress(FMODHandle, '_FSOUND_FX_SetGargle@12');
- FSOUND_FX_SetI3DL2Reverb := GetAddress(FMODHandle,
- '_FSOUND_FX_SetI3DL2Reverb@52');
- FSOUND_FX_SetParamEQ := GetAddress(FMODHandle, '_FSOUND_FX_SetParamEQ@16');
- FSOUND_FX_SetWavesReverb := GetAddress(FMODHandle,
- '_FSOUND_FX_SetWavesReverb@20');
- FSOUND_GetAmplitude := GetAddress(FMODHandle, '_FSOUND_GetAmplitude@4');
- FSOUND_GetChannelsPlaying := GetAddress(FMODHandle,
- '_FSOUND_GetChannelsPlaying@0');
- FSOUND_GetCPUUsage := GetAddress(FMODHandle, '_FSOUND_GetCPUUsage@0');
- FSOUND_GetCurrentLevels := GetAddress(FMODHandle,
- '_FSOUND_GetCurrentLevels@12');
- FSOUND_GetCurrentPosition := GetAddress(FMODHandle,
- '_FSOUND_GetCurrentPosition@4');
- FSOUND_GetCurrentSample := GetAddress(FMODHandle,
- '_FSOUND_GetCurrentSample@4');
- FSOUND_GetDriver := GetAddress(FMODHandle, '_FSOUND_GetDriver@0');
- FSOUND_GetDriverCaps := GetAddress(FMODHandle, '_FSOUND_GetDriverCaps@8');
- FSOUND_GetDriverName := GetAddress(FMODHandle, '_FSOUND_GetDriverName@4');
- FSOUND_GetError := GetAddress(FMODHandle, '_FSOUND_GetError@0');
- FSOUND_GetFrequency := GetAddress(FMODHandle, '_FSOUND_GetFrequency@4');
- FSOUND_GetLoopMode := GetAddress(FMODHandle, '_FSOUND_GetLoopMode@4');
- FSOUND_GetMaxChannels := GetAddress(FMODHandle, '_FSOUND_GetMaxChannels@0');
- FSOUND_GetMaxSamples := GetAddress(FMODHandle, '_FSOUND_GetMaxSamples@0');
- FSOUND_GetMemoryStats := GetAddress(FMODHandle, '_FSOUND_GetMemoryStats@8');
- FSOUND_GetMixer := GetAddress(FMODHandle, '_FSOUND_GetMixer@0');
- FSOUND_GetMute := GetAddress(FMODHandle, '_FSOUND_GetMute@4');
- FSOUND_GetNumDrivers := GetAddress(FMODHandle, '_FSOUND_GetNumDrivers@0');
- // FSOUND_GetNumHardwareChannels := GetAddress(FMODHandle,'_FSOUND_GetNumHardwareChannels@0');
- FSOUND_GetNumHWChannels := GetAddress(FMODHandle,
- '_FSOUND_GetNumHWChannels@12');
- FSOUND_GetNumSubChannels := GetAddress(FMODHandle,
- '_FSOUND_GetNumSubChannels@4');
- FSOUND_GetOutput := GetAddress(FMODHandle, '_FSOUND_GetOutput@0');
- FSOUND_GetOutputHandle := GetAddress(FMODHandle, '_FSOUND_GetOutputHandle@0');
- FSOUND_GetOutputRate := GetAddress(FMODHandle, '_FSOUND_GetOutputRate@0');
- FSOUND_GetPan := GetAddress(FMODHandle, '_FSOUND_GetPan@4');
- FSOUND_GetPaused := GetAddress(FMODHandle, '_FSOUND_GetPaused@4');
- FSOUND_GetPriority := GetAddress(FMODHandle, '_FSOUND_GetPriority@4');
- FSOUND_GetReserved := GetAddress(FMODHandle, '_FSOUND_GetReserved@4');
- FSOUND_GetSFXMasterVolume := GetAddress(FMODHandle,
- '_FSOUND_GetSFXMasterVolume@0');
- FSOUND_GetSpeakerMode := GetAddress(FMODHandle, '_FSOUND_GetSpeakerMode@0');
- FSOUND_GetSubChannel := GetAddress(FMODHandle, '_FSOUND_GetSubChannel@8');
- FSOUND_GetSurround := GetAddress(FMODHandle, '_FSOUND_GetSurround@4');
- FSOUND_GetVersion := GetAddress(FMODHandle, '_FSOUND_GetVersion@0');
- FSOUND_GetVolume := GetAddress(FMODHandle, '_FSOUND_GetVolume@4');
- FSOUND_Init := GetAddress(FMODHandle, '_FSOUND_Init@12');
- FSOUND_IsPlaying := GetAddress(FMODHandle, '_FSOUND_IsPlaying@4');
- FSOUND_PlaySound := GetAddress(FMODHandle, '_FSOUND_PlaySound@8');
- FSOUND_PlaySoundEx := GetAddress(FMODHandle, '_FSOUND_PlaySoundEx@16');
- FSOUND_Record_GetDriver := GetAddress(FMODHandle,
- '_FSOUND_Record_GetDriver@0');
- FSOUND_Record_GetDriverName := GetAddress(FMODHandle,
- '_FSOUND_Record_GetDriverName@4');
- FSOUND_Record_GetNumDrivers := GetAddress(FMODHandle,
- '_FSOUND_Record_GetNumDrivers@0');
- FSOUND_Record_GetPosition := GetAddress(FMODHandle,
- '_FSOUND_Record_GetPosition@0');
- FSOUND_Record_SetDriver := GetAddress(FMODHandle,
- '_FSOUND_Record_SetDriver@4');
- FSOUND_Record_StartSample := GetAddress(FMODHandle,
- '_FSOUND_Record_StartSample@8');
- FSOUND_Record_Stop := GetAddress(FMODHandle, '_FSOUND_Record_Stop@0');
- FSOUND_Reverb_GetChannelProperties :=
- GetAddress(FMODHandle, '_FSOUND_Reverb_GetChannelProperties@8');
- FSOUND_Reverb_GetProperties := GetAddress(FMODHandle,
- '_FSOUND_Reverb_GetProperties@4');
- FSOUND_Reverb_SetChannelProperties :=
- GetAddress(FMODHandle, '_FSOUND_Reverb_SetChannelProperties@8');
- FSOUND_Reverb_SetProperties := GetAddress(FMODHandle,
- '_FSOUND_Reverb_SetProperties@4');
- FSOUND_Sample_Alloc := GetAddress(FMODHandle, '_FSOUND_Sample_Alloc@28');
- FSOUND_Sample_Free := GetAddress(FMODHandle, '_FSOUND_Sample_Free@4');
- FSOUND_Sample_Get := GetAddress(FMODHandle, '_FSOUND_Sample_Get@4');
- FSOUND_Sample_GetDefaults := GetAddress(FMODHandle,
- '_FSOUND_Sample_GetDefaults@20');
- FSOUND_Sample_GetDefaultsEx := GetAddress(FMODHandle,
- '_FSOUND_Sample_GetDefaultsEx@32');
- FSOUND_Sample_GetLength := GetAddress(FMODHandle,
- '_FSOUND_Sample_GetLength@4');
- FSOUND_Sample_GetLoopPoints := GetAddress(FMODHandle,
- '_FSOUND_Sample_GetLoopPoints@12');
- FSOUND_Sample_GetMinMaxDistance := GetAddress(FMODHandle,
- '_FSOUND_Sample_GetMinMaxDistance@12');
- FSOUND_Sample_GetMode := GetAddress(FMODHandle, '_FSOUND_Sample_GetMode@4');
- FSOUND_Sample_GetName := GetAddress(FMODHandle, '_FSOUND_Sample_GetName@4');
- FSOUND_Sample_Load := GetAddress(FMODHandle, '_FSOUND_Sample_Load@20');
- FSOUND_Sample_Lock := GetAddress(FMODHandle, '_FSOUND_Sample_Lock@28');
- FSOUND_Sample_SetDefaults := GetAddress(FMODHandle,
- '_FSOUND_Sample_SetDefaults@20');
- FSOUND_Sample_SetDefaultsEx := GetAddress(FMODHandle,
- '_FSOUND_Sample_SetDefaultsEx@32');
- FSOUND_Sample_SetLoopPoints := GetAddress(FMODHandle,
- '_FSOUND_Sample_SetLoopPoints@12');
- FSOUND_Sample_SetMaxPlaybacks := GetAddress(FMODHandle,
- '_FSOUND_Sample_SetMaxPlaybacks@8');
- FSOUND_Sample_SetMinMaxDistance := GetAddress(FMODHandle,
- '_FSOUND_Sample_SetMinMaxDistance@12');
- FSOUND_Sample_SetMode := GetAddress(FMODHandle, '_FSOUND_Sample_SetMode@8');
- FSOUND_Sample_Unlock := GetAddress(FMODHandle, '_FSOUND_Sample_Unlock@20');
- FSOUND_Sample_Upload := GetAddress(FMODHandle, '_FSOUND_Sample_Upload@12');
- FSOUND_SetBufferSize := GetAddress(FMODHandle, '_FSOUND_SetBufferSize@4');
- FSOUND_SetCurrentPosition := GetAddress(FMODHandle,
- '_FSOUND_SetCurrentPosition@8');
- FSOUND_SetDriver := GetAddress(FMODHandle, '_FSOUND_SetDriver@4');
- FSOUND_SetFrequency := GetAddress(FMODHandle, '_FSOUND_SetFrequency@8');
- // FSOUND_SetFrequencyEx := GetAddress(FMODHandle,'_FSOUND_SetFrequencyEx@8');
- FSOUND_SetHWND := GetAddress(FMODHandle, '_FSOUND_SetHWND@4');
- FSOUND_SetLoopMode := GetAddress(FMODHandle, '_FSOUND_SetLoopMode@8');
- FSOUND_SetMaxHardwareChannels := GetAddress(FMODHandle,
- '_FSOUND_SetMaxHardwareChannels@4');
- FSOUND_SetMemorySystem := GetAddress(FMODHandle,
- '_FSOUND_SetMemorySystem@20');
- FSOUND_SetMinHardwareChannels := GetAddress(FMODHandle,
- '_FSOUND_SetMinHardwareChannels@4');
- FSOUND_SetMixer := GetAddress(FMODHandle, '_FSOUND_SetMixer@4');
- FSOUND_SetMute := GetAddress(FMODHandle, '_FSOUND_SetMute@8');
- FSOUND_SetOutput := GetAddress(FMODHandle, '_FSOUND_SetOutput@4');
- FSOUND_SetPan := GetAddress(FMODHandle, '_FSOUND_SetPan@8');
- FSOUND_SetPanSeperation := GetAddress(FMODHandle,
- '_FSOUND_SetPanSeperation@4');
- FSOUND_SetPaused := GetAddress(FMODHandle, '_FSOUND_SetPaused@8');
- FSOUND_SetPriority := GetAddress(FMODHandle, '_FSOUND_SetPriority@8');
- FSOUND_SetReserved := GetAddress(FMODHandle, '_FSOUND_SetReserved@8');
- FSOUND_SetSFXMasterVolume := GetAddress(FMODHandle,
- '_FSOUND_SetSFXMasterVolume@4');
- FSOUND_SetSpeakerMode := GetAddress(FMODHandle, '_FSOUND_SetSpeakerMode@4');
- FSOUND_SetSurround := GetAddress(FMODHandle, '_FSOUND_SetSurround@8');
- FSOUND_SetVolume := GetAddress(FMODHandle, '_FSOUND_SetVolume@8');
- FSOUND_SetVolumeAbsolute := GetAddress(FMODHandle,
- '_FSOUND_SetVolumeAbsolute@8');
- FSOUND_StopSound := GetAddress(FMODHandle, '_FSOUND_StopSound@4');
- FSOUND_Stream_AddSyncPoint := GetAddress(FMODHandle,
- '_FSOUND_Stream_AddSyncPoint@12');
- FSOUND_Stream_Close := GetAddress(FMODHandle, '_FSOUND_Stream_Close@4');
- FSOUND_Stream_Create := GetAddress(FMODHandle, '_FSOUND_Stream_Create@20');
- FSOUND_Stream_CreateDSP := GetAddress(FMODHandle,
- '_FSOUND_Stream_CreateDSP@16');
- FSOUND_Stream_DeleteSyncPoint := GetAddress(FMODHandle,
- '_FSOUND_Stream_DeleteSyncPoint@4');
- FSOUND_Stream_FindTagField := GetAddress(FMODHandle,
- '_FSOUND_Stream_FindTagField@20');
- FSOUND_Stream_GetLength := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetLength@4');
- FSOUND_Stream_GetLengthMs := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetLengthMs@4');
- FSOUND_Stream_GetMode := GetAddress(FMODHandle, '_FSOUND_Stream_GetMode@4');
- FSOUND_Stream_GetNumSubStreams := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetNumSubStreams@4');
- FSOUND_Stream_GetNumSyncPoints := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetNumSyncPoints@4');
- FSOUND_Stream_GetNumTagFields := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetNumTagFields@8');
- FSOUND_Stream_GetOpenState := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetOpenState@4');
- FSOUND_Stream_GetPosition := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetPosition@4');
- FSOUND_Stream_GetSample := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetSample@4');
- FSOUND_Stream_GetSyncPoint := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetSyncPoint@8');
- FSOUND_Stream_GetSyncPointInfo := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetSyncPointInfo@8');
- FSOUND_Stream_GetTagField := GetAddress(FMODHandle,
- '_FSOUND_Stream_GetTagField@24');
- FSOUND_Stream_GetTime := GetAddress(FMODHandle, '_FSOUND_Stream_GetTime@4');
- FSOUND_Stream_Net_GetBufferProperties :=
- GetAddress(FMODHandle, '_FSOUND_Stream_Net_GetBufferProperties@12');
- FSOUND_Stream_Net_GetLastServerStatus :=
- GetAddress(FMODHandle, '_FSOUND_Stream_Net_GetLastServerStatus@0');
- FSOUND_Stream_Net_GetStatus := GetAddress(FMODHandle,
- '_FSOUND_Stream_Net_GetStatus@20');
- FSOUND_Stream_Net_SetBufferProperties :=
- GetAddress(FMODHandle, '_FSOUND_Stream_Net_SetBufferProperties@12');
- FSOUND_Stream_Net_SetMetadataCallback :=
- GetAddress(FMODHandle, '_FSOUND_Stream_Net_SetMetadataCallback@12');
- // FSOUND_Stream_Net_SetNetDataCallback := GetAddress(FMODHandle,'_FSOUND_Stream_Net_SetNetDataCallback@8');
- FSOUND_Stream_Net_SetProxy := GetAddress(FMODHandle,
- '_FSOUND_Stream_Net_SetProxy@4');
- // FSOUND_Stream_Net_SetTimeout := GetAddress(FMODHandle,'_FSOUND_Stream_Net_SetTimeout@4');
- FSOUND_Stream_Open := GetAddress(FMODHandle, '_FSOUND_Stream_Open@16');
- FSOUND_Stream_Play := GetAddress(FMODHandle, '_FSOUND_Stream_Play@8');
- FSOUND_Stream_PlayEx := GetAddress(FMODHandle, '_FSOUND_Stream_PlayEx@16');
- FSOUND_Stream_SetBufferSize := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetBufferSize@4');
- FSOUND_Stream_SetEndCallback := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetEndCallback@12');
- FSOUND_Stream_SetLoopCount := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetLoopCount@8');
- FSOUND_Stream_SetLoopPoints := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetLoopPoints@12');
- FSOUND_Stream_SetMode := GetAddress(FMODHandle, '_FSOUND_Stream_SetMode@8');
- // FSOUND_Stream_SetPCM := GetAddress(FMODHandle,'_FSOUND_Stream_SetPCM@8');
- FSOUND_Stream_SetPosition := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetPosition@8');
- FSOUND_Stream_SetSubStream := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetSubStream@8');
- FSOUND_Stream_SetSubStreamSentence :=
- GetAddress(FMODHandle, '_FSOUND_Stream_SetSubStreamSentence@12');
- FSOUND_Stream_SetSyncCallback := GetAddress(FMODHandle,
- '_FSOUND_Stream_SetSyncCallback@12');
- FSOUND_Stream_SetTime := GetAddress(FMODHandle, '_FSOUND_Stream_SetTime@8');
- FSOUND_Stream_Stop := GetAddress(FMODHandle, '_FSOUND_Stream_Stop@4');
- FSOUND_Update := GetAddress(FMODHandle, '_FSOUND_Update@0');
- {$ELSE}
- FSOUND_SetOutput := GetAddress(FMODHandle, 'FSOUND_SetOutput');
- FSOUND_SetDriver := GetAddress(FMODHandle, 'FSOUND_SetDriver');
- FSOUND_SetMixer := GetAddress(FMODHandle, 'FSOUND_SetMixer');
- FSOUND_SetBufferSize := GetAddress(FMODHandle, 'FSOUND_SetBufferSize');
- FSOUND_SetHWND := GetAddress(FMODHandle, 'FSOUND_SetHWND');
- FSOUND_SetMinHardwareChannels := GetAddress(FMODHandle,
- 'FSOUND_SetMinHardwareChannels');
- FSOUND_SetMaxHardwareChannels := GetAddress(FMODHandle,
- 'FSOUND_SetMaxHardwareChannels');
- FSOUND_SetMemorySystem := GetAddress(FMODHandle, 'FSOUND_SetMemorySystem');
- FSOUND_Init := GetAddress(FMODHandle, 'FSOUND_Init');
- FSOUND_Close := GetAddress(FMODHandle, 'FSOUND_Close');
- FSOUND_Update := GetAddress(FMODHandle, 'FSOUND_Update');
- FSOUND_SetSpeakerMode := GetAddress(FMODHandle, 'FSOUND_SetSpeakerMode');
- FSOUND_SetSFXMasterVolume := GetAddress(FMODHandle,
- 'FSOUND_SetSFXMasterVolume');
- FSOUND_SetPanSeperation := GetAddress(FMODHandle, 'FSOUND_SetPanSeperation');
- FSOUND_GetError := GetAddress(FMODHandle, 'FSOUND_GetError');
- FSOUND_GetVersion := GetAddress(FMODHandle, 'FSOUND_GetVersion');
- FSOUND_GetOutput := GetAddress(FMODHandle, 'FSOUND_GetOutput');
- FSOUND_GetOutputHandle := GetAddress(FMODHandle, 'FSOUND_GetOutputHandle');
- FSOUND_GetDriver := GetAddress(FMODHandle, 'FSOUND_GetDriver');
- FSOUND_GetMixer := GetAddress(FMODHandle, 'FSOUND_GetMixer');
- FSOUND_GetNumDrivers := GetAddress(FMODHandle, 'FSOUND_GetNumDrivers');
- FSOUND_GetDriverName := GetAddress(FMODHandle, 'FSOUND_GetDriverName');
- FSOUND_GetDriverCaps := GetAddress(FMODHandle, 'FSOUND_GetDriverCaps');
- FSOUND_GetOutputRate := GetAddress(FMODHandle, 'FSOUND_GetOutputRate');
- FSOUND_GetMaxChannels := GetAddress(FMODHandle, 'FSOUND_GetMaxChannels');
- FSOUND_GetMaxSamples := GetAddress(FMODHandle, 'FSOUND_GetMaxSamples');
- FSOUND_GetSpeakerMode := GetAddress(FMODHandle, 'FSOUND_GetSpeakerMode');
- FSOUND_GetSFXMasterVolume := GetAddress(FMODHandle,
- 'FSOUND_GetSFXMasterVolume');
- FSOUND_GetNumHWChannels := GetAddress(FMODHandle, 'FSOUND_GetNumHWChannels');
- FSOUND_GetChannelsPlaying := GetAddress(FMODHandle,
- 'FSOUND_GetChannelsPlaying');
- FSOUND_GetCPUUsage := GetAddress(FMODHandle, 'FSOUND_GetCPUUsage');
- FSOUND_GetMemoryStats := GetAddress(FMODHandle, 'FSOUND_GetMemoryStats');
- FSOUND_Sample_Load := GetAddress(FMODHandle, 'FSOUND_Sample_Load');
- FSOUND_Sample_Alloc := GetAddress(FMODHandle, 'FSOUND_Sample_Alloc');
- FSOUND_Sample_Free := GetAddress(FMODHandle, 'FSOUND_Sample_Free');
- FSOUND_Sample_Upload := GetAddress(FMODHandle, 'FSOUND_Sample_Upload');
- FSOUND_Sample_Lock := GetAddress(FMODHandle, 'FSOUND_Sample_Lock');
- FSOUND_Sample_Unlock := GetAddress(FMODHandle, 'FSOUND_Sample_Unlock');
- FSOUND_Sample_SetMode := GetAddress(FMODHandle, 'FSOUND_Sample_SetMode');
- FSOUND_Sample_SetLoopPoints := GetAddress(FMODHandle,
- 'FSOUND_Sample_SetLoopPoints');
- FSOUND_Sample_SetDefaults := GetAddress(FMODHandle,
- 'FSOUND_Sample_SetDefaults');
- FSOUND_Sample_SetDefaultsEx := GetAddress(FMODHandle,
- 'FSOUND_Sample_SetDefaultsEx');
- FSOUND_Sample_SetMinMaxDistance := GetAddress(FMODHandle,
- 'FSOUND_Sample_SetMinMaxDistance');
- FSOUND_Sample_SetMaxPlaybacks := GetAddress(FMODHandle,
- 'FSOUND_Sample_SetMaxPlaybacks');
- FSOUND_Sample_Get := GetAddress(FMODHandle, 'FSOUND_Sample_Get');
- FSOUND_Sample_GetName := GetAddress(FMODHandle, 'FSOUND_Sample_GetName');
- FSOUND_Sample_GetLength := GetAddress(FMODHandle, 'FSOUND_Sample_GetLength');
- FSOUND_Sample_GetLoopPoints := GetAddress(FMODHandle,
- 'FSOUND_Sample_GetLoopPoints');
- FSOUND_Sample_GetDefaults := GetAddress(FMODHandle,
- 'FSOUND_Sample_GetDefaults');
- FSOUND_Sample_GetDefaultsEx := GetAddress(FMODHandle,
- 'FSOUND_Sample_GetDefaultsEx');
- FSOUND_Sample_GetMode := GetAddress(FMODHandle, 'FSOUND_Sample_GetMode');
- FSOUND_Sample_GetMinMaxDistance := GetAddress(FMODHandle,
- 'FSOUND_Sample_GetMinMaxDistance');
- FSOUND_PlaySound := GetAddress(FMODHandle, 'FSOUND_PlaySound');
- FSOUND_PlaySoundEx := GetAddress(FMODHandle, 'FSOUND_PlaySoundEx');
- FSOUND_StopSound := GetAddress(FMODHandle, 'FSOUND_StopSound');
- FSOUND_SetFrequency := GetAddress(FMODHandle, 'FSOUND_SetFrequency');
- FSOUND_SetVolume := GetAddress(FMODHandle, 'FSOUND_SetVolume');
- FSOUND_SetVolumeAbsolute := GetAddress(FMODHandle,
- 'FSOUND_SetVolumeAbsolute');
- FSOUND_SetPan := GetAddress(FMODHandle, 'FSOUND_SetPan');
- FSOUND_SetSurround := GetAddress(FMODHandle, 'FSOUND_SetSurround');
- FSOUND_SetMute := GetAddress(FMODHandle, 'FSOUND_SetMute');
- FSOUND_SetPriority := GetAddress(FMODHandle, 'FSOUND_SetPriority');
- FSOUND_SetReserved := GetAddress(FMODHandle, 'FSOUND_SetReserved');
- FSOUND_SetPaused := GetAddress(FMODHandle, 'FSOUND_SetPaused');
- FSOUND_SetLoopMode := GetAddress(FMODHandle, 'FSOUND_SetLoopMode');
- FSOUND_SetCurrentPosition := GetAddress(FMODHandle,
- 'FSOUND_SetCurrentPosition');
- FSOUND_3D_SetAttributes := GetAddress(FMODHandle, 'FSOUND_3D_SetAttributes');
- FSOUND_3D_SetMinMaxDistance := GetAddress(FMODHandle,
- 'FSOUND_3D_SetMinMaxDistance');
- FSOUND_IsPlaying := GetAddress(FMODHandle, 'FSOUND_IsPlaying');
- FSOUND_GetFrequency := GetAddress(FMODHandle, 'FSOUND_GetFrequency');
- FSOUND_GetVolume := GetAddress(FMODHandle, 'FSOUND_GetVolume');
- FSOUND_GetAmplitude := GetAddress(FMODHandle, 'FSOUND_GetAmplitude');
- FSOUND_GetPan := GetAddress(FMODHandle, 'FSOUND_GetPan');
- FSOUND_GetSurround := GetAddress(FMODHandle, 'FSOUND_GetSurround');
- FSOUND_GetMute := GetAddress(FMODHandle, 'FSOUND_GetMute');
- FSOUND_GetPriority := GetAddress(FMODHandle, 'FSOUND_GetPriority');
- FSOUND_GetReserved := GetAddress(FMODHandle, 'FSOUND_GetReserved');
- FSOUND_GetPaused := GetAddress(FMODHandle, 'FSOUND_GetPaused');
- FSOUND_GetLoopMode := GetAddress(FMODHandle, 'FSOUND_GetLoopMode');
- FSOUND_GetCurrentPosition := GetAddress(FMODHandle,
- 'FSOUND_GetCurrentPosition');
- FSOUND_GetCurrentSample := GetAddress(FMODHandle, 'FSOUND_GetCurrentSample');
- FSOUND_GetCurrentLevels := GetAddress(FMODHandle, 'FSOUND_GetCurrentLevels');
- FSOUND_GetNumSubChannels := GetAddress(FMODHandle,
- 'FSOUND_GetNumSubChannels');
- FSOUND_GetSubChannel := GetAddress(FMODHandle, 'FSOUND_GetSubChannel');
- FSOUND_3D_GetAttributes := GetAddress(FMODHandle, 'FSOUND_3D_GetAttributes');
- FSOUND_3D_GetMinMaxDistance := GetAddress(FMODHandle,
- 'FSOUND_3D_GetMinMaxDistance');
- FSOUND_3D_Listener_SetCurrent := GetAddress(FMODHandle,
- 'FSOUND_3D_Listener_SetCurrent');
- FSOUND_3D_Listener_SetAttributes := GetAddress(FMODHandle,
- 'FSOUND_3D_Listener_SetAttributes');
- FSOUND_3D_Listener_GetAttributes := GetAddress(FMODHandle,
- 'FSOUND_3D_Listener_GetAttributes');
- FSOUND_3D_SetDopplerFactor := GetAddress(FMODHandle,
- 'FSOUND_3D_SetDopplerFactor');
- FSOUND_3D_SetDistanceFactor := GetAddress(FMODHandle,
- 'FSOUND_3D_SetDistanceFactor');
- FSOUND_3D_SetRolloffFactor := GetAddress(FMODHandle,
- 'FSOUND_3D_SetRolloffFactor');
- FSOUND_FX_Enable := GetAddress(FMODHandle, 'FSOUND_FX_Enable');
- FSOUND_FX_SetChorus := GetAddress(FMODHandle, 'FSOUND_FX_SetChorus');
- FSOUND_FX_SetCompressor := GetAddress(FMODHandle, 'FSOUND_FX_SetCompressor');
- FSOUND_FX_SetDistortion := GetAddress(FMODHandle, 'FSOUND_FX_SetDistortion');
- FSOUND_FX_SetEcho := GetAddress(FMODHandle, 'FSOUND_FX_SetEcho');
- FSOUND_FX_SetFlanger := GetAddress(FMODHandle, 'FSOUND_FX_SetFlanger');
- FSOUND_FX_SetGargle := GetAddress(FMODHandle, 'FSOUND_FX_SetGargle');
- FSOUND_FX_SetI3DL2Reverb := GetAddress(FMODHandle,
- 'FSOUND_FX_SetI3DL2Reverb');
- FSOUND_FX_SetParamEQ := GetAddress(FMODHandle, 'FSOUND_FX_SetParamEQ');
- FSOUND_FX_SetWavesReverb := GetAddress(FMODHandle,
- 'FSOUND_FX_SetWavesReverb');
- FSOUND_Stream_Open := GetAddress(FMODHandle, 'FSOUND_Stream_Open');
- FSOUND_Stream_Create := GetAddress(FMODHandle, 'FSOUND_Stream_Create');
- FSOUND_Stream_Close := GetAddress(FMODHandle, 'FSOUND_Stream_Close');
- FSOUND_Stream_Play := GetAddress(FMODHandle, 'FSOUND_Stream_Play');
- FSOUND_Stream_PlayEx := GetAddress(FMODHandle, 'FSOUND_Stream_PlayEx');
- FSOUND_Stream_Stop := GetAddress(FMODHandle, 'FSOUND_Stream_Stop');
- FSOUND_Stream_SetEndCallback := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetEndCallback');
- FSOUND_Stream_SetSyncCallback := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetSyncCallback');
- FSOUND_Stream_GetSample := GetAddress(FMODHandle, 'FSOUND_Stream_GetSample');
- FSOUND_Stream_CreateDSP := GetAddress(FMODHandle, 'FSOUND_Stream_CreateDSP');
- FSOUND_Stream_SetBufferSize := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetBufferSize');
- FSOUND_Stream_SetPosition := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetPosition');
- FSOUND_Stream_GetPosition := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetPosition');
- FSOUND_Stream_SetTime := GetAddress(FMODHandle, 'FSOUND_Stream_SetTime');
- FSOUND_Stream_GetTime := GetAddress(FMODHandle, 'FSOUND_Stream_GetTime');
- FSOUND_Stream_GetLength := GetAddress(FMODHandle, 'FSOUND_Stream_GetLength');
- FSOUND_Stream_GetLengthMs := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetLengthMs');
- FSOUND_Stream_SetMode := GetAddress(FMODHandle, 'FSOUND_Stream_SetMode');
- FSOUND_Stream_GetMode := GetAddress(FMODHandle, 'FSOUND_Stream_GetMode');
- FSOUND_Stream_SetLoopPoints := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetLoopPoints');
- FSOUND_Stream_SetLoopCount := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetLoopCount');
- FSOUND_Stream_GetOpenState := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetOpenState');
- FSOUND_Stream_AddSyncPoint := GetAddress(FMODHandle,
- 'FSOUND_Stream_AddSyncPoint');
- FSOUND_Stream_DeleteSyncPoint := GetAddress(FMODHandle,
- 'FSOUND_Stream_DeleteSyncPoint');
- FSOUND_Stream_GetNumSyncPoints := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetNumSyncPoints');
- FSOUND_Stream_GetSyncPoint := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetSyncPoint');
- FSOUND_Stream_GetSyncPointInfo := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetSyncPointInfo');
- FSOUND_Stream_SetSubStream := GetAddress(FMODHandle,
- 'FSOUND_Stream_SetSubStream');
- FSOUND_Stream_GetNumSubStreams := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetNumSubStreams');
- FSOUND_Stream_SetSubStreamSentence :=
- GetAddress(FMODHandle, 'FSOUND_Stream_SetSubStreamSentence');
- FSOUND_Stream_GetNumTagFields := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetNumTagFields');
- FSOUND_Stream_GetTagField := GetAddress(FMODHandle,
- 'FSOUND_Stream_GetTagField');
- FSOUND_Stream_FindTagField := GetAddress(FMODHandle,
- 'FSOUND_Stream_FindTagField');
- FSOUND_Stream_Net_SetProxy := GetAddress(FMODHandle,
- 'FSOUND_Stream_Net_SetProxy');
- FSOUND_Stream_Net_GetLastServerStatus :=
- GetAddress(FMODHandle, 'FSOUND_Stream_Net_GetLastServerStatus');
- FSOUND_Stream_Net_SetBufferProperties :=
- GetAddress(FMODHandle, 'FSOUND_Stream_Net_SetBufferProperties');
- FSOUND_Stream_Net_GetBufferProperties :=
- GetAddress(FMODHandle, 'FSOUND_Stream_Net_GetBufferProperties');
- FSOUND_Stream_Net_SetMetadataCallback :=
- GetAddress(FMODHandle, 'FSOUND_Stream_Net_SetMetadataCallback');
- FSOUND_Stream_Net_GetStatus := GetAddress(FMODHandle,
- 'FSOUND_Stream_Net_GetStatus');
- FSOUND_CD_Play := GetAddress(FMODHandle, 'FSOUND_CD_Play');
- FSOUND_CD_SetPlayMode := GetAddress(FMODHandle, 'FSOUND_CD_SetPlayMode');
- FSOUND_CD_Stop := GetAddress(FMODHandle, 'FSOUND_CD_Stop');
- FSOUND_CD_SetPaused := GetAddress(FMODHandle, 'FSOUND_CD_SetPaused');
- FSOUND_CD_SetVolume := GetAddress(FMODHandle, 'FSOUND_CD_SetVolume');
- FSOUND_CD_SetTrackTime := GetAddress(FMODHandle, 'FSOUND_CD_SetTrackTime');
- FSOUND_CD_OpenTray := GetAddress(FMODHandle, 'FSOUND_CD_OpenTray');
- FSOUND_CD_GetPaused := GetAddress(FMODHandle, 'FSOUND_CD_GetPaused');
- FSOUND_CD_GetTrack := GetAddress(FMODHandle, 'FSOUND_CD_GetTrack');
- FSOUND_CD_GetNumTracks := GetAddress(FMODHandle, 'FSOUND_CD_GetNumTracks');
- FSOUND_CD_GetVolume := GetAddress(FMODHandle, 'FSOUND_CD_GetVolume');
- FSOUND_CD_GetTrackLength := GetAddress(FMODHandle,
- 'FSOUND_CD_GetTrackLength');
- FSOUND_CD_GetTrackTime := GetAddress(FMODHandle, 'FSOUND_CD_GetTrackTime');
- FSOUND_DSP_Create := GetAddress(FMODHandle, 'FSOUND_DSP_Create');
- FSOUND_DSP_Free := GetAddress(FMODHandle, 'FSOUND_DSP_Free');
- FSOUND_DSP_SetPriority := GetAddress(FMODHandle, 'FSOUND_DSP_SetPriority');
- FSOUND_DSP_GetPriority := GetAddress(FMODHandle, 'FSOUND_DSP_GetPriority');
- FSOUND_DSP_SetActive := GetAddress(FMODHandle, 'FSOUND_DSP_SetActive');
- FSOUND_DSP_GetActive := GetAddress(FMODHandle, 'FSOUND_DSP_GetActive');
- FSOUND_DSP_GetClearUnit := GetAddress(FMODHandle, 'FSOUND_DSP_GetClearUnit');
- FSOUND_DSP_GetSFXUnit := GetAddress(FMODHandle, 'FSOUND_DSP_GetSFXUnit');
- FSOUND_DSP_GetMusicUnit := GetAddress(FMODHandle, 'FSOUND_DSP_GetMusicUnit');
- FSOUND_DSP_GetClipAndCopyUnit := GetAddress(FMODHandle,
- 'FSOUND_DSP_GetClipAndCopyUnit');
- FSOUND_DSP_GetFFTUnit := GetAddress(FMODHandle, 'FSOUND_DSP_GetFFTUnit');
- FSOUND_DSP_MixBuffers := GetAddress(FMODHandle, 'FSOUND_DSP_MixBuffers');
- FSOUND_DSP_ClearMixBuffer := GetAddress(FMODHandle,
- 'FSOUND_DSP_ClearMixBuffer');
- FSOUND_DSP_GetBufferLength := GetAddress(FMODHandle,
- 'FSOUND_DSP_GetBufferLength');
- FSOUND_DSP_GetBufferLengthTotal := GetAddress(FMODHandle,
- 'FSOUND_DSP_GetBufferLengthTotal');
- FSOUND_DSP_GetSpectrum := GetAddress(FMODHandle, 'FSOUND_DSP_GetSpectrum');
- FSOUND_Reverb_SetProperties := GetAddress(FMODHandle,
- 'FSOUND_Reverb_SetProperties');
- FSOUND_Reverb_GetProperties := GetAddress(FMODHandle,
- 'FSOUND_Reverb_GetProperties');
- FSOUND_Reverb_SetChannelProperties :=
- GetAddress(FMODHandle, 'FSOUND_Reverb_SetChannelProperties');
- FSOUND_Reverb_GetChannelProperties :=
- GetAddress(FMODHandle, 'FSOUND_Reverb_GetChannelProperties');
- FSOUND_Record_SetDriver := GetAddress(FMODHandle, 'FSOUND_Record_SetDriver');
- FSOUND_Record_GetNumDrivers := GetAddress(FMODHandle,
- 'FSOUND_Record_GetNumDrivers');
- FSOUND_Record_GetDriverName := GetAddress(FMODHandle,
- 'FSOUND_Record_GetDriverName');
- FSOUND_Record_GetDriver := GetAddress(FMODHandle, 'FSOUND_Record_GetDriver');
- FSOUND_Record_StartSample := GetAddress(FMODHandle,
- 'FSOUND_Record_StartSample');
- FSOUND_Record_Stop := GetAddress(FMODHandle, 'FSOUND_Record_Stop');
- FSOUND_Record_GetPosition := GetAddress(FMODHandle,
- 'FSOUND_Record_GetPosition');
- FSOUND_File_SetCallbacks := GetAddress(FMODHandle,
- 'FSOUND_File_SetCallbacks');
- FMUSIC_LoadSong := GetAddress(FMODHandle, 'FMUSIC_LoadSong');
- FMUSIC_LoadSongEx := GetAddress(FMODHandle, 'FMUSIC_LoadSongEx');
- FMUSIC_GetOpenState := GetAddress(FMODHandle, 'FMUSIC_GetOpenState');
- FMUSIC_FreeSong := GetAddress(FMODHandle, 'FMUSIC_FreeSong');
- FMUSIC_PlaySong := GetAddress(FMODHandle, 'FMUSIC_PlaySong');
- FMUSIC_StopSong := GetAddress(FMODHandle, 'FMUSIC_StopSong');
- FMUSIC_StopAllSongs := GetAddress(FMODHandle, 'FMUSIC_StopAllSongs');
- FMUSIC_SetZxxCallback := GetAddress(FMODHandle, 'FMUSIC_SetZxxCallback');
- FMUSIC_SetRowCallback := GetAddress(FMODHandle, 'FMUSIC_SetRowCallback');
- FMUSIC_SetOrderCallback := GetAddress(FMODHandle, 'FMUSIC_SetOrderCallback');
- FMUSIC_SetInstCallback := GetAddress(FMODHandle, 'FMUSIC_SetInstCallback');
- FMUSIC_SetSample := GetAddress(FMODHandle, 'FMUSIC_SetSample');
- FMUSIC_SetUserData := GetAddress(FMODHandle, 'FMUSIC_SetUserData');
- FMUSIC_OptimizeChannels := GetAddress(FMODHandle, 'FMUSIC_OptimizeChannels');
- FMUSIC_SetReverb := GetAddress(FMODHandle, 'FMUSIC_SetReverb');
- FMUSIC_SetLooping := GetAddress(FMODHandle, 'FMUSIC_SetLooping');
- FMUSIC_SetOrder := GetAddress(FMODHandle, 'FMUSIC_SetOrder');
- FMUSIC_SetPaused := GetAddress(FMODHandle, 'FMUSIC_SetPaused');
- FMUSIC_SetMasterVolume := GetAddress(FMODHandle, 'FMUSIC_SetMasterVolume');
- FMUSIC_SetMasterSpeed := GetAddress(FMODHandle, 'FMUSIC_SetMasterSpeed');
- FMUSIC_SetPanSeperation := GetAddress(FMODHandle, 'FMUSIC_SetPanSeperation');
- FMUSIC_GetName := GetAddress(FMODHandle, 'FMUSIC_GetName');
- FMUSIC_GetType := GetAddress(FMODHandle, 'FMUSIC_GetType');
- FMUSIC_GetNumOrders := GetAddress(FMODHandle, 'FMUSIC_GetNumOrders');
- FMUSIC_GetNumPatterns := GetAddress(FMODHandle, 'FMUSIC_GetNumPatterns');
- FMUSIC_GetNumInstruments := GetAddress(FMODHandle,
- 'FMUSIC_GetNumInstruments');
- FMUSIC_GetNumSamples := GetAddress(FMODHandle, 'FMUSIC_GetNumSamples');
- FMUSIC_GetNumChannels := GetAddress(FMODHandle, 'FMUSIC_GetNumChannels');
- FMUSIC_GetSample := GetAddress(FMODHandle, 'FMUSIC_GetSample');
- FMUSIC_GetPatternLength := GetAddress(FMODHandle, 'FMUSIC_GetPatternLength');
- FMUSIC_IsFinished := GetAddress(FMODHandle, 'FMUSIC_IsFinished');
- FMUSIC_IsPlaying := GetAddress(FMODHandle, 'FMUSIC_IsPlaying');
- FMUSIC_GetMasterVolume := GetAddress(FMODHandle, 'FMUSIC_GetMasterVolume');
- FMUSIC_GetGlobalVolume := GetAddress(FMODHandle, 'FMUSIC_GetGlobalVolume');
- FMUSIC_GetOrder := GetAddress(FMODHandle, 'FMUSIC_GetOrder');
- FMUSIC_GetPattern := GetAddress(FMODHandle, 'FMUSIC_GetPattern');
- FMUSIC_GetSpeed := GetAddress(FMODHandle, 'FMUSIC_GetSpeed');
- FMUSIC_GetBPM := GetAddress(FMODHandle, 'FMUSIC_GetBPM');
- FMUSIC_GetRow := GetAddress(FMODHandle, 'FMUSIC_GetRow');
- FMUSIC_GetPaused := GetAddress(FMODHandle, 'FMUSIC_GetPaused');
- FMUSIC_GetTime := GetAddress(FMODHandle, 'FMUSIC_GetTime');
- FMUSIC_GetRealChannel := GetAddress(FMODHandle, 'FMUSIC_GetRealChannel');
- FMUSIC_GetUserData := GetAddress(FMODHandle, 'FMUSIC_GetUserData');
- {$ENDIF}
- Result := True;
- end;
- procedure FMOD_Unload;
- begin
- { Only free the library if it was already loaded }
- if FMODHandle <> INVALID_MODULEHANDLE_VALUE then
- FreeLibrary(FMODHandle);
- FMODHandle := INVALID_MODULEHANDLE_VALUE;
- end;
- var
- Saved8087CW: word;
- initialization
- { Save the current FPU state and then disable FPU exceptions }
- Saved8087CW := Default8087CW;
- Set8087CW($133F); { Disable all fpu exceptions }
- finalization
- { Make sure the library is unloaded }
- FMOD_Unload;
- { Reset the FPU to the previous state }
- Set8087CW(Saved8087CW);
- end.
|