diff options
author | Nipun Garg | 2019-07-25 06:51:06 +0530 |
---|---|---|
committer | Eugene Sandulenko | 2019-09-03 17:17:28 +0200 |
commit | a09ac7b1140b3b1db32b5f6cb553643744544400 (patch) | |
tree | 321895553a2d40e1f142d0a889fa0497ede3b026 /engines/hdb/sound.h | |
parent | 236318ce0cef0ed50d4c6876a74ebe1994567a98 (diff) | |
download | scummvm-rg350-a09ac7b1140b3b1db32b5f6cb553643744544400.tar.gz scummvm-rg350-a09ac7b1140b3b1db32b5f6cb553643744544400.tar.bz2 scummvm-rg350-a09ac7b1140b3b1db32b5f6cb553643744544400.zip |
HDB: Add voice related data
Diffstat (limited to 'engines/hdb/sound.h')
-rw-r--r-- | engines/hdb/sound.h | 48 |
1 files changed, 38 insertions, 10 deletions
diff --git a/engines/hdb/sound.h b/engines/hdb/sound.h index 67b8d10da5..68501a14ec 100644 --- a/engines/hdb/sound.h +++ b/engines/hdb/sound.h @@ -47,6 +47,11 @@ #define FIRST_VOICE V00_AIRLOCK_01 #define NUM_VOICES ( LAST_SOUND - FIRST_VOICE ) +#include "audio/audiostream.h" +#include "audio/mixer.h" +#include "audio/decoders/wave.h" +#include "audio/decoders/mp3.h" + namespace HDB { enum { @@ -1408,6 +1413,18 @@ struct SoundLookUp { const char *luaName; // name for Lua code to use }; +struct Voice { + bool active; + int32 length; + int index; + Audio::SoundHandle *handle; + + Voice() : active(false), length(0), index(0), handle(new Audio::SoundHandle) {} + ~Voice() { + delete handle; + } +}; + struct SoundCache { int loaded; // -1 = freeable; in memory, 0 = not cached, 1 = cached int32 size; // size of sound @@ -1417,9 +1434,7 @@ struct SoundCache { //void *data; // actual file data //FSOUND_SAMPLE *sample; // used to play sound in FMOD - SoundCache() : loaded(0), size(0), name(nullptr), luaName(nullptr), ext(0) { - - } + SoundCache() : loaded(0), size(0), name(nullptr), luaName(nullptr), ext(0) {} }; class Sound { @@ -1432,7 +1447,6 @@ public: bool init(); void save(Common::OutSaveFile *out); void loadSaveFile(Common::InSaveFile *in); - void clearPersistent(); void setMusicVolume(int value) { //debug(9, "STUB: Add Music System Variables"); } @@ -1441,18 +1455,19 @@ public: return 1; } void setSFXVolume(int value) { - //debug(9, "STUB: Add Music System Variables"); + _sfxVolume = value; } int getSFXVolume() { - //debug(9, "STUB: Add Music System Variables"); - return 1; + return _sfxVolume; } void setVoiceStatus(int value) { - //debug(9, "STUB: Add Music System Variables"); + _voicesOn = value; } int getVoiceStatus() { - //debug(9, "STUB: Add Music System Variables"); - return 1; + return _voicesOn; + } + void clearPersistent() { + memset(&_voicePlayed[0], 0, sizeof(_voicePlayed)); } bool playSound(int index); @@ -1476,6 +1491,19 @@ public: void markSoundCacheFreeable(); + // Voice System Variables + + enum { + GUY, + OTHER, + MAX_VOICES + }; + + Voice _voices[MAX_VOICES]; + + int _voicesOn; + byte _voicePlayed[NUM_VOICES]; + // Sound Caching System Variables SoundCache _soundCache[kMaxSounds]; |