aboutsummaryrefslogtreecommitdiff
path: root/engines/sherlock/sound.cpp
diff options
context:
space:
mode:
authorPaul Gilbert2016-02-05 19:31:35 -0500
committerPaul Gilbert2016-02-05 19:31:35 -0500
commit456e5956e09406dc618ab49518dd83dec0e59641 (patch)
treeed14254f19aafa2ebaa97328e6cad188db81b481 /engines/sherlock/sound.cpp
parentbb9052bf6f9a566c9862d97f25f38eba93062010 (diff)
downloadscummvm-rg350-456e5956e09406dc618ab49518dd83dec0e59641.tar.gz
scummvm-rg350-456e5956e09406dc618ab49518dd83dec0e59641.tar.bz2
scummvm-rg350-456e5956e09406dc618ab49518dd83dec0e59641.zip
SHERLOCK: RT: Properly hook up volume and mute toggles in Options dialog
Diffstat (limited to 'engines/sherlock/sound.cpp')
-rw-r--r--engines/sherlock/sound.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/engines/sherlock/sound.cpp b/engines/sherlock/sound.cpp
index 56ac2a5d9a..5a9f0c2ec6 100644
--- a/engines/sherlock/sound.cpp
+++ b/engines/sherlock/sound.cpp
@@ -58,10 +58,9 @@ Sound::Sound(SherlockEngine *vm, Audio::Mixer *mixer) : _vm(vm), _mixer(mixer) {
_soundPlaying = false;
_speechPlaying = false;
_curPriority = 0;
- _soundVolume = 255;
-
- _soundOn = true;
- _speechOn = true;
+ _soundVolume = ConfMan.hasKey("sfx_volume") ? ConfMan.getInt("sfx_volume") : 255;
+ _soundOn = ConfMan.hasKey("mute") ? !ConfMan.getBool("mute") : true;
+ _speechOn = ConfMan.hasKey("speech_mute") ? !ConfMan.getBool("speech_mute") : true;
if (IS_3DO) {
// 3DO: we don't need to prepare anything for sound
@@ -239,7 +238,10 @@ Audio::SoundHandle &Sound::getFreeSoundHandle() {
}
void Sound::setVolume(int volume) {
- warning("TODO: setVolume - %d", volume);
+ _soundVolume = volume;
+ _vm->_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, volume);
+ _vm->_mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, volume);
+ _vm->_mixer->setVolumeForSoundType(Audio::Mixer::kPlainSoundType, volume);
}
void Sound::playSpeech(const Common::String &name) {