aboutsummaryrefslogtreecommitdiff
path: root/engines/lure/sound.h
diff options
context:
space:
mode:
authorPaul Gilbert2007-08-12 11:08:44 +0000
committerPaul Gilbert2007-08-12 11:08:44 +0000
commitc247257721f4e42b18d5dbc87f088fbfed278f00 (patch)
treeb0954f6cd39d25827febc6571a8dcccbe7da0718 /engines/lure/sound.h
parent52292983b03641fdef2d45dabb1d137b25cd6481 (diff)
downloadscummvm-rg350-c247257721f4e42b18d5dbc87f088fbfed278f00.tar.gz
scummvm-rg350-c247257721f4e42b18d5dbc87f088fbfed278f00.tar.bz2
scummvm-rg350-c247257721f4e42b18d5dbc87f088fbfed278f00.zip
Added part of the framework for playing sounds
svn-id: r28545
Diffstat (limited to 'engines/lure/sound.h')
-rw-r--r--engines/lure/sound.h35
1 files changed, 33 insertions, 2 deletions
diff --git a/engines/lure/sound.h b/engines/lure/sound.h
index 4a7422d77f..95cb5f6f88 100644
--- a/engines/lure/sound.h
+++ b/engines/lure/sound.h
@@ -24,14 +24,45 @@
#define LURE_SOUND_H
#include "lure/luredefs.h"
+#include "lure/disk.h"
+#include "lure/memory.h"
#include "common/singleton.h"
namespace Lure {
+#define NUM_CHANNELS 8
+
class SoundManager: public Common::Singleton<SoundManager> {
+private:
+ MemoryBlock *_descs;
+ int _numDescs;
+ SoundDescResource *soundDescs() { return (SoundDescResource *) _descs->data(); }
+ ManagedList<SoundDescResource *> _activeSounds;
+ byte _channels[NUM_CHANNELS];
+
+ void bellsBodge();
public:
- static void killSounds();
- static void playSound(uint16 soundId);
+ SoundManager();
+
+ void killSounds();
+ void addSound(uint8 soundIndex, bool tidyFlag = true);
+ void addSound2(uint8 soundIndex);
+ void stopSound(uint8 soundIndex);
+ void killSound(uint8 soundNumber);
+ void setVolume(uint8 soundNumber, uint8 volume);
+ void tidySounds();
+ SoundDescResource *findSound(uint8 soundNumber);
+ void removeSounds();
+ void restoreSounds();
+
+ // The following methods implement the external sound player module
+ void musicInterface_Play(uint8 soundNumber, bool isEffect, uint8 channelNumber);
+ void musicInterface_Stop(uint8 soundNumber);
+ bool musicInterface_CheckPlaying(uint8 soundNumber);
+ void musicInterface_SetVolume(uint8 channelNum, uint8 volume);
+ void musicInterface_KillAll();
+ void musicInterface_ContinuePlaying();
+ void musicInterface_TrashReverb();
};
} // End of namespace Lure