diff options
author | Eric Fry | 2018-06-17 00:07:36 +1000 |
---|---|---|
committer | Eugene Sandulenko | 2018-07-20 06:43:33 +0000 |
commit | 102dd462734f0baa67ae4f8439094f6aa50b42fa (patch) | |
tree | 86b153edc0fec565d0c3a198309d7254c494df7b /engines/illusions/sound.cpp | |
parent | 09281b85f507a8859de3b03ac512e871d849611e (diff) | |
download | scummvm-rg350-102dd462734f0baa67ae4f8439094f6aa50b42fa.tar.gz scummvm-rg350-102dd462734f0baa67ae4f8439094f6aa50b42fa.tar.bz2 scummvm-rg350-102dd462734f0baa67ae4f8439094f6aa50b42fa.zip |
ILLUSIONS: Wire up audio sliders on option menu.
Set volumes based on scummvm config
Diffstat (limited to 'engines/illusions/sound.cpp')
-rw-r--r-- | engines/illusions/sound.cpp | 35 |
1 files changed, 33 insertions, 2 deletions
diff --git a/engines/illusions/sound.cpp b/engines/illusions/sound.cpp index cf6e4f8748..bbcf8ad75b 100644 --- a/engines/illusions/sound.cpp +++ b/engines/illusions/sound.cpp @@ -20,6 +20,7 @@ * */ +#include "common/config-manager.h" #include "illusions/illusions.h" #include "illusions/sound.h" #include "audio/midiparser.h" @@ -296,7 +297,7 @@ void SoundMan::stopCueingVoice() { } void SoundMan::startVoice(int16 volume, int16 pan) { - _voicePlayer->start(volume, pan); + _voicePlayer->start(calcAdjustedVolume("speech_volume", (uint8)volume), pan); } void SoundMan::stopVoice() { @@ -323,7 +324,7 @@ void SoundMan::loadSound(uint32 soundEffectId, uint32 soundGroupId, bool looping void SoundMan::playSound(uint32 soundEffectId, int16 volume, int16 pan) { Sound *sound = getSound(soundEffectId); if (sound) - sound->play(volume, pan); + sound->play(calcAdjustedVolume("sfx_volume", (uint8)volume), pan); } void SoundMan::stopSound(uint32 soundEffectId) { @@ -364,4 +365,34 @@ void SoundMan::fadeMidiMusic(int16 finalVolume, int16 duration) { _midiPlayer->fade(finalVolume, duration); } +void SoundMan::setMusicVolume(uint8 volume) { + ConfMan.setInt("music_volume", volume); + _midiPlayer->syncVolume(); +} + +void SoundMan::setSfxVolume(uint8 volume) { + ConfMan.setInt("sfx_volume", volume); +} + +void SoundMan::setSpeechVolume(uint8 volume) { + ConfMan.setInt("speech_volume", volume); +} + +uint8 SoundMan::calcAdjustedVolume(const Common::String &volumeConfigKey, uint8 volume) { + uint8 masterVolume = (uint8)ConfMan.getInt(volumeConfigKey); + return (uint8)(((float)masterVolume/255) * (float)volume); +} + +uint8 SoundMan::getMusicVolume() { + return (uint8)ConfMan.getInt("music_volume"); +} + +uint8 SoundMan::getSfxVolume() { + return (uint8)ConfMan.getInt("sfx_volume"); +} + +uint8 SoundMan::getSpeechVolume() { + return (uint8)ConfMan.getInt("speech_volume"); +} + } // End of namespace Illusions |