diff options
author | Eugene Sandulenko | 2006-06-11 20:51:14 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2006-06-11 20:51:14 +0000 |
commit | 4867a75918d11d19eec59d955109455cb4a36432 (patch) | |
tree | 767b1c40e8bfdcfac0f93e9c62dc049fede3ba9c /gui/options.cpp | |
parent | 62e286c30f8d2f9f2a55ed5741c805e43fc11867 (diff) | |
download | scummvm-rg350-4867a75918d11d19eec59d955109455cb4a36432.tar.gz scummvm-rg350-4867a75918d11d19eec59d955109455cb4a36432.tar.bz2 scummvm-rg350-4867a75918d11d19eec59d955109455cb4a36432.zip |
Patch #1336171: "MIDI gain setting for FluidSynth" with slight modifications
of PSP theme to fit new slider into MIDI tab.
svn-id: r23033
Diffstat (limited to 'gui/options.cpp')
-rw-r--r-- | gui/options.cpp | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/gui/options.cpp b/gui/options.cpp index 75835191af..79f2044589 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -58,6 +58,7 @@ namespace GUI { // - aspect ratio, language, platform, debug mode/level, cd drive, joystick, multi midi, native mt32 enum { + kMidiGainChanged = 'mgch', kMusicVolumeChanged = 'muvc', kSfxVolumeChanged = 'sfvc', kSubtitleToggle = 'sttg', @@ -199,6 +200,13 @@ void OptionsDialog::open() { _soundFont->setLabel("None"); else _soundFont->setLabel(soundFont); + + // MIDI gain setting + char buf[10]; + + _midiGainSlider->setValue(ConfMan.getInt("midi_gain", _domain)); + sprintf(buf, "%.2f", (double)_midiGainSlider->getValue() / 100.0); + _midiGainLabel->setLabel(buf); } // Volume options @@ -304,6 +312,7 @@ void OptionsDialog::close() { ConfMan.setBool("multi_midi", _multiMidiCheckbox->getState(), _domain); ConfMan.setBool("native_mt32", _mt32Checkbox->getState(), _domain); ConfMan.setBool("enable_gs", _enableGSCheckbox->getState(), _domain); + ConfMan.setInt("midi_gain", _midiGainSlider->getValue(), _domain); String soundFont(_soundFont->getLabel()); if (!soundFont.empty() && (soundFont != "None")) @@ -312,6 +321,7 @@ void OptionsDialog::close() { ConfMan.removeKey("multi_midi", _domain); ConfMan.removeKey("native_mt32", _domain); ConfMan.removeKey("enable_gs", _domain); + ConfMan.removeKey("midi_gain", _domain); ConfMan.removeKey("soundfont", _domain); } } @@ -360,7 +370,14 @@ void OptionsDialog::close() { } void OptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) { + char buf[10]; + switch (cmd) { + case kMidiGainChanged: + sprintf(buf, "%.2f", (double)_midiGainSlider->getValue() / 100.0); + _midiGainLabel->setLabel(buf); + _midiGainLabel->draw(); + break; case kMusicVolumeChanged: _musicVolumeLabel->setValue(_musicVolumeSlider->getValue()); _musicVolumeLabel->draw(); @@ -423,6 +440,9 @@ void OptionsDialog::setMIDISettingsState(bool enabled) { _multiMidiCheckbox->setEnabled(enabled); _mt32Checkbox->setEnabled(enabled); _enableGSCheckbox->setEnabled(enabled); + _midiGainDesc->setEnabled(enabled); + _midiGainSlider->setEnabled(enabled); + _midiGainLabel->setEnabled(enabled); } void OptionsDialog::setVolumeSettingsState(bool enabled) { @@ -518,6 +538,13 @@ void OptionsDialog::addMIDIControls(GuiObject *boss, const String &prefix) { // GS Extensions setting _enableGSCheckbox = new CheckboxWidget(boss, prefix + "mcGSCheckbox", "Enable Roland GS Mode", 0, 0); + // MIDI gain setting (FluidSynth uses this) + _midiGainDesc = new StaticTextWidget(boss, prefix + "mcMidiGainText", "MIDI gain:"); + _midiGainSlider = new SliderWidget(boss, prefix + "mcMidiGainSlider", kMidiGainChanged); + _midiGainSlider->setMinValue(0); + _midiGainSlider->setMaxValue(1000); + _midiGainLabel = new StaticTextWidget(boss, prefix + "mcMidiGainLabel", "1.00"); + _enableMIDISettings = true; } |