Subversion Repositories AndroidProjects

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
244 chris 1
#ifndef __FMODLOADER_H__
2
#define __FMODLOADER_H__
3
 
4
#define WIN32_LEAN_AND_MEAN
5
#include <windows.h>
6
#include <stdio.h>
7
 
8
#include "fmod.h"
9
 
10
///////////////////////////////////////////////////////////////////////////////
11
///////////////////////////////////////////////////////////////////////////////
12
namespace Sexy
13
{
14
 
15
struct FMOD_INSTANCE
16
{
17
        FMOD_INSTANCE(const char *dllName);
18
        virtual ~FMOD_INSTANCE();
19
 
20
    HMODULE         mModule;
21
 
22
        signed char     (F_API *FSOUND_SetBufferSize)(int len_ms);
23
    signed char     (F_API *FSOUND_SetHWND)(void *hwnd);
24
    signed char     (F_API *FSOUND_Init)(int mixrate, int maxsoftwarechannels, unsigned int flags);
25
    void            (F_API *FSOUND_Close)();
26
 
27
        FSOUND_SAMPLE * (F_API *FSOUND_Sample_Load)(int index, const char *name_or_data, unsigned int mode, int memlength);
28
    FSOUND_SAMPLE * (F_API *FSOUND_Sample_Alloc)(int index, int length, unsigned int mode, int deffreq, int defvol, int defpan, int defpri);
29
    void            (F_API *FSOUND_Sample_Free)(FSOUND_SAMPLE *sptr);
30
    signed char     (F_API *FSOUND_Sample_Lock)(FSOUND_SAMPLE *sptr, int offset, int length, void **ptr1, void **ptr2, unsigned int *len1, unsigned int *len2);
31
    signed char     (F_API *FSOUND_Sample_Unlock)(FSOUND_SAMPLE *sptr, void *ptr1, void *ptr2, unsigned int len1, unsigned int len2);
32
    signed char     (F_API *FSOUND_Sample_SetLoopPoints)(FSOUND_SAMPLE *sptr, int loopstart, int loopend);
33
    unsigned int    (F_API *FSOUND_Sample_GetLength)(FSOUND_SAMPLE *sptr);
34
    signed char     (F_API *FSOUND_Sample_GetDefaults)(FSOUND_SAMPLE *sptr, int *deffreq, int *defvol, int *defpan, int *defpri);
35
    unsigned int    (F_API *FSOUND_Sample_GetMode)(FSOUND_SAMPLE *sptr);
36
 
37
        int             (F_API *FSOUND_PlaySound)(int channel, FSOUND_SAMPLE *sptr);
38
    signed char     (F_API *FSOUND_StopSound)(int channel);
39
    signed char     (F_API *FSOUND_SetVolume)(int channel, int vol);
40
    signed char     (F_API *FSOUND_SetPaused)(int channel, signed char paused);
41
    signed char     (F_API *FSOUND_SetLoopMode)(int channel, unsigned int loopmode);
42
    signed char     (F_API *FSOUND_IsPlaying)(int channel);
43
 
44
    FSOUND_STREAM * (F_API *FSOUND_Stream_OpenFile)(const char *filename, unsigned int mode, int memlength);
45
        signed char     (F_API *FSOUND_Stream_Close)(FSOUND_STREAM *stream);
46
    int             (F_API *FSOUND_Stream_Play)(int channel, FSOUND_STREAM *stream);
47
 
48
    FMUSIC_MODULE * (F_API *FMUSIC_LoadSong)(const char *name);
49
    signed char     (F_API *FMUSIC_PlaySong)(FMUSIC_MODULE *mod);
50
    signed char     (F_API *FMUSIC_StopSong)(FMUSIC_MODULE *mod);
51
    signed char     (F_API *FMUSIC_SetLooping)(FMUSIC_MODULE *mod, signed char looping);
52
    signed char     (F_API *FMUSIC_SetOrder)(FMUSIC_MODULE *mod, int order);
53
    signed char     (F_API *FMUSIC_SetPaused)(FMUSIC_MODULE *mod, signed char pause);
54
    signed char     (F_API *FMUSIC_SetMasterVolume)(FMUSIC_MODULE *mod, int volume);
55
    signed char     (F_API *FMUSIC_IsPlaying)(FMUSIC_MODULE *mod);
56
/*
57
    signed char     (F_API *FSOUND_SetOutput)(int outputtype);
58
    signed char     (F_API *FSOUND_SetDriver)(int driver);
59
    signed char     (F_API *FSOUND_SetMixer)(int mixer);
60
    signed char     (F_API *FSOUND_SetMinHardwareChannels)(int min);
61
    signed char     (F_API *FSOUND_SetMaxHardwareChannels)(int max);
62
    signed char     (F_API *FSOUND_SetMemorySystem)(void *pool, int poollen, FSOUND_ALLOCCALLBACK useralloc, FSOUND_REALLOCCALLBACK userrealloc, FSOUND_FREECALLBACK userfree);
63
    void            (F_API *FSOUND_SetSpeakerMode)(unsigned int speakermode);
64
    void            (F_API *FSOUND_SetSFXMasterVolume)(int volume);
65
    void            (F_API *FSOUND_SetPanSeperation)(float pansep);
66
    void            (F_API *FSOUND_File_SetCallbacks)(FSOUND_OPENCALLBACK  useropen, FSOUND_CLOSECALLBACK userclose, FSOUND_READCALLBACK userread, FSOUND_SEEKCALLBACK  userseek, FSOUND_TELLCALLBACK  usertell);
67
    int             (F_API *FSOUND_GetError)();
68
    float           (F_API *FSOUND_GetVersion)();
69
    int             (F_API *FSOUND_GetOutput)();
70
    void *          (F_API *FSOUND_GetOutputHandle)();
71
    int             (F_API *FSOUND_GetDriver)();
72
    int             (F_API *FSOUND_GetMixer)();
73
    int             (F_API *FSOUND_GetNumDrivers)();
74
    signed char *   (F_API *FSOUND_GetDriverName)(int id);
75
    signed char     (F_API *FSOUND_GetDriverCaps)(int id, unsigned int *caps);
76
    int             (F_API *FSOUND_GetOutputRate)();
77
    int             (F_API *FSOUND_GetMaxChannels)();
78
    int             (F_API *FSOUND_GetMaxSamples)();
79
    int             (F_API *FSOUND_GetSFXMasterVolume)();
80
    int             (F_API *FSOUND_GetNumHardwareChannels)();
81
    int             (F_API *FSOUND_GetChannelsPlaying)();
82
    float           (F_API *FSOUND_GetCPUUsage)();
83
    void            (F_API *FSOUND_GetMemoryStats)(unsigned int *currentalloced, unsigned int *maxalloced);
84
    signed char     (F_API *FSOUND_Sample_Upload)(FSOUND_SAMPLE *sptr, void *srcdata, unsigned int mode);
85
    signed char     (F_API *FSOUND_Sample_SetMode)(FSOUND_SAMPLE *sptr, unsigned int mode);
86
    signed char     (F_API *FSOUND_Sample_SetDefaults)(FSOUND_SAMPLE *sptr, int deffreq, int defvol, int defpan, int defpri);
87
    signed char     (F_API *FSOUND_Sample_SetMinMaxDistance)(FSOUND_SAMPLE *sptr, float min, float max);
88
    signed char     (F_API *FSOUND_Sample_SetMaxPlaybacks)(FSOUND_SAMPLE *sptr, int max);
89
    FSOUND_SAMPLE * (F_API *FSOUND_Sample_Get)(int sampno);
90
    char *          (F_API *FSOUND_Sample_GetName)(FSOUND_SAMPLE *sptr);
91
    signed char     (F_API *FSOUND_Sample_GetLoopPoints)(FSOUND_SAMPLE *sptr, int *loopstart, int *loopend);
92
    int             (F_API *FSOUND_PlaySoundEx)(int channel, FSOUND_SAMPLE *sptr, FSOUND_DSPUNIT *dsp, signed char startpaused);
93
    signed char     (F_API *FSOUND_SetFrequency)(int channel, int freq);
94
    signed char     (F_API *FSOUND_SetVolumeAbsolute)(int channel, int vol);
95
    signed char     (F_API *FSOUND_SetPan)(int channel, int pan);
96
    signed char     (F_API *FSOUND_SetSurround)(int channel, signed char surround);
97
    signed char     (F_API *FSOUND_SetMute)(int channel, signed char mute);
98
    signed char     (F_API *FSOUND_SetPriority)(int channel, int priority);
99
    signed char     (F_API *FSOUND_SetReserved)(int channel, signed char reserved);
100
    signed char     (F_API *FSOUND_SetCurrentPosition)(int channel, unsigned int offset);
101
    int             (F_API *FSOUND_GetFrequency)(int channel);
102
    int             (F_API *FSOUND_GetVolume)(int channel);
103
    int             (F_API *FSOUND_GetPan)(int channel);
104
    signed char     (F_API *FSOUND_GetSurround)(int channel);
105
    signed char     (F_API *FSOUND_GetMute)(int channel);
106
    int             (F_API *FSOUND_GetPriority)(int channel);
107
    signed char     (F_API *FSOUND_GetReserved)(int channel);
108
    signed char     (F_API *FSOUND_GetPaused)(int channel);
109
    unsigned int    (F_API *FSOUND_GetLoopMode)(int channel);
110
    unsigned int    (F_API *FSOUND_GetCurrentPosition)(int channel);
111
    FSOUND_SAMPLE * (F_API *FSOUND_GetCurrentSample)(int channel);
112
    signed char     (F_API *FSOUND_GetCurrentLevels)(int channel, float *l, float *r);
113
    int             (F_API *FSOUND_FX_Enable)(int channel, unsigned int fx);    // See FSOUND_FX_MODES
114
    signed char     (F_API *FSOUND_FX_Disable)(int channel);    
115
    signed char     (F_API *FSOUND_FX_SetChorus)(int fxid, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
116
    signed char     (F_API *FSOUND_FX_SetCompressor)(int fxid, float Gain, float Attack, float Release, float Threshold, float Ratio, float Predelay);
117
    signed char     (F_API *FSOUND_FX_SetDistortion)(int fxid, float Gain, float Edge, float PostEQCenterFrequency, float PostEQBandwidth, float PreLowpassCutoff);
118
    signed char     (F_API *FSOUND_FX_SetEcho)(int fxid, float WetDryMix, float Feedback, float LeftDelay, float RightDelay, int PanDelay);
119
    signed char     (F_API *FSOUND_FX_SetFlanger)(int fxid, float WetDryMix, float Depth, float Feedback, float Frequency, int Waveform, float Delay, int Phase);
120
    signed char     (F_API *FSOUND_FX_SetGargle)(int fxid, int RateHz, int WaveShape);
121
    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);
122
    signed char     (F_API *FSOUND_FX_SetParamEQ)(int fxid, float Center, float Bandwidth, float Gain);
123
    signed char     (F_API *FSOUND_FX_SetWavesReverb)(int fxid, float InGain, float ReverbMix, float ReverbTime, float HighFreqRTRatio);  
124
    void            (F_API *FSOUND_Update)();   // you must call this once a frame
125
    void            (F_API *FSOUND_3D_SetDopplerFactor)(float scale);
126
    void            (F_API *FSOUND_3D_SetDistanceFactor)(float scale);
127
    void            (F_API *FSOUND_3D_SetRolloffFactor)(float scale);
128
    signed char     (F_API *FSOUND_3D_SetAttributes)(int channel, float *pos, float *vel);
129
    signed char     (F_API *FSOUND_3D_GetAttributes)(int channel, float *pos, float *vel);
130
    void            (F_API *FSOUND_3D_Listener_SetCurrent)(int current, int numlisteners);  /* use this if you use multiple listeners / splitscreen
131
    void            (F_API *FSOUND_3D_Listener_SetAttributes)(float *pos, float *vel, float fx, float fy, float fz, float tx, float ty, float tz);
132
    void            (F_API *FSOUND_3D_Listener_GetAttributes)(float *pos, float *vel, float *fx, float *fy, float *fz, float *tx, float *ty, float *tz);
133
    signed char     (F_API *FSOUND_Stream_SetBufferSize)(int ms);      // call this before opening streams, not after
134
    FSOUND_STREAM * (F_API *FSOUND_Stream_Create)(FSOUND_STREAMCALLBACK callback, int length, unsigned int mode, int samplerate, int userdata);
135
    int             (F_API *FSOUND_Stream_PlayEx)(int channel, FSOUND_STREAM *stream, FSOUND_DSPUNIT *dsp, signed char startpaused);
136
    signed char     (F_API *FSOUND_Stream_Stop)(FSOUND_STREAM *stream);
137
    signed char     (F_API *FSOUND_Stream_SetEndCallback)(FSOUND_STREAM *stream, FSOUND_STREAMCALLBACK callback, int userdata);
138
    signed char     (F_API *FSOUND_Stream_SetSynchCallback)(FSOUND_STREAM *stream, FSOUND_STREAMCALLBACK callback, int userdata);
139
    FSOUND_SAMPLE * (F_API *FSOUND_Stream_GetSample)(FSOUND_STREAM *stream);   // every stream contains a sample to playback on
140
    FSOUND_DSPUNIT *(F_API *FSOUND_Stream_CreateDSP)(FSOUND_STREAM *stream, FSOUND_DSPCALLBACK callback, int priority, int param);
141
    signed char     (F_API *FSOUND_Stream_SetPosition)(FSOUND_STREAM *stream, unsigned int position);
142
    unsigned int    (F_API *FSOUND_Stream_GetPosition)(FSOUND_STREAM *stream);
143
    signed char     (F_API *FSOUND_Stream_SetTime)(FSOUND_STREAM *stream, int ms);
144
    int             (F_API *FSOUND_Stream_GetTime)(FSOUND_STREAM *stream);
145
    int             (F_API *FSOUND_Stream_GetLength)(FSOUND_STREAM *stream);
146
    int             (F_API *FSOUND_Stream_GetLengthMs)(FSOUND_STREAM *stream);
147
    signed char     (F_API *FSOUND_Stream_SetSubStream)(FSOUND_STREAM *stream, int index);
148
    int             (F_API *FSOUND_Stream_GetNumSubStreams)(FSOUND_STREAM *stream);
149
    signed char     (F_API *FSOUND_Stream_SetSubStreamSentence)(FSOUND_STREAM *stream, int *sentencelist, int numitems);
150
    signed char     (F_API *FSOUND_Stream_SetMode)(FSOUND_STREAM *stream, unsigned int mode);
151
    unsigned int    (F_API *FSOUND_Stream_GetMode)(FSOUND_STREAM *stream);
152
    signed char     (F_API *FSOUND_Stream_SetLoopPoints)(FSOUND_STREAM *stream, unsigned int loopstartpcm, unsigned int loopendpcm);
153
    int             (F_API *FSOUND_Stream_AddSynchPoint)(FSOUND_STREAM *stream, unsigned int pcmoffset, int userdata);
154
    signed char     (F_API *FSOUND_Stream_DeleteSynchPoint)(FSOUND_STREAM *stream, int index);
155
    int             (F_API *FSOUND_Stream_GetNumSynchPoints)(FSOUND_STREAM *stream);
156
    int             (F_API *FSOUND_Stream_GetOpenState)(FSOUND_STREAM *stream);
157
    signed char     (F_API *FSOUND_CD_Play)(char drive, int track);
158
    void            (F_API *FSOUND_CD_SetPlayMode)(char drive, signed char mode);
159
    signed char     (F_API *FSOUND_CD_Stop)(char drive);
160
    signed char     (F_API *FSOUND_CD_SetTrackTime)(char drive, unsigned int ms);
161
    signed char     (F_API *FSOUND_CD_Eject)(char drive);
162
    signed char     (F_API *FSOUND_CD_GetPaused)(char drive);
163
    int             (F_API *FSOUND_CD_GetTrack)(char drive);
164
    int             (F_API *FSOUND_CD_GetNumTracks)(char drive);
165
    int             (F_API *FSOUND_CD_GetVolume)(char drive);
166
    int             (F_API *FSOUND_CD_GetTrackLength)(char drive, int track);
167
    int             (F_API *FSOUND_CD_GetTrackTime)(char drive);
168
    FSOUND_DSPUNIT *(F_API *FSOUND_DSP_Create)(FSOUND_DSPCALLBACK callback, int priority, int param);
169
    void            (F_API *FSOUND_DSP_Free)(FSOUND_DSPUNIT *unit);
170
    void            (F_API *FSOUND_DSP_SetPriority)(FSOUND_DSPUNIT *unit, int priority);
171
    int             (F_API *FSOUND_DSP_GetPriority)(FSOUND_DSPUNIT *unit);
172
    void            (F_API *FSOUND_DSP_SetActive)(FSOUND_DSPUNIT *unit, signed char active);
173
    signed char     (F_API *FSOUND_DSP_GetActive)(FSOUND_DSPUNIT *unit);
174
    FSOUND_DSPUNIT *(F_API *FSOUND_DSP_GetClearUnit)();
175
    FSOUND_DSPUNIT *(F_API *FSOUND_DSP_GetSFXUnit)();
176
    FSOUND_DSPUNIT *(F_API *FSOUND_DSP_GetMusicUnit)();
177
    FSOUND_DSPUNIT *(F_API *FSOUND_DSP_GetFFTUnit)();
178
    FSOUND_DSPUNIT *(F_API *FSOUND_DSP_GetClipAndCopyUnit)();
179
    signed char     (F_API *FSOUND_DSP_MixBuffers)(void *destbuffer, void *srcbuffer, int len, int freq, int vol, int pan, unsigned int mode);
180
    void            (F_API *FSOUND_DSP_ClearMixBuffer)();
181
    int             (F_API *FSOUND_DSP_GetBufferLength)();      // Length of each DSP update
182
    int             (F_API *FSOUND_DSP_GetBufferLengthTotal)(); // Total buffer length due to FSOUND_SetBufferSize
183
    float *         (F_API *FSOUND_DSP_GetSpectrum)();          // Array of 512 floats - call FSOUND_DSP_SetActive(FSOUND_DSP_GetFFTUnit(), TRUE)) for this to work.
184
    signed char     (F_API *FSOUND_Reverb_SetProperties)(FSOUND_REVERB_PROPERTIES *prop);
185
    signed char     (F_API *FSOUND_Reverb_GetProperties)(FSOUND_REVERB_PROPERTIES *prop);
186
    signed char     (F_API *FSOUND_Reverb_SetChannelProperties)(int channel, FSOUND_REVERB_CHANNELPROPERTIES *prop);
187
    signed char     (F_API *FSOUND_Reverb_GetChannelProperties)(int channel, FSOUND_REVERB_CHANNELPROPERTIES *prop);
188
    signed char     (F_API *FSOUND_Record_SetDriver)(int outputtype);
189
    int             (F_API *FSOUND_Record_GetNumDrivers)();
190
    signed char *   (F_API *FSOUND_Record_GetDriverName)(int id);
191
    int             (F_API *FSOUND_Record_GetDriver)();
192
    signed char     (F_API *FSOUND_Record_StartSample)(FSOUND_SAMPLE *sptr, signed char loop);
193
    signed char     (F_API *FSOUND_Record_Stop)();
194
    int             (F_API *FSOUND_Record_GetPosition)();  
195
    FMUSIC_MODULE * (F_API *FMUSIC_LoadSongEx)(void *data, int length);
196
    signed char     (F_API *FMUSIC_FreeSong)(FMUSIC_MODULE *mod);
197
    void            (F_API *FMUSIC_StopAllSongs)();
198
    signed char     (F_API *FMUSIC_SetZxxCallback)(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback);
199
    signed char     (F_API *FMUSIC_SetRowCallback)(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int rowstep);
200
    signed char     (F_API *FMUSIC_SetOrderCallback)(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int orderstep);
201
    signed char     (F_API *FMUSIC_SetInstCallback)(FMUSIC_MODULE *mod, FMUSIC_CALLBACK callback, int instrument);
202
    signed char     (F_API *FMUSIC_SetSample)(FMUSIC_MODULE *mod, int sampno, FSOUND_SAMPLE *sptr);
203
    signed char     (F_API *FMUSIC_SetUserData)(FMUSIC_MODULE *mod, unsigned int userdata);
204
    signed char     (F_API *FMUSIC_OptimizeChannels)(FMUSIC_MODULE *mod, int maxchannels, int minvolume);
205
    signed char     (F_API *FMUSIC_SetReverb)(signed char reverb);             // MIDI only
206
    signed char     (F_API *FMUSIC_SetMasterSpeed)(FMUSIC_MODULE *mode, float speed);
207
    signed char     (F_API *FMUSIC_SetPanSeperation)(FMUSIC_MODULE *mod, float pansep);
208
    char *          (F_API *FMUSIC_GetName)(FMUSIC_MODULE *mod);
209
    int             (F_API *FMUSIC_GetType)(FMUSIC_MODULE *mod);
210
    int             (F_API *FMUSIC_GetNumOrders)(FMUSIC_MODULE *mod);
211
    int             (F_API *FMUSIC_GetNumPatterns)(FMUSIC_MODULE *mod);
212
    int             (F_API *FMUSIC_GetNumInstruments)(FMUSIC_MODULE *mod);
213
    int             (F_API *FMUSIC_GetNumSamples)(FMUSIC_MODULE *mod);
214
    int             (F_API *FMUSIC_GetNumChannels)(FMUSIC_MODULE *mod);
215
    FSOUND_SAMPLE * (F_API *FMUSIC_GetSample)(FMUSIC_MODULE *mod, int sampno);
216
    int             (F_API *FMUSIC_GetPatternLength)(FMUSIC_MODULE *mod, int orderno);
217
    signed char     (F_API *FMUSIC_IsFinished)(FMUSIC_MODULE *mod);
218
    int             (F_API *FMUSIC_GetMasterVolume)(FMUSIC_MODULE *mod);
219
    int             (F_API *FMUSIC_GetGlobalVolume)(FMUSIC_MODULE *mod);
220
    int             (F_API *FMUSIC_GetOrder)(FMUSIC_MODULE *mod);
221
    int             (F_API *FMUSIC_GetPattern)(FMUSIC_MODULE *mod);
222
    int             (F_API *FMUSIC_GetSpeed)(FMUSIC_MODULE *mod);
223
    int             (F_API *FMUSIC_GetBPM)(FMUSIC_MODULE *mod);
224
    int             (F_API *FMUSIC_GetRow)(FMUSIC_MODULE *mod);
225
    signed char     (F_API *FMUSIC_GetPaused)(FMUSIC_MODULE *mod);
226
    int             (F_API *FMUSIC_GetTime)(FMUSIC_MODULE *mod);
227
    int             (F_API *FMUSIC_GetRealChannel)(FMUSIC_MODULE *mod, int modchannel);
228
    unsigned int    (F_API *FMUSIC_GetUserData)(FMUSIC_MODULE *mod);*/
229
} ;
230
 
231
 
232
extern FMOD_INSTANCE *gFMod;
233
 
234
void LoadFModDLL(); // exits on failure
235
void FreeFModDLL();
236
 
237
} // namespace Sexy
238
 
239
#endif