aboutsummaryrefslogtreecommitdiff
path: root/engines/sword25/sfx/fmodexsound.h
diff options
context:
space:
mode:
Diffstat (limited to 'engines/sword25/sfx/fmodexsound.h')
-rw-r--r--engines/sword25/sfx/fmodexsound.h120
1 files changed, 59 insertions, 61 deletions
diff --git a/engines/sword25/sfx/fmodexsound.h b/engines/sword25/sfx/fmodexsound.h
index 3b1a5f640a..a32d6bb4d8 100644
--- a/engines/sword25/sfx/fmodexsound.h
+++ b/engines/sword25/sfx/fmodexsound.h
@@ -23,7 +23,7 @@
*
*/
-/*
+/*
* This code is based on Broken Sword 2.5 engine
*
* Copyright (c) Malte Thiesen, Daniel Queteschiner and Michael Elsdoerfer
@@ -60,54 +60,52 @@ struct FMOD_CHANNEL;
// Klassendefinition
// -----------------------------------------------------------------------------
-class BS_FMODExSound : public BS_SoundEngine
-{
+class BS_FMODExSound : public BS_SoundEngine {
public:
// -----------------------------------------------------------------------------
// Konstruktion / Destruktion
// -----------------------------------------------------------------------------
-
- BS_FMODExSound(BS_Kernel* pKernel);
+
+ BS_FMODExSound(BS_Kernel *pKernel);
virtual ~BS_FMODExSound();
- bool Init(unsigned int SampleRate, unsigned int Channels = 32);
- void Update();
- void SetVolume(float Volume, SOUND_TYPES Type);
- float GetVolume(SOUND_TYPES Type);
- void PauseAll();
- void ResumeAll();
- void PauseLayer(unsigned int Layer);
- void ResumeLayer(unsigned int Layer);
- bool PlaySound(const std::string& FileName, SOUND_TYPES Type, float Volume, float Pan, bool Loop, int LoopStart, int LoopEnd, unsigned int Layer);
- unsigned int PlaySoundEx(const std::string& FileName, SOUND_TYPES Type, float Volume, float Pan, bool Loop, int LoopStart, int LoopEnd, unsigned int Layer);
- unsigned int PlayDynamicSoundEx(DynamicSoundReadCallback ReadCallback, void * UserData, SOUND_TYPES Type, unsigned int SampleRate, unsigned int BitsPerSample, unsigned int Channels, float Volume = 1.0f, float Pan = 0.0f, unsigned int Layer = 0);
-
- void SetSoundVolume(unsigned int Handle, float Volume);
- void SetSoundPanning(unsigned int Handle, float Pan);
- void PauseSound(unsigned int Handle);
- void ResumeSound(unsigned int Handle);
- void StopSound(unsigned int Handle);
- bool IsSoundPaused(unsigned int Handle);
- bool IsSoundPlaying(unsigned int Handle);
- float GetSoundVolume(unsigned int Handle);
- float GetSoundPanning(unsigned int Handle);
- float GetSoundTime(unsigned int Handle);
-
- BS_Resource * LoadResource(const std::string& FileName);
- bool CanLoadResource(const std::string& FileName);
+ bool Init(unsigned int SampleRate, unsigned int Channels = 32);
+ void Update();
+ void SetVolume(float Volume, SOUND_TYPES Type);
+ float GetVolume(SOUND_TYPES Type);
+ void PauseAll();
+ void ResumeAll();
+ void PauseLayer(unsigned int Layer);
+ void ResumeLayer(unsigned int Layer);
+ bool PlaySound(const std::string &FileName, SOUND_TYPES Type, float Volume, float Pan, bool Loop, int LoopStart, int LoopEnd, unsigned int Layer);
+ unsigned int PlaySoundEx(const std::string &FileName, SOUND_TYPES Type, float Volume, float Pan, bool Loop, int LoopStart, int LoopEnd, unsigned int Layer);
+ unsigned int PlayDynamicSoundEx(DynamicSoundReadCallback ReadCallback, void *UserData, SOUND_TYPES Type, unsigned int SampleRate, unsigned int BitsPerSample, unsigned int Channels, float Volume = 1.0f, float Pan = 0.0f, unsigned int Layer = 0);
+
+ void SetSoundVolume(unsigned int Handle, float Volume);
+ void SetSoundPanning(unsigned int Handle, float Pan);
+ void PauseSound(unsigned int Handle);
+ void ResumeSound(unsigned int Handle);
+ void StopSound(unsigned int Handle);
+ bool IsSoundPaused(unsigned int Handle);
+ bool IsSoundPlaying(unsigned int Handle);
+ float GetSoundVolume(unsigned int Handle);
+ float GetSoundPanning(unsigned int Handle);
+ float GetSoundTime(unsigned int Handle);
+
+ BS_Resource *LoadResource(const std::string &FileName);
+ bool CanLoadResource(const std::string &FileName);
// -----------------------------------------------------------------------------
// Persistenz
// -----------------------------------------------------------------------------
-
- bool Persist(BS_OutputPersistenceBlock & Writer);
- bool Unpersist(BS_InputPersistenceBlock & Reader);
-
+
+ bool Persist(BS_OutputPersistenceBlock &Writer);
+ bool Unpersist(BS_InputPersistenceBlock &Reader);
+
private:
- struct PlayingSoundData
- {
+ struct PlayingSoundData {
PlayingSoundData() {};
- PlayingSoundData(BS_Resource * ResourcePtr_, BS_FMODExChannel * ChannelPtr_, SOUND_TYPES Type_, unsigned int Layer_, float Volume_, DynamicSoundReadCallback ReadCallback_ = 0, void * UserData_ = 0) :
+ PlayingSoundData(BS_Resource *ResourcePtr_, BS_FMODExChannel *ChannelPtr_, SOUND_TYPES Type_, unsigned int Layer_, float Volume_, DynamicSoundReadCallback ReadCallback_ = 0, void *UserData_ = 0) :
ResourcePtr(ResourcePtr_),
ChannelPtr(ChannelPtr_),
Type(Type_),
@@ -118,38 +116,38 @@ private:
Paused(false),
PausedLayer(false),
PausedGlobal(false)
- {}
-
- BS_Resource * ResourcePtr;
- BS_FMODExChannel * ChannelPtr;
- SOUND_TYPES Type;
- unsigned int Layer;
- DynamicSoundReadCallback ReadCallback;
- void * UserData;
-
- float Volume;
- bool Paused;
- bool PausedLayer;
- bool PausedGlobal;
+ {}
+
+ BS_Resource *ResourcePtr;
+ BS_FMODExChannel *ChannelPtr;
+ SOUND_TYPES Type;
+ unsigned int Layer;
+ DynamicSoundReadCallback ReadCallback;
+ void *UserData;
+
+ float Volume;
+ bool Paused;
+ bool PausedLayer;
+ bool PausedGlobal;
};
- typedef BS_Hashmap<unsigned int, PlayingSoundData> PSM;
- typedef BS_Hashmap<unsigned int, PlayingSoundData>::iterator PSM_ITER;
- typedef BS_Hashmap<unsigned int, PlayingSoundData>::const_iterator PSM_CONST_ITER;
+ typedef BS_Hashmap<unsigned int, PlayingSoundData> PSM;
+ typedef BS_Hashmap<unsigned int, PlayingSoundData>::iterator PSM_ITER;
+ typedef BS_Hashmap<unsigned int, PlayingSoundData>::const_iterator PSM_CONST_ITER;
PSM m_PlayingSoundsMap;
- FMOD_SYSTEM * m_FMOD;
- float m_Volumes[3];
- unsigned int m_NextHandle;
+ FMOD_SYSTEM *m_FMOD;
+ float m_Volumes[3];
+ unsigned int m_NextHandle;
- void RemoveInactiveSounds();
- PlayingSoundData * GetPlayingSoundDataByHandle(unsigned int Handle);
- unsigned int PlaySoundInternal(const std::string& FileName, SOUND_TYPES Type, float Volume, float Pan, bool Loop, int LoopStart, int LoopEnd, unsigned int Layer, unsigned int Handle, unsigned int Position);
- unsigned int CountPlayingDynamicSounds();
+ void RemoveInactiveSounds();
+ PlayingSoundData *GetPlayingSoundDataByHandle(unsigned int Handle);
+ unsigned int PlaySoundInternal(const std::string &FileName, SOUND_TYPES Type, float Volume, float Pan, bool Loop, int LoopStart, int LoopEnd, unsigned int Layer, unsigned int Handle, unsigned int Position);
+ unsigned int CountPlayingDynamicSounds();
static FMOD_RESULT F_CALLBACK FMODExDynamicSoundSetPosCallback(FMOD_SOUND *sound, int subsound, unsigned int position, FMOD_TIMEUNIT postype);
static FMOD_RESULT F_CALLBACK FMODExDynamicSoundReadCallback(FMOD_SOUND *sound, void *data, unsigned int datalen);
- static FMOD_RESULT F_CALLBACK DSPReadCallback(FMOD_DSP_STATE * dsp_state, float * inbuffer, float * outbuffer, unsigned int length, int inchannels, int outchannels);
+ static FMOD_RESULT F_CALLBACK DSPReadCallback(FMOD_DSP_STATE *dsp_state, float *inbuffer, float *outbuffer, unsigned int length, int inchannels, int outchannels);
};
#endif