diff options
author | Johannes Schickel | 2009-05-12 18:42:44 +0000 |
---|---|---|
committer | Johannes Schickel | 2009-05-12 18:42:44 +0000 |
commit | 4f0768b9096aab65961d697ca60d6e939f36eae2 (patch) | |
tree | cdd956f755a04eb23c140913a0e681ad6094b79b /gui/options.cpp | |
parent | 938db170f3af6eaade05fec36edc8011e155422f (diff) | |
download | scummvm-rg350-4f0768b9096aab65961d697ca60d6e939f36eae2.tar.gz scummvm-rg350-4f0768b9096aab65961d697ca60d6e939f36eae2.tar.bz2 scummvm-rg350-4f0768b9096aab65961d697ca60d6e939f36eae2.zip |
- Add support for selecting the OPL emulator being used (config entry: "opl_driver")
- Make MAME FM OPL the default emulator again
- Add GUI support for selecting the active OPL emulator
- Update themes
svn-id: r40496
Diffstat (limited to 'gui/options.cpp')
-rw-r--r-- | gui/options.cpp | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/gui/options.cpp b/gui/options.cpp index 956c0d8cf6..c152a3a266 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -40,6 +40,7 @@ #include "sound/mididrv.h" #include "sound/mixer.h" +#include "sound/fmopl.h" namespace GUI { @@ -102,6 +103,7 @@ void OptionsDialog::init() { _aspectCheckbox = 0; _enableAudioSettings = false; _midiPopUp = 0; + _oplPopUp = 0; _outputRatePopUp = 0; _enableMIDISettings = false; _multiMidiCheckbox = 0; @@ -181,6 +183,9 @@ void OptionsDialog::open() { _midiPopUp->setSelectedTag(id); } + if (_oplPopUp) + _oplPopUp->setSelectedTag(OPL::Config::parse(ConfMan.get("opl_driver", _domain))); + if (_outputRatePopUp) { _outputRatePopUp->setSelected(1); int value = ConfMan.getInt("output_rate", _domain); @@ -315,6 +320,21 @@ void OptionsDialog::close() { } } + if (_oplPopUp) { + if (_enableAudioSettings) { + const OPL::Config::EmulatorDescription *ed = OPL::Config::getAvailable(); + while (ed->name && ed->id != (int)_oplPopUp->getSelectedTag()) + ++ed; + + if (ed->name) + ConfMan.set("opl_driver", ed->name, _domain); + else + ConfMan.removeKey("opl_driver", _domain); + } else { + ConfMan.removeKey("opl_driver", _domain); + } + } + if (_outputRatePopUp) { if (_enableAudioSettings) { if (_outputRatePopUp->getSelectedTag() != 0) @@ -457,6 +477,7 @@ void OptionsDialog::setAudioSettingsState(bool enabled) { _enableAudioSettings = enabled; _midiPopUp->setEnabled(enabled); + _oplPopUp->setEnabled(enabled); _outputRatePopUp->setEnabled(enabled); } @@ -545,6 +566,16 @@ void OptionsDialog::addAudioControls(GuiObject *boss, const String &prefix) { md++; } + // The OPL emulator popup & a label + _oplPopUp = new PopUpWidget(boss, prefix + "auOPLPopup", "AdLib emulator:"); + + // Populate it + const OPL::Config::EmulatorDescription *ed = OPL::Config::getAvailable(); + while (ed->name) { + _oplPopUp->appendEntry(ed->description, ed->id); + ++ed; + } + // Sample rate settings _outputRatePopUp = new PopUpWidget(boss, prefix + "auSampleRatePopup", "Output rate:"); |