diff options
Diffstat (limited to 'engines/access/sound.h')
-rw-r--r-- | engines/access/sound.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/engines/access/sound.h b/engines/access/sound.h index e11a6b9730..d75540dd13 100644 --- a/engines/access/sound.h +++ b/engines/access/sound.h @@ -24,14 +24,16 @@ #define ACCESS_SOUND_H #include "common/scummsys.h" -#include "audio/audiostream.h" -#include "audio/mixer.h" #include "access/files.h" #include "audio/midiplayer.h" -#include "audio/midiparser.h" #define MAX_SOUNDS 20 +namespace Audio { +class AudioStream; +class SoundHandle; +} + namespace Access { class AccessEngine; @@ -45,15 +47,24 @@ struct SoundEntry { }; class SoundManager { + struct QueuedSound { + Audio::AudioStream *_stream; + int _soundId; + + QueuedSound() : _stream(nullptr), _soundId(-1) {} + QueuedSound(Audio::AudioStream *stream, int soundId) : _stream(stream), _soundId(soundId) {} + }; private: AccessEngine *_vm; Audio::Mixer *_mixer; - Audio::SoundHandle _effectsHandle; - Common::Array<Audio::AudioStream *> _queue; + Audio::SoundHandle *_effectsHandle; + Common::Array<QueuedSound> _queue; void clearSounds(); - void playSound(Resource *res, int priority, bool loop); + void playSound(Resource *res, int priority, bool loop, int soundIndex = -1); + + bool isSoundQueued(int soundId) const; public: Common::Array<SoundEntry> _soundTable; bool _playingSound; |