aboutsummaryrefslogtreecommitdiff
path: root/engines
diff options
context:
space:
mode:
authorJohannes Schickel2011-11-13 22:25:19 +0100
committerJohannes Schickel2011-11-13 22:25:19 +0100
commit4b433c296118cddc8811f1c5a34a9453bad253d0 (patch)
treeeab9b2c5f17afcfea2af44d33ffa5645548611a8 /engines
parent9a719851712845acaa6096bcb1c9ca2df2d46444 (diff)
downloadscummvm-rg350-4b433c296118cddc8811f1c5a34a9453bad253d0.tar.gz
scummvm-rg350-4b433c296118cddc8811f1c5a34a9453bad253d0.tar.bz2
scummvm-rg350-4b433c296118cddc8811f1c5a34a9453bad253d0.zip
ENGINES: Handle speech_mute in syncSoundSettings.
This assures we always mute all speech sounds, when the user selects subtitles only mode. Hopefully no engine abuses the speech sound type for other sounds, since that would make them gone now too. Then again I would consider this an utter abuse of the speech sound type...
Diffstat (limited to 'engines')
-rw-r--r--engines/engine.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/engines/engine.cpp b/engines/engine.cpp
index ee1d53fa9c..e4e4630841 100644
--- a/engines/engine.cpp
+++ b/engines/engine.cpp
@@ -479,10 +479,20 @@ void Engine::syncSoundSettings() {
if (ConfMan.hasKey("mute"))
mute = ConfMan.getBool("mute");
+ // We need to handle the speech mute separately here. This is because the
+ // engine code should be able to rely on all speech sounds muted when the
+ // user specified subtitles only mode, which results in "speech_mute" to
+ // be set to "true". The global mute setting has precedence over the
+ // speech mute setting though.
+ bool speechMute = mute;
+ if (!speechMute)
+ speechMute = ConfMan.getBool("speech_mute");
+
_mixer->muteSoundType(Audio::Mixer::kPlainSoundType, mute);
_mixer->muteSoundType(Audio::Mixer::kMusicSoundType, mute);
_mixer->muteSoundType(Audio::Mixer::kSFXSoundType, mute);
- _mixer->muteSoundType(Audio::Mixer::kSpeechSoundType, mute);
+ _mixer->muteSoundType(Audio::Mixer::kSpeechSoundType, speechMute);
+
_mixer->setVolumeForSoundType(Audio::Mixer::kPlainSoundType, Audio::Mixer::kMaxMixerVolume);
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, soundVolumeMusic);
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, soundVolumeSFX);