mirror of
https://github.com/libretro/scummvm.git
synced 2025-02-20 19:21:46 +00:00
ENGINES: Mute kPlainSoundType in Engine::syncSoundSettings()
The "Mute all" option rarely muted all audio streams, since we have this abomination called kPlainSoundType (and there is no volume slider for this type). Both, not-really-muting, and adding yet another slider is a horrible user experience imho - especially on handheld ports. So mute this sound in the default implementation, and unmute it to the maximum volume. When an engines has a volume level settings for sounds it plays with this type, it should overwrite said member and set it there.
This commit is contained in:
parent
6650e69a30
commit
46e397fb25
@ -430,7 +430,6 @@ int Engine::runDialog(GUI::Dialog &dialog) {
|
||||
}
|
||||
|
||||
void Engine::syncSoundSettings() {
|
||||
|
||||
// Sync the engine with the config manager
|
||||
int soundVolumeMusic = ConfMan.getInt("music_volume");
|
||||
int soundVolumeSFX = ConfMan.getInt("sfx_volume");
|
||||
@ -440,6 +439,7 @@ void Engine::syncSoundSettings() {
|
||||
if (ConfMan.hasKey("mute"))
|
||||
mute = ConfMan.getBool("mute");
|
||||
|
||||
_mixer->setVolumeForSoundType(Audio::Mixer::kPlainSoundType, (mute ? 0 : Audio::Mixer::kMaxMixerVolume));
|
||||
_mixer->setVolumeForSoundType(Audio::Mixer::kMusicSoundType, (mute ? 0 : soundVolumeMusic));
|
||||
_mixer->setVolumeForSoundType(Audio::Mixer::kSFXSoundType, (mute ? 0 : soundVolumeSFX));
|
||||
_mixer->setVolumeForSoundType(Audio::Mixer::kSpeechSoundType, (mute ? 0 : soundVolumeSpeech));
|
||||
|
@ -163,6 +163,15 @@ public:
|
||||
* Notify the engine that the sound settings in the config manager may have
|
||||
* changed and that it hence should adjust any internal volume etc. values
|
||||
* accordingly.
|
||||
* The default implementation sets the volume levels of all mixer sound
|
||||
* types according to the config entries of the active domain.
|
||||
* When overwriting, call the default implementation first, then adjust the
|
||||
* volumes further (if required).
|
||||
*
|
||||
* @note When setting volume levels, respect the "mute" config entry.
|
||||
* @note The volume for the plain sound type is reset to the maximum
|
||||
* volume. If the engine can associate its own value for this
|
||||
* type, it needs to overwrite this member and set it accordingly.
|
||||
* @todo find a better name for this
|
||||
*/
|
||||
virtual void syncSoundSettings();
|
||||
|
Loading…
x
Reference in New Issue
Block a user