aboutsummaryrefslogtreecommitdiff
path: root/gui/options.cpp
diff options
context:
space:
mode:
authorJohannes Schickel2009-05-12 18:42:44 +0000
committerJohannes Schickel2009-05-12 18:42:44 +0000
commit4f0768b9096aab65961d697ca60d6e939f36eae2 (patch)
treecdd956f755a04eb23c140913a0e681ad6094b79b /gui/options.cpp
parent938db170f3af6eaade05fec36edc8011e155422f (diff)
downloadscummvm-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.cpp31
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:");