diff options
author | Filippos Karapetis | 2009-05-25 10:30:19 +0000 |
---|---|---|
committer | Filippos Karapetis | 2009-05-25 10:30:19 +0000 |
commit | d59796fb544fea69d1b2f27f89d6eb30bf5d0780 (patch) | |
tree | 558e122a71e404cd56aa7742c57b16f108a28f46 /engines/sci/resource.h | |
parent | 5ef58bdfbe443c19d2f185d924b5058f25cab962 (diff) | |
download | scummvm-rg350-d59796fb544fea69d1b2f27f89d6eb30bf5d0780.tar.gz scummvm-rg350-d59796fb544fea69d1b2f27f89d6eb30bf5d0780.tar.bz2 scummvm-rg350-d59796fb544fea69d1b2f27f89d6eb30bf5d0780.zip |
Objectified the AudioResource code (used for speech and digitized music in CD talkie games)
svn-id: r40880
Diffstat (limited to 'engines/sci/resource.h')
-rw-r--r-- | engines/sci/resource.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/engines/sci/resource.h b/engines/sci/resource.h index 8899cbdc6b..f3593ded32 100644 --- a/engines/sci/resource.h +++ b/engines/sci/resource.h @@ -30,6 +30,9 @@ #include "common/file.h" #include "common/archive.h" +#include "sound/audiostream.h" +#include "sound/mixer.h" // for SoundHandle + #include "sci/engine/vm.h" // for Object #include "sci/decompressor.h" @@ -299,6 +302,32 @@ protected: //bool _syncStarted; // not used }; +class AudioResource { +public: + AudioResource(); + ~AudioResource(); + + void setAudioRate(uint16 audioRate) { _audioRate = audioRate; } + void setAudioLang(int16 lang); + + Audio::SoundHandle* getAudioHandle() { return &_audioHandle; } + int getAudioPosition(); + Audio::AudioStream* getAudioStream(uint16 audioNumber, int* sampleLen); + Audio::AudioStream* getAudioStream(Resource* audioRes, int* sampleLen); + + void stop() { g_system->getMixer()->stopHandle(_audioHandle); } + void pause() { g_system->getMixer()->pauseHandle(_audioHandle, true); } + void resume() { g_system->getMixer()->pauseHandle(_audioHandle, false); } + +private: + Audio::SoundHandle _audioHandle; + uint16 _audioRate; + int16 _lang; + byte *_audioMap; + + bool findAudEntry(uint16 audioNumber, byte& volume, uint32& offset, uint32& size); +}; + } // End of namespace Sci #endif // SCI_SCICORE_RESOURCE_H |