[Scummvm-cvs-logs] scummvm master -> 94edb3409fa949a6391c54adb4bf7fc4a1d210ad

lordhoto lordhoto at gmail.com
Sat Jan 26 14:10:06 CET 2013


This automated email contains information about 8 new commits which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
681f81211f FLUIDSYNTH: Add separate dialog for FluidSynth settings
bc33b5c0f1 BADA: Add completely untested layout changes to Bada theme
a188a43da6 GUI: Make the FluidSynth settings dialog a bit more like Qsynth
45c1296021 GUI: Swap Reverb and Chorus tabs in FluidSynth settings
c780df5175 GUI: Add "Reset" button to FluidSynth settings dialog
10724365aa GUI: Misc FluidSynth-related cleanups.
e4a77aff06 GUI: Move the FluidSynth reset button from Misc tab to bottom
94edb3409f Merge branch 'eriktorbjorn-fluidsynth-settings'


Commit: 681f81211f25c4c9fc163e0ec4d005f796da547d
    https://github.com/scummvm/scummvm/commit/681f81211f25c4c9fc163e0ec4d005f796da547d
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:36:37-08:00

Commit Message:
FLUIDSYNTH: Add separate dialog for FluidSynth settings

I don't really understand what these parameters do, or what the
sensible values are, so for now the sliders are limited only by
the allowed (or, in one case, "safe") values.

Changed paths:
  A gui/fluidsynth-dialog.cpp
  A gui/fluidsynth-dialog.h
    audio/softsynth/fluidsynth.cpp
    base/commandLine.cpp
    gui/ThemeEngine.h
    gui/module.mk
    gui/options.cpp
    gui/options.h
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx



diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index 2451336..7118720 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -127,12 +127,44 @@ int MidiDriver_FluidSynth::open() {
 
 	_synth = new_fluid_synth(_settings);
 
-	// In theory, this ought to reduce CPU load... but it doesn't make any
-	// noticeable difference for me, so disable it for now.
+	int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr");
+	double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0;
+	double chorusSpeed = (double)ConfMan.getInt("fluidsynth_chorus_speed") / 100.0;
+	double chorusDepthMs = (double)ConfMan.getInt("fluidsynth_chorus_depth") / 100.0;
+
+	Common::String chorusWaveForm = ConfMan.get("fluidsynth_chorus_waveform");
+	int chorusType = FLUID_CHORUS_MOD_SINE;
+	if (chorusWaveForm == "sine") {
+		chorusType = FLUID_CHORUS_MOD_SINE;
+	} else {
+		chorusType = FLUID_CHORUS_MOD_TRIANGLE;
+	}
+
+	fluid_synth_set_chorus_on(_synth, 1);
+	fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType);
+
+	double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0;
+	double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0;
+	double reverbWidth = (double)ConfMan.getInt("fluidsynth_reverb_width") / 10.0;
+	double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0;
+
+	fluid_synth_set_reverb_on(_synth, 1);
+	fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel);
+
+	Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation");
+	int interpMethod = FLUID_INTERP_4THORDER;
+	
+	if (interpolation == "none") {
+		interpMethod = FLUID_INTERP_NONE;
+	} else if (interpolation == "linear") {
+		interpMethod = FLUID_INTERP_LINEAR;
+	} else if (interpolation == "4th") {
+		interpMethod = FLUID_INTERP_4THORDER;
+	} else if (interpolation == "7th") {
+		interpMethod = FLUID_INTERP_7THORDER;
+	}
 
-	// fluid_synth_set_interp_method(_synth, -1, FLUID_INTERP_LINEAR);
-	// fluid_synth_set_reverb_on(_synth, 0);
-	// fluid_synth_set_chorus_on(_synth, 0);
+	fluid_synth_set_interp_method(_synth, -1, interpMethod);
 
 	const char *soundfont = ConfMan.get("soundfont").c_str();
 
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index 44007c4..b87ec44 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -239,6 +239,24 @@ void registerDefaults() {
 
 	ConfMan.registerDefault("gui_saveload_chooser", "grid");
 	ConfMan.registerDefault("gui_saveload_last_pos", "0");
+
+#ifdef USE_FLUIDSYNTH
+	// FluidSynth settings. All multiplied by 100, except reverb width
+	// which is multiplied by 10, and chorus number which is an integer
+	// to begin with.
+	ConfMan.registerDefault("fluidsynth_chorus_nr", 3);
+	ConfMan.registerDefault("fluidsynth_chorus_level", 200);
+	ConfMan.registerDefault("fluidsynth_chorus_speed", 30);
+	ConfMan.registerDefault("fluidsynth_chorus_depth", 800);
+	ConfMan.registerDefault("fluidsynth_chorus_waveform", "sine");
+
+	ConfMan.registerDefault("fluidsynth_reverb_roomsize", 20);
+	ConfMan.registerDefault("fluidsynth_reverb_damping", 0);
+	ConfMan.registerDefault("fluidsynth_reverb_width", 5);
+	ConfMan.registerDefault("fluidsynth_reverb_level", 90);
+
+	ConfMan.registerDefault("fluidsynth_misc_interpolation", "4th");
+#endif
 }
 
 //
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index 6fb93d3..18eed5f 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -35,7 +35,7 @@
 #include "graphics/pixelformat.h"
 
 
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.16"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.17"
 
 class OSystem;
 
diff --git a/gui/fluidsynth-dialog.cpp b/gui/fluidsynth-dialog.cpp
new file mode 100644
index 0000000..c7e646e
--- /dev/null
+++ b/gui/fluidsynth-dialog.cpp
@@ -0,0 +1,341 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#include "gui/fluidsynth-dialog.h"
+#include "gui/widgets/tab.h"
+#include "gui/widgets/popup.h"
+
+#include "common/config-manager.h"
+#include "common/translation.h"
+#include "common/debug.h"
+
+namespace GUI {
+
+enum {
+	kOverrideChorusCmd		= 'ocho',
+	kChorusVoiceCountChangedCmd	= 'cvcc',
+	kChorusLevelChangedCmd		= 'clec',
+	kChorusSpeedChangedCmd		= 'cspc',
+	kChorusDepthChangedCmd		= 'cdec',
+
+	kOverrideReverbCmd		= 'orev',
+	kReverbRoomSizeChangedCmd	= 'rrsc',
+	kReverbDampingChangedCmd	= 'rdac',
+	kReverbWidthChangedCmd		= 'rwic',
+	kReverbLevelChangedCmd		= 'rlec'
+};
+
+enum {
+	kWaveFormTypeSine		= 0,
+	kWaveFormTypeTriangle		= 1
+};
+
+enum {
+	kInterpolationNone		= 0,
+	kInterpolationLinear		= 1,
+	kInterpolation4thOrder		= 2,
+	kInterpolation7thOrder		= 3
+};
+
+FluidSynthSettingsDialog::FluidSynthSettingsDialog()
+	: Dialog("FluidSynthSettings") {
+	_domain = Common::ConfigManager::kApplicationDomain;
+
+	_tabWidget = new TabWidget(this, "FluidSynthSettings.TabWidget");
+
+	_tabWidget->addTab(_("Chorus"));
+
+	_chorusOverride = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Chorus.EnableTabCheckbox", _("Override chorus settings"), 0, kOverrideChorusCmd);
+
+	_chorusVoiceCountDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountText", _("Voice count:"));
+	_chorusVoiceCountSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountSlider", 0, kChorusVoiceCountChangedCmd);
+	_chorusVoiceCountSlider->setMinValue(0);
+	_chorusVoiceCountSlider->setMaxValue(99);
+	_chorusVoiceCountLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountLabel", "3");
+
+	_chorusLevelDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelText", _("Level:"));
+	_chorusLevelSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelSlider", 0, kChorusLevelChangedCmd);
+	_chorusLevelSlider->setMinValue(0);
+	_chorusLevelSlider->setMaxValue(1000);
+	_chorusLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelLabel", "2.00");
+
+	_chorusSpeedDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedText", _("Speed (Hz):"));
+	_chorusSpeedSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedSlider", 0, kChorusSpeedChangedCmd);
+	_chorusSpeedSlider->setMinValue(29);
+	_chorusSpeedSlider->setMaxValue(500);
+	_chorusSpeedSlider->setValue(29);
+	_chorusSpeedLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedLabel", "0.30");
+
+	_chorusDepthDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthText", _("Depth:"));
+	_chorusDepthSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthSlider", 0, kChorusDepthChangedCmd);
+	_chorusDepthSlider->setMinValue(0);
+	_chorusDepthSlider->setMaxValue(2100);
+	_chorusDepthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthLabel", "8.00");
+
+	_chorusWaveFormTypePopUpDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormTypeText", _("Waveform type:"));
+	_chorusWaveFormTypePopUp = new PopUpWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormType");
+
+	_chorusWaveFormTypePopUp->appendEntry(_("Sine"), kWaveFormTypeSine);
+	_chorusWaveFormTypePopUp->appendEntry(_("Triangle"), kWaveFormTypeTriangle);
+
+	_tabWidget->addTab(_("Reverb"));
+
+	_reverbOverride = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Override reverb settings"), 0, kOverrideReverbCmd);
+
+	_reverbRoomSizeDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeText", _("Room size:"));
+	_reverbRoomSizeSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeSlider", 0, kReverbRoomSizeChangedCmd);
+	_reverbRoomSizeSlider->setMinValue(0);
+	_reverbRoomSizeSlider->setMaxValue(120);
+	_reverbRoomSizeLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeLabel", "0.20");
+
+	_reverbDampingDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingText", _("Damping:"));
+	_reverbDampingSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingSlider", 0, kReverbDampingChangedCmd);
+	_reverbDampingSlider->setMinValue(0);
+	_reverbDampingSlider->setMaxValue(100);
+	_reverbDampingLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingLabel", "0.00");
+
+	_reverbWidthDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthText", _("Width:"));
+	_reverbWidthSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthSlider", 0, kReverbWidthChangedCmd);
+	_reverbWidthSlider->setMinValue(0);
+	_reverbWidthSlider->setMaxValue(1000);
+	_reverbWidthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthLabel", "0.5");
+
+	_reverbLevelDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelText", _("Level:"));
+	_reverbLevelSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelSlider", 0, kReverbLevelChangedCmd);
+	_reverbLevelSlider->setMinValue(0);
+	_reverbLevelSlider->setMaxValue(100);
+	_reverbLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelLabel", "0.90");
+
+	_tabWidget->addTab(_("Misc"));
+
+	_miscInterpolationPopUpDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Misc.InterpolationText", _("Interpolation:"));
+	_miscInterpolationPopUp = new PopUpWidget(_tabWidget, "FluidSynthSettings_Misc.Interpolation");
+
+	_miscInterpolationPopUp->appendEntry(_("None (fastest)"), kInterpolationNone);
+	_miscInterpolationPopUp->appendEntry(_("Linear"), kInterpolationLinear);
+	_miscInterpolationPopUp->appendEntry(_("Fourth-order"), kInterpolation4thOrder);
+	_miscInterpolationPopUp->appendEntry(_("Seventh-order"), kInterpolation7thOrder);
+
+	_tabWidget->setActiveTab(0);
+
+	new ButtonWidget(this, "FluidSynthSettings.Cancel", _("Cancel"), 0, kCloseCmd);
+	new ButtonWidget(this, "FluidSynthSettings.Ok", _("OK"), 0, kOKCmd);
+}
+
+FluidSynthSettingsDialog::~FluidSynthSettingsDialog() {
+}
+
+void FluidSynthSettingsDialog::open() {
+	Dialog::open();
+
+	// Reset result value
+	setResult(0);
+
+	bool e;
+
+	e = ConfMan.hasKey("fluidsynth_chorus_nr", _domain) ||
+		ConfMan.hasKey("fluidsynth_chorus_level", _domain) ||
+		ConfMan.hasKey("fluidsynth_chorus_speed", _domain) ||
+		ConfMan.hasKey("fluidsynth_chorus_depth", _domain) ||
+		ConfMan.hasKey("fluidsynth_chorus_waveform", _domain);
+	_chorusOverride->setState(e);
+
+	e = ConfMan.hasKey("fluidsynth_reverb_roomsize", _domain) ||
+		ConfMan.hasKey("fluidsynth_reverb_damping", _domain) ||
+		ConfMan.hasKey("fluidsynth_reverb_width", _domain) ||
+		ConfMan.hasKey("fluidsynth_reverb_level", _domain);
+	_reverbOverride->setState(e);
+
+	_chorusVoiceCountSlider->setValue(ConfMan.getInt("fluidsynth_chorus_nr", _domain));
+	_chorusVoiceCountLabel->setLabel(Common::String::format("%d", _chorusVoiceCountSlider->getValue()));
+	_chorusLevelSlider->setValue(ConfMan.getInt("fluidsynth_chorus_level", _domain));
+	_chorusLevelLabel->setLabel(Common::String::format("%.2f", (double)_chorusLevelSlider->getValue() / 100.0));
+	_chorusSpeedSlider->setValue(ConfMan.getInt("fluidsynth_chorus_speed", _domain));
+	_chorusSpeedLabel->setLabel(Common::String::format("%.2f", (double)_chorusSpeedSlider->getValue() / 100.0));
+	_chorusDepthSlider->setValue(ConfMan.getInt("fluidsynth_chorus_depth", _domain));
+	_chorusDepthLabel->setLabel(Common::String::format("%.2f", (double)_chorusDepthSlider->getValue() / 100.0));
+
+	Common::String waveForm = ConfMan.get("fluidsynth_chorus_waveform", _domain);
+	if (waveForm == "sine") {
+		_chorusWaveFormTypePopUp->setSelectedTag(kWaveFormTypeSine);
+	} else if (waveForm == "triangle") {
+		_chorusWaveFormTypePopUp->setSelectedTag(kWaveFormTypeTriangle);
+	}
+
+	_reverbRoomSizeSlider->setValue(ConfMan.getInt("fluidsynth_reverb_roomsize", _domain));
+	_reverbRoomSizeLabel->setLabel(Common::String::format("%.2f", (double)_reverbRoomSizeSlider->getValue() / 100.0));
+	_reverbDampingSlider->setValue(ConfMan.getInt("fluidsynth_reverb_damping", _domain));
+	_reverbDampingLabel->setLabel(Common::String::format("%.2f", (double)_reverbDampingSlider->getValue() / 100.0));
+	_reverbWidthSlider->setValue(ConfMan.getInt("fluidsynth_reverb_width", _domain));
+	_reverbWidthLabel->setLabel(Common::String::format("%.2f", (double)_reverbWidthSlider->getValue() / 10.0));
+	_reverbLevelSlider->setValue(ConfMan.getInt("fluidsynth_reverb_level", _domain));
+	_reverbLevelLabel->setLabel(Common::String::format("%.2f", (double)_reverbLevelSlider->getValue() / 100.0));
+
+	Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation", _domain);
+	if (interpolation == "none") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolationNone);
+	} else if (interpolation == "linear") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolationLinear);
+	} else if (interpolation == "4th") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolation4thOrder);
+	} else if (interpolation == "7th") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolation7thOrder);
+	}
+}
+
+void FluidSynthSettingsDialog::close() {
+	if (getResult()) {
+		if (_chorusOverride->getState()) {
+			ConfMan.setInt("fluidsynth_chorus_nr", _chorusVoiceCountSlider->getValue(), _domain);
+			ConfMan.setInt("fluidsynth_chorus_level", _chorusLevelSlider->getValue(), _domain);
+			ConfMan.setInt("fluidsynth_chorus_speed", _chorusSpeedSlider->getValue(), _domain);
+			ConfMan.setInt("fluidsynth_chorus_depth", _chorusDepthSlider->getValue(), _domain);
+
+			uint32 waveForm = _chorusWaveFormTypePopUp->getSelectedTag();
+			if (waveForm == kWaveFormTypeSine) {
+				ConfMan.set("fluidsynth_chorus_waveform", "sine", _domain);
+			} else if (waveForm == kWaveFormTypeTriangle) {
+				ConfMan.set("fluidsynth_chorus_waveform", "triangle", _domain);
+			} else {
+				ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
+			}
+		} else {
+			ConfMan.removeKey("fluidsynth_chorus_nr", _domain);
+			ConfMan.removeKey("fluidsynth_chorus_level", _domain);
+			ConfMan.removeKey("fluidsynth_chorus_speed", _domain);
+			ConfMan.removeKey("fluidsynth_chorus_depth", _domain);
+			ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
+		}
+
+		if (_reverbOverride->getState()) {
+			ConfMan.setInt("fluidsynth_reverb_roomsize", _reverbRoomSizeSlider->getValue(), _domain);
+			ConfMan.setInt("fluidsynth_reverb_damping", _reverbDampingSlider->getValue(), _domain);
+			ConfMan.setInt("fluidsynth_reverb_width", _reverbWidthSlider->getValue(), _domain);
+			ConfMan.setInt("fluidsynth_reverb_level", _reverbLevelSlider->getValue(), _domain);
+		} else {
+			ConfMan.removeKey("fluidsynth_reverb_roomsize", _domain);
+			ConfMan.removeKey("fluidsynth_reverb_damping", _domain);
+			ConfMan.removeKey("fluidsynth_reverb_width", _domain);
+			ConfMan.removeKey("fluidsynth_reverb_level", _domain);
+		}
+
+		uint32 interpolation = _miscInterpolationPopUp->getSelectedTag();
+		if (interpolation == kInterpolationNone) {
+			ConfMan.set("fluidsynth_misc_interpolation", "none", _domain);
+		} else if (interpolation == kInterpolationLinear) {
+			ConfMan.set("fluidsynth_misc_interpolation", "linear", _domain);
+		} else if (interpolation == kInterpolation4thOrder) {
+			ConfMan.set("fluidsynth_misc_interpolation", "4th", _domain);
+		} else if (interpolation == kInterpolation7thOrder) {
+			ConfMan.set("fluidsynth_misc_interpolation", "7th", _domain);
+		} else {
+			ConfMan.removeKey("fluidsynth_misc_interpolation", _domain);
+		}
+
+		// The main options dialog is responsible for writing the config file.
+	}
+
+	Dialog::close();
+}
+
+void FluidSynthSettingsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
+	switch (cmd) {
+	case kOverrideChorusCmd:
+		setChorusSettingsState(data);
+		break;
+	case kChorusVoiceCountChangedCmd:
+		_chorusVoiceCountLabel->setLabel(Common::String::format("%d", _chorusVoiceCountSlider->getValue()));
+		_chorusVoiceCountLabel->draw();
+		break;
+	case kChorusLevelChangedCmd:
+		_chorusLevelLabel->setLabel(Common::String::format("%.2f", (double)_chorusLevelSlider->getValue() / 100.0));
+		_chorusLevelLabel->draw();
+		break;
+	case kChorusSpeedChangedCmd:
+		_chorusSpeedLabel->setLabel(Common::String::format("%.2f", (double)_chorusSpeedSlider->getValue() / 100.0));
+		_chorusSpeedLabel->draw();
+		break;
+	case kChorusDepthChangedCmd:
+		_chorusDepthLabel->setLabel(Common::String::format("%.2f", (double)_chorusDepthSlider->getValue() / 100.0));
+		_chorusDepthLabel->draw();
+		break;
+	case kOverrideReverbCmd:
+		setReverbSettingsState(data);
+		break;
+	case kReverbRoomSizeChangedCmd:
+		_reverbRoomSizeLabel->setLabel(Common::String::format("%.2f", (double)_reverbRoomSizeSlider->getValue() / 100.0));
+		_reverbRoomSizeLabel->draw();
+		break;
+	case kReverbDampingChangedCmd:
+		_reverbDampingLabel->setLabel(Common::String::format("%.2f", (double)_reverbDampingSlider->getValue() / 100.0));
+		_reverbDampingLabel->draw();
+		break;
+	case kReverbWidthChangedCmd:
+		_reverbWidthLabel->setLabel(Common::String::format("%.1f", (double)_reverbWidthSlider->getValue() / 10.0));
+		_reverbWidthLabel->draw();
+		break;
+	case kReverbLevelChangedCmd:
+		_reverbLevelLabel->setLabel(Common::String::format("%.2f", (double)_reverbLevelSlider->getValue() / 100.0));
+		_reverbLevelLabel->draw();
+		break;
+	case kOKCmd:
+		setResult(1);
+		close();
+		break;
+	default:
+		Dialog::handleCommand(sender, cmd, data);
+		break;
+	}
+}
+
+void FluidSynthSettingsDialog::setChorusSettingsState(bool enabled) {
+	_chorusVoiceCountDesc->setEnabled(enabled);
+	_chorusVoiceCountSlider->setEnabled(enabled);
+	_chorusVoiceCountLabel->setEnabled(enabled);
+	_chorusLevelDesc->setEnabled(enabled);
+	_chorusLevelSlider->setEnabled(enabled);
+	_chorusLevelLabel->setEnabled(enabled);
+	_chorusSpeedDesc->setEnabled(enabled);
+	_chorusSpeedSlider->setEnabled(enabled);
+	_chorusSpeedLabel->setEnabled(enabled);
+	_chorusDepthDesc->setEnabled(enabled);
+	_chorusDepthSlider->setEnabled(enabled);
+	_chorusDepthLabel->setEnabled(enabled);
+	_chorusWaveFormTypePopUpDesc->setEnabled(enabled);
+	_chorusWaveFormTypePopUp->setEnabled(enabled);
+}
+
+void FluidSynthSettingsDialog::setReverbSettingsState(bool enabled) {
+	_reverbRoomSizeDesc->setEnabled(enabled);
+	_reverbRoomSizeSlider->setEnabled(enabled);
+	_reverbRoomSizeLabel->setEnabled(enabled);
+	_reverbDampingDesc->setEnabled(enabled);
+	_reverbDampingSlider->setEnabled(enabled);
+	_reverbDampingLabel->setEnabled(enabled);
+	_reverbWidthDesc->setEnabled(enabled);
+	_reverbWidthSlider->setEnabled(enabled);
+	_reverbWidthLabel->setEnabled(enabled);
+	_reverbLevelDesc->setEnabled(enabled);
+	_reverbLevelSlider->setEnabled(enabled);
+	_reverbLevelLabel->setEnabled(enabled);
+}
+
+} // End of namespace GUI
diff --git a/gui/fluidsynth-dialog.h b/gui/fluidsynth-dialog.h
new file mode 100644
index 0000000..821a452
--- /dev/null
+++ b/gui/fluidsynth-dialog.h
@@ -0,0 +1,98 @@
+/* ScummVM - Graphic Adventure Engine
+ *
+ * ScummVM is the legal property of its developers, whose names
+ * are too numerous to list here. Please refer to the COPYRIGHT
+ * file distributed with this source distribution.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ */
+
+#ifndef FLUIDSYNTH_DIALOG_H
+#define FLUIDSYNTH_DIALOG_H
+
+#include "common/str.h"
+#include "gui/dialog.h"
+
+namespace GUI {
+
+class TabWidget;
+class CheckboxWidget;
+class SliderWidget;
+class StaticTextWidget;
+class PopUpWidget;
+
+class FluidSynthSettingsDialog : public Dialog {
+public:
+	FluidSynthSettingsDialog();
+	~FluidSynthSettingsDialog();
+
+	void open();
+	void close();
+	void handleCommand(CommandSender *sender,  uint32 cmd, uint32 data);
+
+	void setChorusSettingsState(bool enabled);
+	void setReverbSettingsState(bool enabled);
+
+private:
+	Common::String _domain;
+
+	TabWidget *_tabWidget;
+
+	CheckboxWidget *_chorusOverride;
+
+	StaticTextWidget *_chorusVoiceCountDesc;
+	SliderWidget *_chorusVoiceCountSlider;
+	StaticTextWidget *_chorusVoiceCountLabel;
+
+	StaticTextWidget *_chorusLevelDesc;
+	SliderWidget *_chorusLevelSlider;
+	StaticTextWidget *_chorusLevelLabel;
+
+	StaticTextWidget *_chorusSpeedDesc;
+	SliderWidget *_chorusSpeedSlider;
+	StaticTextWidget *_chorusSpeedLabel;
+
+	StaticTextWidget *_chorusDepthDesc;
+	SliderWidget *_chorusDepthSlider;
+	StaticTextWidget *_chorusDepthLabel;
+
+	StaticTextWidget *_chorusWaveFormTypePopUpDesc;
+	PopUpWidget *_chorusWaveFormTypePopUp;
+
+	CheckboxWidget *_reverbOverride;
+
+	StaticTextWidget *_reverbRoomSizeDesc;
+	SliderWidget *_reverbRoomSizeSlider;
+	StaticTextWidget *_reverbRoomSizeLabel;
+
+	StaticTextWidget *_reverbDampingDesc;
+	SliderWidget *_reverbDampingSlider;
+	StaticTextWidget *_reverbDampingLabel;
+
+	StaticTextWidget *_reverbWidthDesc;
+	SliderWidget *_reverbWidthSlider;
+	StaticTextWidget *_reverbWidthLabel;
+
+	StaticTextWidget *_reverbLevelDesc;
+	SliderWidget *_reverbLevelSlider;
+	StaticTextWidget *_reverbLevelLabel;
+
+	StaticTextWidget *_miscInterpolationPopUpDesc;
+	PopUpWidget *_miscInterpolationPopUp;
+};
+
+} // End of namespace GUI
+
+#endif
diff --git a/gui/module.mk b/gui/module.mk
index a435d8c..bda3c88 100644
--- a/gui/module.mk
+++ b/gui/module.mk
@@ -38,5 +38,10 @@ MODULE_OBJS += \
 	browser.o
 endif
 
+ifdef USE_FLUIDSYNTH
+MODULE_OBJS += \
+	fluidsynth-dialog.o
+endif
+
 # Include common rules
 include $(srcdir)/rules.mk
diff --git a/gui/options.cpp b/gui/options.cpp
index 4868f18..65f26d2 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -75,6 +75,12 @@ enum {
 };
 #endif
 
+#ifdef USE_FLUIDSYNTH
+enum {
+	kFluidSynthSettingsCmd		= 'flst'
+};
+#endif
+
 static const char *savePeriodLabels[] = { _s("Never"), _s("every 5 mins"), _s("every 10 mins"), _s("every 15 mins"), _s("every 30 mins"), 0 };
 static const int savePeriodValues[] = { 0, 5 * 60, 10 * 60, 15 * 60, 30 * 60, -1 };
 static const char *outputRateLabels[] = { _s("<default>"), _s("8 kHz"), _s("11kHz"), _s("22 kHz"), _s("44 kHz"), _s("48 kHz"), 0 };
@@ -119,6 +125,9 @@ void OptionsDialog::init() {
 	_midiGainDesc = 0;
 	_midiGainSlider = 0;
 	_midiGainLabel = 0;
+#ifdef USE_FLUIDSYNTH
+	_fluidSynthSettings = 0;
+#endif
 	_enableMT32Settings = false;
 	_mt32Checkbox = 0;
 	_mt32DevicePopUp = 0;
@@ -863,6 +872,10 @@ void OptionsDialog::addMIDIControls(GuiObject *boss, const Common::String &prefi
 	_midiGainSlider->setMaxValue(1000);
 	_midiGainLabel = new StaticTextWidget(boss, prefix + "mcMidiGainLabel", "1.00");
 
+#ifdef USE_FLUIDSYNTH
+	_fluidSynthSettings = new ButtonWidget(boss, prefix + "mcFluidSynthSettings", _("FluidSynth Settings"), 0, kFluidSynthSettingsCmd);
+#endif
+
 	_enableMIDISettings = true;
 }
 
@@ -1231,12 +1244,20 @@ GlobalOptionsDialog::GlobalOptionsDialog()
 #ifdef SMALL_SCREEN_DEVICE
 	_keysDialog = new KeysDialog();
 #endif
+
+#ifdef USE_FLUIDSYNTH
+	_fluidSynthSettingsDialog = new FluidSynthSettingsDialog();
+#endif
 }
 
 GlobalOptionsDialog::~GlobalOptionsDialog() {
 #ifdef SMALL_SCREEN_DEVICE
 	delete _keysDialog;
 #endif
+
+#ifdef USE_FLUIDSYNTH
+	delete _fluidSynthSettingsDialog;
+#endif
 }
 
 void GlobalOptionsDialog::open() {
@@ -1466,6 +1487,11 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3
 		_keysDialog->runModal();
 		break;
 #endif
+#ifdef USE_FLUIDSYNTH
+	case kFluidSynthSettingsCmd:
+		_fluidSynthSettingsDialog->runModal();
+		break;
+#endif
 	default:
 		OptionsDialog::handleCommand(sender, cmd, data);
 	}
diff --git a/gui/options.h b/gui/options.h
index def56cf..eb45126 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -32,6 +32,10 @@
 #include "gui/KeysDialog.h"
 #endif
 
+#ifdef USE_FLUIDSYNTH
+#include "gui/fluidsynth-dialog.h"
+#endif
+
 namespace GUI {
 
 class CheckboxWidget;
@@ -131,6 +135,9 @@ private:
 	StaticTextWidget *_midiGainDesc;
 	SliderWidget *_midiGainSlider;
 	StaticTextWidget *_midiGainLabel;
+#ifdef USE_FLUIDSYNTH
+	ButtonWidget *_fluidSynthSettings;
+#endif
 
 	//
 	// MT-32 controls
@@ -208,6 +215,9 @@ protected:
 #ifdef SMALL_SCREEN_DEVICE
 	KeysDialog *_keysDialog;
 #endif
+#ifdef USE_FLUIDSYNTH
+	FluidSynthSettingsDialog *_fluidSynthSettingsDialog;
+#endif
 	StaticTextWidget *_savePath;
 	ButtonWidget	 *_savePathClearButton;
 	StaticTextWidget *_themePath;
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 7f565eb..e5a3177 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -891,7 +891,7 @@
 "</layout> "
 "</dialog> "
 "<dialog name='GlobalOptions_MIDI' overlays='Dialog.GlobalOptions.TabWidget'> "
-"<layout type='vertical' padding='16,16,16,16' spacing='8'> "
+"<layout type='vertical' padding='16,16,16,16' spacing='6'> "
 "<layout type='horizontal' padding='0,0,0,0' spacing='6' center='true'> "
 "<widget name='auPrefGmPopupDesc' "
 "type='OptionsLabel' "
@@ -927,6 +927,10 @@
 "height='Globals.Line.Height' "
 "/> "
 "</layout> "
+"<widget name='mcFluidSynthSettings' "
+"width='150' "
+"height='Globals.Button.Height' "
+"/> "
 "</layout> "
 "</dialog> "
 "<dialog name='GlobalOptions_MT32' overlays='Dialog.GlobalOptions.TabWidget'> "
@@ -1359,6 +1363,150 @@
 "</layout> "
 "</layout> "
 "</dialog> "
+"<dialog name='FluidSynthSettings' overlays='GlobalOptions' shading='dim'> "
+"<layout type='vertical' padding='0,0,0,0'> "
+"<widget name='TabWidget'/> "
+"<layout type='horizontal' padding='8,8,8,8'> "
+"<space/> "
+"<widget name='Cancel' "
+"type='Button' "
+"/> "
+"<widget name='Ok' "
+"type='Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name='FluidSynthSettings_Chorus' overlays='Dialog.FluidSynthSettings.TabWidget'> "
+"<layout type='vertical' padding='8,8,8,8' spacing='6'> "
+"<widget name='EnableTabCheckbox' "
+"type='Checkbox' "
+"/> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='VoiceCountText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='VoiceCountSlider' "
+"type='Slider' "
+"/> "
+"<widget name='VoiceCountLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='LevelText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='LevelSlider' "
+"type='Slider' "
+"/> "
+"<widget name='LevelLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='SpeedText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='SpeedSlider' "
+"type='Slider' "
+"/> "
+"<widget name='SpeedLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='DepthText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='DepthSlider' "
+"type='Slider' "
+"/> "
+"<widget name='DepthLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='WaveFormTypeText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='WaveFormType' "
+"type='PopUp' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name='FluidSynthSettings_Reverb' overlays='Dialog.FluidSynthSettings.TabWidget'> "
+"<layout type='vertical' padding='8,8,8,8' spacing='6'> "
+"<widget name='EnableTabCheckbox' "
+"type='Checkbox' "
+"/> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='RoomSizeText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='RoomSizeSlider' "
+"type='Slider' "
+"/> "
+"<widget name='RoomSizeLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='DampingText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='DampingSlider' "
+"type='Slider' "
+"/> "
+"<widget name='DampingLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='WidthText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='WidthSlider' "
+"type='Slider' "
+"/> "
+"<widget name='WidthLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='LevelText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='LevelSlider' "
+"type='Slider' "
+"/> "
+"<widget name='LevelLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name='FluidSynthSettings_Misc' overlays='Dialog.FluidSynthSettings.TabWidget'> "
+"<layout type='vertical' padding='8,8,8,8' spacing='6'> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='InterpolationText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='Interpolation' "
+"type='PopUp' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
 "<layout type='vertical' padding='8,8,8,8' center='true'> "
 "<widget name='Title' height='Globals.Line.Height'/> "
@@ -1905,6 +2053,10 @@
 "height='Globals.Line.Height' "
 "/> "
 "</layout> "
+"<widget name='mcFluidSynthSettings' "
+"width='200' "
+"height='Globals.Button.Height' "
+"/> "
 "</layout> "
 "</dialog> "
 "<dialog name='GlobalOptions_MT32' overlays='Dialog.GlobalOptions.TabWidget'> "
@@ -2323,6 +2475,150 @@
 "</layout> "
 "</layout> "
 "</dialog> "
+"<dialog name='FluidSynthSettings' overlays='GlobalOptions' shading='dim'> "
+"<layout type='vertical' padding='0,0,0,0'> "
+"<widget name='TabWidget'/> "
+"<layout type='horizontal' padding='16,16,16,16'> "
+"<space/> "
+"<widget name='Cancel' "
+"type='Button' "
+"/> "
+"<widget name='Ok' "
+"type='Button' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name='FluidSynthSettings_Chorus' overlays='Dialog.FluidSynthSettings.TabWidget'> "
+"<layout type='vertical' padding='16,16,16,16' spacing='8'> "
+"<widget name='EnableTabCheckbox' "
+"type='Checkbox' "
+"/> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='VoiceCountText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='VoiceCountSlider' "
+"type='Slider' "
+"/> "
+"<widget name='VoiceCountLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='LevelText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='LevelSlider' "
+"type='Slider' "
+"/> "
+"<widget name='LevelLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='SpeedText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='SpeedSlider' "
+"type='Slider' "
+"/> "
+"<widget name='SpeedLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='DepthText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='DepthSlider' "
+"type='Slider' "
+"/> "
+"<widget name='DepthLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='WaveFormTypeText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='WaveFormType' "
+"type='PopUp' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name='FluidSynthSettings_Reverb' overlays='Dialog.FluidSynthSettings.TabWidget'> "
+"<layout type='vertical' padding='16,16,16,16' spacing='8'> "
+"<widget name='EnableTabCheckbox' "
+"type='Checkbox' "
+"/> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='RoomSizeText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='RoomSizeSlider' "
+"type='Slider' "
+"/> "
+"<widget name='RoomSizeLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='DampingText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='DampingSlider' "
+"type='Slider' "
+"/> "
+"<widget name='DampingLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='WidthText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='WidthSlider' "
+"type='Slider' "
+"/> "
+"<widget name='WidthLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='LevelText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='LevelSlider' "
+"type='Slider' "
+"/> "
+"<widget name='LevelLabel' "
+"width='32' "
+"height='Globals.Line.Height' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
+"<dialog name='FluidSynthSettings_Misc' overlays='Dialog.FluidSynthSettings.TabWidget'> "
+"<layout type='vertical' padding='16,16,16,16' spacing='8'> "
+"<layout type='horizontal' padding='0,0,0,0' spacing='10' center='true'> "
+"<widget name='InterpolationText' "
+"type='OptionsLabel' "
+"/> "
+"<widget name='Interpolation' "
+"type='PopUp' "
+"/> "
+"</layout> "
+"</layout> "
+"</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
 "<layout type='vertical' padding='8,8,8,32' center='true'> "
 "<layout type='horizontal' padding='0,0,0,0'> "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 62eae0c..95455df 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index b8937ad..98c68d3 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.16:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.17:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 4a6aae0..5891b93 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -359,6 +359,10 @@
 						height = 'Globals.Line.Height'
 				/>
 			</layout>
+			<widget name = 'mcFluidSynthSettings'
+					width = '200'
+					height = 'Globals.Button.Height'
+			/>
 		</layout>
 	</dialog>
 
@@ -794,6 +798,154 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'FluidSynthSettings' overlays = 'GlobalOptions' shading = 'dim'>
+		<layout type = 'vertical' padding = '0, 0, 0, 0'>
+			<widget name = 'TabWidget'/>
+			<layout type = 'horizontal' padding = '16, 16, 16, 16'>
+				<space/>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Chorus' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'VoiceCountText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'VoiceCountSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'VoiceCountLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'SpeedText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'SpeedSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'SpeedLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DepthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DepthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DepthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WaveFormTypeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WaveFormType'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Reverb' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'RoomSizeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'RoomSizeSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'RoomSizeLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DampingText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DampingSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DampingLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WidthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WidthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'WidthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Misc' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'InterpolationText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'Interpolation'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
 			<layout type = 'horizontal' padding = '0, 0, 0, 0'>
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 57e149b..c9d576a 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -321,7 +321,7 @@
 	</dialog>
 
 	<dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
-		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '6'>
 			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '6' center = 'true'>
 				<widget name = 'auPrefGmPopupDesc'
 						type = 'OptionsLabel'
@@ -357,6 +357,10 @@
 						height = 'Globals.Line.Height'
 				/>
 			</layout>
+			<widget name = 'mcFluidSynthSettings'
+					width = '150'
+					height = 'Globals.Button.Height'
+			/>
 		</layout>
 	</dialog>
 
@@ -805,6 +809,154 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'FluidSynthSettings' overlays = 'GlobalOptions' shading = 'dim'>
+		<layout type = 'vertical' padding = '0, 0, 0, 0'>
+			<widget name = 'TabWidget'/>
+			<layout type = 'horizontal' padding = '8, 8, 8, 8'>
+				<space/>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Chorus' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'VoiceCountText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'VoiceCountSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'VoiceCountLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'SpeedText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'SpeedSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'SpeedLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DepthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DepthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DepthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WaveFormTypeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WaveFormType'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Reverb' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'RoomSizeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'RoomSizeSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'RoomSizeLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DampingText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DampingSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DampingLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WidthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WidthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'WidthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Misc' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'InterpolationText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'Interpolation'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
 			<widget name = 'Title' height = 'Globals.Line.Height'/>
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index 38352bc..15c7984 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index 52eb683..d62977c 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.16:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.17:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index d99d741..a6a2da9 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -373,6 +373,10 @@
 						height = 'Globals.Line.Height'
 				/>
 			</layout>
+			<widget name = 'mcFluidSynthSettings'
+					width = '200'
+					height = 'Globals.Button.Height'
+			/>
 		</layout>
 	</dialog>
 
@@ -808,6 +812,154 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'FluidSynthSettings' overlays = 'GlobalOptions' shading = 'dim'>
+		<layout type = 'vertical' padding = '0, 0, 0, 0'>
+			<widget name = 'TabWidget'/>
+			<layout type = 'horizontal' padding = '16, 16, 16, 16'>
+				<space/>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Chorus' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'VoiceCountText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'VoiceCountSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'VoiceCountLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'SpeedText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'SpeedSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'SpeedLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DepthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DepthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DepthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WaveFormTypeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WaveFormType'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Reverb' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'RoomSizeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'RoomSizeSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'RoomSizeLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DampingText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DampingSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DampingLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WidthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WidthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'WidthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Misc' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'InterpolationText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'Interpolation'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
 			<layout type = 'horizontal' padding = '0, 0, 0, 0'>
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 4fd5bdc..7e614ca 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -319,7 +319,7 @@
 	</dialog>
 
 	<dialog name = 'GlobalOptions_MIDI' overlays = 'Dialog.GlobalOptions.TabWidget'>
-		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '7'>
 			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '6' center = 'true'>
 				<widget name = 'auPrefGmPopupDesc'
 						type = 'OptionsLabel'
@@ -355,6 +355,10 @@
 						height = 'Globals.Line.Height'
 				/>
 			</layout>
+			<widget name = 'mcFluidSynthSettings'
+					width = '150'
+					height = 'Globals.Button.Height'
+			/>
 		</layout>
 	</dialog>
 
@@ -804,6 +808,154 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'FluidSynthSettings' overlays = 'GlobalOptions' shading = 'dim'>
+		<layout type = 'vertical' padding = '0, 0, 0, 0'>
+			<widget name = 'TabWidget'/>
+			<layout type = 'horizontal' padding = '8, 8, 8, 8'>
+				<space/>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Chorus' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'VoiceCountText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'VoiceCountSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'VoiceCountLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'SpeedText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'SpeedSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'SpeedLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DepthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DepthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DepthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WaveFormTypeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WaveFormType'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Reverb' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'RoomSizeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'RoomSizeSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'RoomSizeLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DampingText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DampingSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DampingLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WidthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WidthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'WidthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Misc' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '8, 8, 8, 8' spacing = '6'>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'InterpolationText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'Interpolation'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 8' center = 'true'>
 			<widget name = 'Title' height = 'Globals.Line.Height'/>


Commit: bc33b5c0f13a09638525259385ebe92154ab8c33
    https://github.com/scummvm/scummvm/commit/bc33b5c0f13a09638525259385ebe92154ab8c33
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:36:39-08:00

Commit Message:
BADA: Add completely untested layout changes to Bada theme

I've simply copied this from classic_layout.stx. It probably needs
a bit of tweaking.

Changed paths:
    dists/bada/Res/scummmobile/scummmobile_layout.stx



diff --git a/dists/bada/Res/scummmobile/scummmobile_layout.stx b/dists/bada/Res/scummmobile/scummmobile_layout.stx
index efb8ebc..c402009 100644
--- a/dists/bada/Res/scummmobile/scummmobile_layout.stx
+++ b/dists/bada/Res/scummmobile/scummmobile_layout.stx
@@ -371,6 +371,10 @@
 						height = 'Globals.Line.Height'
 				/>
 			</layout>
+			<widget name = 'mcFluidSynthSettings'
+					width = '200'
+					height = 'Globals.Button.Height'
+			/>
 		</layout>
 	</dialog>
 
@@ -786,6 +790,154 @@
 		</layout>
 	</dialog>
 
+	<dialog name = 'FluidSynthSettings' overlays = 'GlobalOptions' shading = 'dim'>
+		<layout type = 'vertical' padding = '0, 0, 0, 0'>
+			<widget name = 'TabWidget'/>
+			<layout type = 'horizontal' padding = '16, 16, 16, 16'>
+				<space/>
+				<widget name = 'Cancel'
+						type = 'Button'
+				/>
+				<widget name = 'Ok'
+						type = 'Button'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Chorus' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'VoiceCountText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'VoiceCountSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'VoiceCountLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'SpeedText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'SpeedSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'SpeedLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DepthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DepthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DepthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WaveFormTypeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WaveFormType'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Reverb' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<widget name = 'EnableTabCheckbox'
+				type = 'Checkbox'
+			/>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'RoomSizeText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'RoomSizeSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'RoomSizeLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'DampingText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'DampingSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'DampingLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'WidthText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'WidthSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'WidthLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'LevelText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'LevelSlider'
+					type = 'Slider'
+				/>
+				<widget name = 'LevelLabel'
+					width = '32'
+					height = 'Globals.Line.Height'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
+	<dialog name = 'FluidSynthSettings_Misc' overlays = 'Dialog.FluidSynthSettings.TabWidget'>
+		<layout type = 'vertical' padding = '16, 16, 16, 16' spacing = '8'>
+			<layout type = 'horizontal' padding = '0, 0, 0, 0' spacing = '10' center = 'true'>
+				<widget name = 'InterpolationText'
+					type = 'OptionsLabel'
+				/>
+				<widget name = 'Interpolation'
+					type = 'PopUp'
+				/>
+			</layout>
+		</layout>
+	</dialog>
+
 	<dialog name = 'SaveLoadChooser' overlays = 'screen' inset = '8' shading = 'dim'>
 		<layout type = 'vertical' padding = '8, 8, 8, 32' center = 'true'>
 			<widget name = 'Title'


Commit: a188a43da6a8d71a8d317b3c1f404088ce608336
    https://github.com/scummvm/scummvm/commit/a188a43da6a8d71a8d317b3c1f404088ce608336
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:36:39-08:00

Commit Message:
GUI: Make the FluidSynth settings dialog a bit more like Qsynth

To help people familiar with Qsynth (I'm not, but it seems to be
one of the more polished FluidSynth front ends), use the same
presentation and terminology for the FluidSynth settings.

More to follow.

Changed paths:
    audio/softsynth/fluidsynth.cpp
    base/commandLine.cpp
    gui/fluidsynth-dialog.cpp
    gui/fluidsynth-dialog.h



diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index 7118720..518e260 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -127,29 +127,39 @@ int MidiDriver_FluidSynth::open() {
 
 	_synth = new_fluid_synth(_settings);
 
-	int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr");
-	double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0;
-	double chorusSpeed = (double)ConfMan.getInt("fluidsynth_chorus_speed") / 100.0;
-	double chorusDepthMs = (double)ConfMan.getInt("fluidsynth_chorus_depth") / 100.0;
-
-	Common::String chorusWaveForm = ConfMan.get("fluidsynth_chorus_waveform");
-	int chorusType = FLUID_CHORUS_MOD_SINE;
-	if (chorusWaveForm == "sine") {
-		chorusType = FLUID_CHORUS_MOD_SINE;
+	if (ConfMan.getBool("fluidsynth_chorus_activate")) {
+		fluid_synth_set_chorus_on(_synth, 1);
+
+		int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr");
+		double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0;
+		double chorusSpeed = (double)ConfMan.getInt("fluidsynth_chorus_speed") / 100.0;
+		double chorusDepthMs = (double)ConfMan.getInt("fluidsynth_chorus_depth") / 10.0;
+
+		Common::String chorusWaveForm = ConfMan.get("fluidsynth_chorus_waveform");
+		int chorusType = FLUID_CHORUS_MOD_SINE;
+		if (chorusWaveForm == "sine") {
+			chorusType = FLUID_CHORUS_MOD_SINE;
+		} else {
+			chorusType = FLUID_CHORUS_MOD_TRIANGLE;
+		}
+
+		fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType);
 	} else {
-		chorusType = FLUID_CHORUS_MOD_TRIANGLE;
+		fluid_synth_set_chorus_on(_synth, 0);
 	}
 
-	fluid_synth_set_chorus_on(_synth, 1);
-	fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType);
+	if (ConfMan.getBool("fluidsynth_reverb_activate")) {
+		fluid_synth_set_reverb_on(_synth, 1);
 
-	double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0;
-	double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0;
-	double reverbWidth = (double)ConfMan.getInt("fluidsynth_reverb_width") / 10.0;
-	double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0;
+		double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0;
+		double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0;
+		int reverbWidth = ConfMan.getInt("fluidsynth_reverb_width");
+		double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0;
 
-	fluid_synth_set_reverb_on(_synth, 1);
-	fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel);
+		fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel);
+	} else {
+		fluid_synth_set_reverb_on(_synth, 0);
+	}
 
 	Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation");
 	int interpMethod = FLUID_INTERP_4THORDER;
diff --git a/base/commandLine.cpp b/base/commandLine.cpp
index b87ec44..a4e836a 100644
--- a/base/commandLine.cpp
+++ b/base/commandLine.cpp
@@ -241,18 +241,20 @@ void registerDefaults() {
 	ConfMan.registerDefault("gui_saveload_last_pos", "0");
 
 #ifdef USE_FLUIDSYNTH
-	// FluidSynth settings. All multiplied by 100, except reverb width
-	// which is multiplied by 10, and chorus number which is an integer
-	// to begin with.
+	// The settings are deliberately stored the same way as in Qsynth. The
+	// FluidSynth music driver is responsible for transforming them into
+	// their appropriate values.
+	ConfMan.registerDefault("fluidsynth_chorus_activate", true);
 	ConfMan.registerDefault("fluidsynth_chorus_nr", 3);
-	ConfMan.registerDefault("fluidsynth_chorus_level", 200);
+	ConfMan.registerDefault("fluidsynth_chorus_level", 100);
 	ConfMan.registerDefault("fluidsynth_chorus_speed", 30);
-	ConfMan.registerDefault("fluidsynth_chorus_depth", 800);
+	ConfMan.registerDefault("fluidsynth_chorus_depth", 80);
 	ConfMan.registerDefault("fluidsynth_chorus_waveform", "sine");
 
+	ConfMan.registerDefault("fluidsynth_reverb_activate", true);
 	ConfMan.registerDefault("fluidsynth_reverb_roomsize", 20);
 	ConfMan.registerDefault("fluidsynth_reverb_damping", 0);
-	ConfMan.registerDefault("fluidsynth_reverb_width", 5);
+	ConfMan.registerDefault("fluidsynth_reverb_width", 1);
 	ConfMan.registerDefault("fluidsynth_reverb_level", 90);
 
 	ConfMan.registerDefault("fluidsynth_misc_interpolation", "4th");
diff --git a/gui/fluidsynth-dialog.cpp b/gui/fluidsynth-dialog.cpp
index c7e646e..3e38c6a 100644
--- a/gui/fluidsynth-dialog.cpp
+++ b/gui/fluidsynth-dialog.cpp
@@ -30,13 +30,13 @@
 namespace GUI {
 
 enum {
-	kOverrideChorusCmd		= 'ocho',
+	kActivateChorusCmd		= 'acho',
 	kChorusVoiceCountChangedCmd	= 'cvcc',
 	kChorusLevelChangedCmd		= 'clec',
 	kChorusSpeedChangedCmd		= 'cspc',
 	kChorusDepthChangedCmd		= 'cdec',
 
-	kOverrideReverbCmd		= 'orev',
+	kActivateReverbCmd		= 'arev',
 	kReverbRoomSizeChangedCmd	= 'rrsc',
 	kReverbDampingChangedCmd	= 'rdac',
 	kReverbWidthChangedCmd		= 'rwic',
@@ -63,34 +63,37 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 
 	_tabWidget->addTab(_("Chorus"));
 
-	_chorusOverride = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Chorus.EnableTabCheckbox", _("Override chorus settings"), 0, kOverrideChorusCmd);
+	_chorusActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Chorus.EnableTabCheckbox", _("Active"), 0, kActivateChorusCmd);
 
-	_chorusVoiceCountDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountText", _("Voice count:"));
+	_chorusVoiceCountDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountText", _("N:"));
 	_chorusVoiceCountSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountSlider", 0, kChorusVoiceCountChangedCmd);
+	// 0-99, Default: 3
 	_chorusVoiceCountSlider->setMinValue(0);
 	_chorusVoiceCountSlider->setMaxValue(99);
 	_chorusVoiceCountLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.VoiceCountLabel", "3");
 
 	_chorusLevelDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelText", _("Level:"));
 	_chorusLevelSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelSlider", 0, kChorusLevelChangedCmd);
+	// 0.00 - 1.00, Default: 1.00
 	_chorusLevelSlider->setMinValue(0);
-	_chorusLevelSlider->setMaxValue(1000);
-	_chorusLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelLabel", "2.00");
+	_chorusLevelSlider->setMaxValue(100);
+	_chorusLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelLabel", "100");
 
-	_chorusSpeedDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedText", _("Speed (Hz):"));
+	_chorusSpeedDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedText", _("Speed:"));
 	_chorusSpeedSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedSlider", 0, kChorusSpeedChangedCmd);
-	_chorusSpeedSlider->setMinValue(29);
+	// 0.30 - 5.00, Default: 0.30
+	_chorusSpeedSlider->setMinValue(30);
 	_chorusSpeedSlider->setMaxValue(500);
-	_chorusSpeedSlider->setValue(29);
-	_chorusSpeedLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedLabel", "0.30");
+	_chorusSpeedLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedLabel", "30");
 
 	_chorusDepthDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthText", _("Depth:"));
 	_chorusDepthSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthSlider", 0, kChorusDepthChangedCmd);
+	// 0.00 - 21.00, Default: 8.00
 	_chorusDepthSlider->setMinValue(0);
-	_chorusDepthSlider->setMaxValue(2100);
-	_chorusDepthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthLabel", "8.00");
+	_chorusDepthSlider->setMaxValue(210);
+	_chorusDepthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthLabel", "80");
 
-	_chorusWaveFormTypePopUpDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormTypeText", _("Waveform type:"));
+	_chorusWaveFormTypePopUpDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormTypeText", _("Type:"));
 	_chorusWaveFormTypePopUp = new PopUpWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormType");
 
 	_chorusWaveFormTypePopUp->appendEntry(_("Sine"), kWaveFormTypeSine);
@@ -98,31 +101,35 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 
 	_tabWidget->addTab(_("Reverb"));
 
-	_reverbOverride = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Override reverb settings"), 0, kOverrideReverbCmd);
+	_reverbActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Activate"), 0, kActivateReverbCmd);
 
-	_reverbRoomSizeDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeText", _("Room size:"));
+	_reverbRoomSizeDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeText", _("Room:"));
 	_reverbRoomSizeSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeSlider", 0, kReverbRoomSizeChangedCmd);
+	// 0.00 - 1.20, Default: 0.20
 	_reverbRoomSizeSlider->setMinValue(0);
 	_reverbRoomSizeSlider->setMaxValue(120);
-	_reverbRoomSizeLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeLabel", "0.20");
+	_reverbRoomSizeLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeLabel", "20");
 
-	_reverbDampingDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingText", _("Damping:"));
+	_reverbDampingDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingText", _("Damp:"));
 	_reverbDampingSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingSlider", 0, kReverbDampingChangedCmd);
+	// 0.00 - 1.00, Default: 0.00
 	_reverbDampingSlider->setMinValue(0);
 	_reverbDampingSlider->setMaxValue(100);
-	_reverbDampingLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingLabel", "0.00");
+	_reverbDampingLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingLabel", "0");
 
 	_reverbWidthDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthText", _("Width:"));
 	_reverbWidthSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthSlider", 0, kReverbWidthChangedCmd);
+	// 0 - 100, Default: 1
 	_reverbWidthSlider->setMinValue(0);
-	_reverbWidthSlider->setMaxValue(1000);
-	_reverbWidthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthLabel", "0.5");
+	_reverbWidthSlider->setMaxValue(100);
+	_reverbWidthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthLabel", "1");
 
 	_reverbLevelDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelText", _("Level:"));
 	_reverbLevelSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelSlider", 0, kReverbLevelChangedCmd);
+	// 0.00 - 1.00, Default: 0.90
 	_reverbLevelSlider->setMinValue(0);
 	_reverbLevelSlider->setMaxValue(100);
-	_reverbLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelLabel", "0.90");
+	_reverbLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelLabel", "90");
 
 	_tabWidget->addTab(_("Misc"));
 
@@ -149,29 +156,14 @@ void FluidSynthSettingsDialog::open() {
 	// Reset result value
 	setResult(0);
 
-	bool e;
-
-	e = ConfMan.hasKey("fluidsynth_chorus_nr", _domain) ||
-		ConfMan.hasKey("fluidsynth_chorus_level", _domain) ||
-		ConfMan.hasKey("fluidsynth_chorus_speed", _domain) ||
-		ConfMan.hasKey("fluidsynth_chorus_depth", _domain) ||
-		ConfMan.hasKey("fluidsynth_chorus_waveform", _domain);
-	_chorusOverride->setState(e);
-
-	e = ConfMan.hasKey("fluidsynth_reverb_roomsize", _domain) ||
-		ConfMan.hasKey("fluidsynth_reverb_damping", _domain) ||
-		ConfMan.hasKey("fluidsynth_reverb_width", _domain) ||
-		ConfMan.hasKey("fluidsynth_reverb_level", _domain);
-	_reverbOverride->setState(e);
-
 	_chorusVoiceCountSlider->setValue(ConfMan.getInt("fluidsynth_chorus_nr", _domain));
 	_chorusVoiceCountLabel->setLabel(Common::String::format("%d", _chorusVoiceCountSlider->getValue()));
 	_chorusLevelSlider->setValue(ConfMan.getInt("fluidsynth_chorus_level", _domain));
-	_chorusLevelLabel->setLabel(Common::String::format("%.2f", (double)_chorusLevelSlider->getValue() / 100.0));
+	_chorusLevelLabel->setLabel(Common::String::format("%d", _chorusLevelSlider->getValue()));
 	_chorusSpeedSlider->setValue(ConfMan.getInt("fluidsynth_chorus_speed", _domain));
-	_chorusSpeedLabel->setLabel(Common::String::format("%.2f", (double)_chorusSpeedSlider->getValue() / 100.0));
+	_chorusSpeedLabel->setLabel(Common::String::format("%d", _chorusSpeedSlider->getValue()));
 	_chorusDepthSlider->setValue(ConfMan.getInt("fluidsynth_chorus_depth", _domain));
-	_chorusDepthLabel->setLabel(Common::String::format("%.2f", (double)_chorusDepthSlider->getValue() / 100.0));
+	_chorusDepthLabel->setLabel(Common::String::format("%d", _chorusDepthSlider->getValue()));
 
 	Common::String waveForm = ConfMan.get("fluidsynth_chorus_waveform", _domain);
 	if (waveForm == "sine") {
@@ -181,13 +173,13 @@ void FluidSynthSettingsDialog::open() {
 	}
 
 	_reverbRoomSizeSlider->setValue(ConfMan.getInt("fluidsynth_reverb_roomsize", _domain));
-	_reverbRoomSizeLabel->setLabel(Common::String::format("%.2f", (double)_reverbRoomSizeSlider->getValue() / 100.0));
+	_reverbRoomSizeLabel->setLabel(Common::String::format("%d", _reverbRoomSizeSlider->getValue()));
 	_reverbDampingSlider->setValue(ConfMan.getInt("fluidsynth_reverb_damping", _domain));
-	_reverbDampingLabel->setLabel(Common::String::format("%.2f", (double)_reverbDampingSlider->getValue() / 100.0));
+	_reverbDampingLabel->setLabel(Common::String::format("%d", _reverbDampingSlider->getValue()));
 	_reverbWidthSlider->setValue(ConfMan.getInt("fluidsynth_reverb_width", _domain));
-	_reverbWidthLabel->setLabel(Common::String::format("%.2f", (double)_reverbWidthSlider->getValue() / 10.0));
+	_reverbWidthLabel->setLabel(Common::String::format("%d", _reverbWidthSlider->getValue()));
 	_reverbLevelSlider->setValue(ConfMan.getInt("fluidsynth_reverb_level", _domain));
-	_reverbLevelLabel->setLabel(Common::String::format("%.2f", (double)_reverbLevelSlider->getValue() / 100.0));
+	_reverbLevelLabel->setLabel(Common::String::format("%d", _reverbLevelSlider->getValue()));
 
 	Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation", _domain);
 	if (interpolation == "none") {
@@ -199,43 +191,36 @@ void FluidSynthSettingsDialog::open() {
 	} else if (interpolation == "7th") {
 		_miscInterpolationPopUp->setSelectedTag(kInterpolation7thOrder);
 	}
+
+	// This may trigger redrawing, so don't do it until all sliders have
+	// their proper values. Otherwise, the dialog may crash because of
+	// invalid slider values.
+	_chorusActivate->setState(ConfMan.getBool("fluidsynth_chorus_activate", _domain));
+	_reverbActivate->setState(ConfMan.getBool("fluidsynth_reverb_activate", _domain));
 }
 
 void FluidSynthSettingsDialog::close() {
 	if (getResult()) {
-		if (_chorusOverride->getState()) {
-			ConfMan.setInt("fluidsynth_chorus_nr", _chorusVoiceCountSlider->getValue(), _domain);
-			ConfMan.setInt("fluidsynth_chorus_level", _chorusLevelSlider->getValue(), _domain);
-			ConfMan.setInt("fluidsynth_chorus_speed", _chorusSpeedSlider->getValue(), _domain);
-			ConfMan.setInt("fluidsynth_chorus_depth", _chorusDepthSlider->getValue(), _domain);
-
-			uint32 waveForm = _chorusWaveFormTypePopUp->getSelectedTag();
-			if (waveForm == kWaveFormTypeSine) {
-				ConfMan.set("fluidsynth_chorus_waveform", "sine", _domain);
-			} else if (waveForm == kWaveFormTypeTriangle) {
-				ConfMan.set("fluidsynth_chorus_waveform", "triangle", _domain);
-			} else {
-				ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
-			}
+		ConfMan.setBool("fluidsynth_chorus_activate", _chorusActivate->getState());
+		ConfMan.setInt("fluidsynth_chorus_nr", _chorusVoiceCountSlider->getValue(), _domain);
+		ConfMan.setInt("fluidsynth_chorus_level", _chorusLevelSlider->getValue(), _domain);
+		ConfMan.setInt("fluidsynth_chorus_speed", _chorusSpeedSlider->getValue(), _domain);
+		ConfMan.setInt("fluidsynth_chorus_depth", _chorusDepthSlider->getValue(), _domain);
+
+		uint32 waveForm = _chorusWaveFormTypePopUp->getSelectedTag();
+		if (waveForm == kWaveFormTypeSine) {
+			ConfMan.set("fluidsynth_chorus_waveform", "sine", _domain);
+		} else if (waveForm == kWaveFormTypeTriangle) {
+			ConfMan.set("fluidsynth_chorus_waveform", "triangle", _domain);
 		} else {
-			ConfMan.removeKey("fluidsynth_chorus_nr", _domain);
-			ConfMan.removeKey("fluidsynth_chorus_level", _domain);
-			ConfMan.removeKey("fluidsynth_chorus_speed", _domain);
-			ConfMan.removeKey("fluidsynth_chorus_depth", _domain);
 			ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
 		}
 
-		if (_reverbOverride->getState()) {
-			ConfMan.setInt("fluidsynth_reverb_roomsize", _reverbRoomSizeSlider->getValue(), _domain);
-			ConfMan.setInt("fluidsynth_reverb_damping", _reverbDampingSlider->getValue(), _domain);
-			ConfMan.setInt("fluidsynth_reverb_width", _reverbWidthSlider->getValue(), _domain);
-			ConfMan.setInt("fluidsynth_reverb_level", _reverbLevelSlider->getValue(), _domain);
-		} else {
-			ConfMan.removeKey("fluidsynth_reverb_roomsize", _domain);
-			ConfMan.removeKey("fluidsynth_reverb_damping", _domain);
-			ConfMan.removeKey("fluidsynth_reverb_width", _domain);
-			ConfMan.removeKey("fluidsynth_reverb_level", _domain);
-		}
+		ConfMan.setBool("fluidsynth_reverb_activate", _reverbActivate->getState());
+		ConfMan.setInt("fluidsynth_reverb_roomsize", _reverbRoomSizeSlider->getValue(), _domain);
+		ConfMan.setInt("fluidsynth_reverb_damping", _reverbDampingSlider->getValue(), _domain);
+		ConfMan.setInt("fluidsynth_reverb_width", _reverbWidthSlider->getValue(), _domain);
+		ConfMan.setInt("fluidsynth_reverb_level", _reverbLevelSlider->getValue(), _domain);
 
 		uint32 interpolation = _miscInterpolationPopUp->getSelectedTag();
 		if (interpolation == kInterpolationNone) {
@@ -258,7 +243,7 @@ void FluidSynthSettingsDialog::close() {
 
 void FluidSynthSettingsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
 	switch (cmd) {
-	case kOverrideChorusCmd:
+	case kActivateChorusCmd:
 		setChorusSettingsState(data);
 		break;
 	case kChorusVoiceCountChangedCmd:
@@ -266,34 +251,34 @@ void FluidSynthSettingsDialog::handleCommand(CommandSender *sender, uint32 cmd,
 		_chorusVoiceCountLabel->draw();
 		break;
 	case kChorusLevelChangedCmd:
-		_chorusLevelLabel->setLabel(Common::String::format("%.2f", (double)_chorusLevelSlider->getValue() / 100.0));
+		_chorusLevelLabel->setLabel(Common::String::format("%d", _chorusLevelSlider->getValue()));
 		_chorusLevelLabel->draw();
 		break;
 	case kChorusSpeedChangedCmd:
-		_chorusSpeedLabel->setLabel(Common::String::format("%.2f", (double)_chorusSpeedSlider->getValue() / 100.0));
+		_chorusSpeedLabel->setLabel(Common::String::format("%d", _chorusSpeedSlider->getValue()));
 		_chorusSpeedLabel->draw();
 		break;
 	case kChorusDepthChangedCmd:
-		_chorusDepthLabel->setLabel(Common::String::format("%.2f", (double)_chorusDepthSlider->getValue() / 100.0));
+		_chorusDepthLabel->setLabel(Common::String::format("%d", _chorusDepthSlider->getValue()));
 		_chorusDepthLabel->draw();
 		break;
-	case kOverrideReverbCmd:
+	case kActivateReverbCmd:
 		setReverbSettingsState(data);
 		break;
 	case kReverbRoomSizeChangedCmd:
-		_reverbRoomSizeLabel->setLabel(Common::String::format("%.2f", (double)_reverbRoomSizeSlider->getValue() / 100.0));
+		_reverbRoomSizeLabel->setLabel(Common::String::format("%d", _reverbRoomSizeSlider->getValue()));
 		_reverbRoomSizeLabel->draw();
 		break;
 	case kReverbDampingChangedCmd:
-		_reverbDampingLabel->setLabel(Common::String::format("%.2f", (double)_reverbDampingSlider->getValue() / 100.0));
+		_reverbDampingLabel->setLabel(Common::String::format("%d", _reverbDampingSlider->getValue()));
 		_reverbDampingLabel->draw();
 		break;
 	case kReverbWidthChangedCmd:
-		_reverbWidthLabel->setLabel(Common::String::format("%.1f", (double)_reverbWidthSlider->getValue() / 10.0));
+		_reverbWidthLabel->setLabel(Common::String::format("%d", _reverbWidthSlider->getValue()));
 		_reverbWidthLabel->draw();
 		break;
 	case kReverbLevelChangedCmd:
-		_reverbLevelLabel->setLabel(Common::String::format("%.2f", (double)_reverbLevelSlider->getValue() / 100.0));
+		_reverbLevelLabel->setLabel(Common::String::format("%d", _reverbLevelSlider->getValue()));
 		_reverbLevelLabel->draw();
 		break;
 	case kOKCmd:
diff --git a/gui/fluidsynth-dialog.h b/gui/fluidsynth-dialog.h
index 821a452..445c1ff 100644
--- a/gui/fluidsynth-dialog.h
+++ b/gui/fluidsynth-dialog.h
@@ -50,7 +50,7 @@ private:
 
 	TabWidget *_tabWidget;
 
-	CheckboxWidget *_chorusOverride;
+	CheckboxWidget *_chorusActivate;
 
 	StaticTextWidget *_chorusVoiceCountDesc;
 	SliderWidget *_chorusVoiceCountSlider;
@@ -71,7 +71,7 @@ private:
 	StaticTextWidget *_chorusWaveFormTypePopUpDesc;
 	PopUpWidget *_chorusWaveFormTypePopUp;
 
-	CheckboxWidget *_reverbOverride;
+	CheckboxWidget *_reverbActivate;
 
 	StaticTextWidget *_reverbRoomSizeDesc;
 	SliderWidget *_reverbRoomSizeSlider;


Commit: 45c1296021bc6c0d816d8652f868e3bff49c32e3
    https://github.com/scummvm/scummvm/commit/45c1296021bc6c0d816d8652f868e3bff49c32e3
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:36:39-08:00

Commit Message:
GUI: Swap Reverb and Chorus tabs in FluidSynth settings

Again, this is to be more like Qsynth.

Changed paths:
    gui/fluidsynth-dialog.cpp



diff --git a/gui/fluidsynth-dialog.cpp b/gui/fluidsynth-dialog.cpp
index 3e38c6a..eefe8c5 100644
--- a/gui/fluidsynth-dialog.cpp
+++ b/gui/fluidsynth-dialog.cpp
@@ -61,6 +61,38 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 
 	_tabWidget = new TabWidget(this, "FluidSynthSettings.TabWidget");
 
+	_tabWidget->addTab(_("Reverb"));
+
+	_reverbActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Activate"), 0, kActivateReverbCmd);
+
+	_reverbRoomSizeDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeText", _("Room:"));
+	_reverbRoomSizeSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeSlider", 0, kReverbRoomSizeChangedCmd);
+	// 0.00 - 1.20, Default: 0.20
+	_reverbRoomSizeSlider->setMinValue(0);
+	_reverbRoomSizeSlider->setMaxValue(120);
+	_reverbRoomSizeLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeLabel", "20");
+
+	_reverbDampingDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingText", _("Damp:"));
+	_reverbDampingSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingSlider", 0, kReverbDampingChangedCmd);
+	// 0.00 - 1.00, Default: 0.00
+	_reverbDampingSlider->setMinValue(0);
+	_reverbDampingSlider->setMaxValue(100);
+	_reverbDampingLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingLabel", "0");
+
+	_reverbWidthDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthText", _("Width:"));
+	_reverbWidthSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthSlider", 0, kReverbWidthChangedCmd);
+	// 0 - 100, Default: 1
+	_reverbWidthSlider->setMinValue(0);
+	_reverbWidthSlider->setMaxValue(100);
+	_reverbWidthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthLabel", "1");
+
+	_reverbLevelDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelText", _("Level:"));
+	_reverbLevelSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelSlider", 0, kReverbLevelChangedCmd);
+	// 0.00 - 1.00, Default: 0.90
+	_reverbLevelSlider->setMinValue(0);
+	_reverbLevelSlider->setMaxValue(100);
+	_reverbLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelLabel", "90");
+
 	_tabWidget->addTab(_("Chorus"));
 
 	_chorusActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Chorus.EnableTabCheckbox", _("Active"), 0, kActivateChorusCmd);
@@ -99,38 +131,6 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 	_chorusWaveFormTypePopUp->appendEntry(_("Sine"), kWaveFormTypeSine);
 	_chorusWaveFormTypePopUp->appendEntry(_("Triangle"), kWaveFormTypeTriangle);
 
-	_tabWidget->addTab(_("Reverb"));
-
-	_reverbActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Activate"), 0, kActivateReverbCmd);
-
-	_reverbRoomSizeDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeText", _("Room:"));
-	_reverbRoomSizeSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeSlider", 0, kReverbRoomSizeChangedCmd);
-	// 0.00 - 1.20, Default: 0.20
-	_reverbRoomSizeSlider->setMinValue(0);
-	_reverbRoomSizeSlider->setMaxValue(120);
-	_reverbRoomSizeLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeLabel", "20");
-
-	_reverbDampingDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingText", _("Damp:"));
-	_reverbDampingSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingSlider", 0, kReverbDampingChangedCmd);
-	// 0.00 - 1.00, Default: 0.00
-	_reverbDampingSlider->setMinValue(0);
-	_reverbDampingSlider->setMaxValue(100);
-	_reverbDampingLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.DampingLabel", "0");
-
-	_reverbWidthDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthText", _("Width:"));
-	_reverbWidthSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthSlider", 0, kReverbWidthChangedCmd);
-	// 0 - 100, Default: 1
-	_reverbWidthSlider->setMinValue(0);
-	_reverbWidthSlider->setMaxValue(100);
-	_reverbWidthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.WidthLabel", "1");
-
-	_reverbLevelDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelText", _("Level:"));
-	_reverbLevelSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelSlider", 0, kReverbLevelChangedCmd);
-	// 0.00 - 1.00, Default: 0.90
-	_reverbLevelSlider->setMinValue(0);
-	_reverbLevelSlider->setMaxValue(100);
-	_reverbLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.LevelLabel", "90");
-
 	_tabWidget->addTab(_("Misc"));
 
 	_miscInterpolationPopUpDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Misc.InterpolationText", _("Interpolation:"));


Commit: c780df51758df99d8eb18513573882a4b1291f21
    https://github.com/scummvm/scummvm/commit/c780df51758df99d8eb18513573882a4b1291f21
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:52:32-08:00

Commit Message:
GUI: Add "Reset" button to FluidSynth settings dialog

This resets the FluidSynth settings to their default values.

Changed paths:
    dists/bada/Res/scummmobile/scummmobile_layout.stx
    gui/ThemeEngine.h
    gui/fluidsynth-dialog.cpp
    gui/fluidsynth-dialog.h
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx



diff --git a/dists/bada/Res/scummmobile/scummmobile_layout.stx b/dists/bada/Res/scummmobile/scummmobile_layout.stx
index c402009..abac4e2 100644
--- a/dists/bada/Res/scummmobile/scummmobile_layout.stx
+++ b/dists/bada/Res/scummmobile/scummmobile_layout.stx
@@ -935,6 +935,9 @@
 					type = 'PopUp'
 				/>
 			</layout>
+			<widget name = 'ResetSettings'
+				type = 'Button'
+			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index 18eed5f..c422ed5 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -35,7 +35,7 @@
 #include "graphics/pixelformat.h"
 
 
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.17"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.18"
 
 class OSystem;
 
diff --git a/gui/fluidsynth-dialog.cpp b/gui/fluidsynth-dialog.cpp
index eefe8c5..eb5bac9 100644
--- a/gui/fluidsynth-dialog.cpp
+++ b/gui/fluidsynth-dialog.cpp
@@ -20,6 +20,7 @@
  */
 
 #include "gui/fluidsynth-dialog.h"
+#include "gui/message.h"
 #include "gui/widgets/tab.h"
 #include "gui/widgets/popup.h"
 
@@ -40,7 +41,9 @@ enum {
 	kReverbRoomSizeChangedCmd	= 'rrsc',
 	kReverbDampingChangedCmd	= 'rdac',
 	kReverbWidthChangedCmd		= 'rwic',
-	kReverbLevelChangedCmd		= 'rlec'
+	kReverbLevelChangedCmd		= 'rlec',
+
+	kResetSettingsCmd		= 'rese'
 };
 
 enum {
@@ -141,6 +144,8 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 	_miscInterpolationPopUp->appendEntry(_("Fourth-order"), kInterpolation4thOrder);
 	_miscInterpolationPopUp->appendEntry(_("Seventh-order"), kInterpolation7thOrder);
 
+	new ButtonWidget(_tabWidget, "FluidSynthSettings_Misc.ResetSettings", _("Reset"), _("Reset all FluidSynth settings to their default values."), kResetSettingsCmd);
+
 	_tabWidget->setActiveTab(0);
 
 	new ButtonWidget(this, "FluidSynthSettings.Cancel", _("Cancel"), 0, kCloseCmd);
@@ -156,86 +161,12 @@ void FluidSynthSettingsDialog::open() {
 	// Reset result value
 	setResult(0);
 
-	_chorusVoiceCountSlider->setValue(ConfMan.getInt("fluidsynth_chorus_nr", _domain));
-	_chorusVoiceCountLabel->setLabel(Common::String::format("%d", _chorusVoiceCountSlider->getValue()));
-	_chorusLevelSlider->setValue(ConfMan.getInt("fluidsynth_chorus_level", _domain));
-	_chorusLevelLabel->setLabel(Common::String::format("%d", _chorusLevelSlider->getValue()));
-	_chorusSpeedSlider->setValue(ConfMan.getInt("fluidsynth_chorus_speed", _domain));
-	_chorusSpeedLabel->setLabel(Common::String::format("%d", _chorusSpeedSlider->getValue()));
-	_chorusDepthSlider->setValue(ConfMan.getInt("fluidsynth_chorus_depth", _domain));
-	_chorusDepthLabel->setLabel(Common::String::format("%d", _chorusDepthSlider->getValue()));
-
-	Common::String waveForm = ConfMan.get("fluidsynth_chorus_waveform", _domain);
-	if (waveForm == "sine") {
-		_chorusWaveFormTypePopUp->setSelectedTag(kWaveFormTypeSine);
-	} else if (waveForm == "triangle") {
-		_chorusWaveFormTypePopUp->setSelectedTag(kWaveFormTypeTriangle);
-	}
-
-	_reverbRoomSizeSlider->setValue(ConfMan.getInt("fluidsynth_reverb_roomsize", _domain));
-	_reverbRoomSizeLabel->setLabel(Common::String::format("%d", _reverbRoomSizeSlider->getValue()));
-	_reverbDampingSlider->setValue(ConfMan.getInt("fluidsynth_reverb_damping", _domain));
-	_reverbDampingLabel->setLabel(Common::String::format("%d", _reverbDampingSlider->getValue()));
-	_reverbWidthSlider->setValue(ConfMan.getInt("fluidsynth_reverb_width", _domain));
-	_reverbWidthLabel->setLabel(Common::String::format("%d", _reverbWidthSlider->getValue()));
-	_reverbLevelSlider->setValue(ConfMan.getInt("fluidsynth_reverb_level", _domain));
-	_reverbLevelLabel->setLabel(Common::String::format("%d", _reverbLevelSlider->getValue()));
-
-	Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation", _domain);
-	if (interpolation == "none") {
-		_miscInterpolationPopUp->setSelectedTag(kInterpolationNone);
-	} else if (interpolation == "linear") {
-		_miscInterpolationPopUp->setSelectedTag(kInterpolationLinear);
-	} else if (interpolation == "4th") {
-		_miscInterpolationPopUp->setSelectedTag(kInterpolation4thOrder);
-	} else if (interpolation == "7th") {
-		_miscInterpolationPopUp->setSelectedTag(kInterpolation7thOrder);
-	}
-
-	// This may trigger redrawing, so don't do it until all sliders have
-	// their proper values. Otherwise, the dialog may crash because of
-	// invalid slider values.
-	_chorusActivate->setState(ConfMan.getBool("fluidsynth_chorus_activate", _domain));
-	_reverbActivate->setState(ConfMan.getBool("fluidsynth_reverb_activate", _domain));
+	readSettings();
 }
 
 void FluidSynthSettingsDialog::close() {
 	if (getResult()) {
-		ConfMan.setBool("fluidsynth_chorus_activate", _chorusActivate->getState());
-		ConfMan.setInt("fluidsynth_chorus_nr", _chorusVoiceCountSlider->getValue(), _domain);
-		ConfMan.setInt("fluidsynth_chorus_level", _chorusLevelSlider->getValue(), _domain);
-		ConfMan.setInt("fluidsynth_chorus_speed", _chorusSpeedSlider->getValue(), _domain);
-		ConfMan.setInt("fluidsynth_chorus_depth", _chorusDepthSlider->getValue(), _domain);
-
-		uint32 waveForm = _chorusWaveFormTypePopUp->getSelectedTag();
-		if (waveForm == kWaveFormTypeSine) {
-			ConfMan.set("fluidsynth_chorus_waveform", "sine", _domain);
-		} else if (waveForm == kWaveFormTypeTriangle) {
-			ConfMan.set("fluidsynth_chorus_waveform", "triangle", _domain);
-		} else {
-			ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
-		}
-
-		ConfMan.setBool("fluidsynth_reverb_activate", _reverbActivate->getState());
-		ConfMan.setInt("fluidsynth_reverb_roomsize", _reverbRoomSizeSlider->getValue(), _domain);
-		ConfMan.setInt("fluidsynth_reverb_damping", _reverbDampingSlider->getValue(), _domain);
-		ConfMan.setInt("fluidsynth_reverb_width", _reverbWidthSlider->getValue(), _domain);
-		ConfMan.setInt("fluidsynth_reverb_level", _reverbLevelSlider->getValue(), _domain);
-
-		uint32 interpolation = _miscInterpolationPopUp->getSelectedTag();
-		if (interpolation == kInterpolationNone) {
-			ConfMan.set("fluidsynth_misc_interpolation", "none", _domain);
-		} else if (interpolation == kInterpolationLinear) {
-			ConfMan.set("fluidsynth_misc_interpolation", "linear", _domain);
-		} else if (interpolation == kInterpolation4thOrder) {
-			ConfMan.set("fluidsynth_misc_interpolation", "4th", _domain);
-		} else if (interpolation == kInterpolation7thOrder) {
-			ConfMan.set("fluidsynth_misc_interpolation", "7th", _domain);
-		} else {
-			ConfMan.removeKey("fluidsynth_misc_interpolation", _domain);
-		}
-
-		// The main options dialog is responsible for writing the config file.
+		writeSettings();
 	}
 
 	Dialog::close();
@@ -281,6 +212,15 @@ void FluidSynthSettingsDialog::handleCommand(CommandSender *sender, uint32 cmd,
 		_reverbLevelLabel->setLabel(Common::String::format("%d", _reverbLevelSlider->getValue()));
 		_reverbLevelLabel->draw();
 		break;
+	case kResetSettingsCmd: {
+		MessageDialog alert(_("Do you really want to reset all FluidSynth settings to their default values?"), _("Yes"), _("No"));
+		if (alert.runModal() == GUI::kMessageOK) {
+			resetSettings();
+			readSettings();
+			draw();
+		}
+		break;
+	}
 	case kOKCmd:
 		setResult(1);
 		close();
@@ -323,4 +263,104 @@ void FluidSynthSettingsDialog::setReverbSettingsState(bool enabled) {
 	_reverbLevelLabel->setEnabled(enabled);
 }
 
+void FluidSynthSettingsDialog::readSettings() {
+	_chorusVoiceCountSlider->setValue(ConfMan.getInt("fluidsynth_chorus_nr", _domain));
+	_chorusVoiceCountLabel->setLabel(Common::String::format("%d", _chorusVoiceCountSlider->getValue()));
+	_chorusLevelSlider->setValue(ConfMan.getInt("fluidsynth_chorus_level", _domain));
+	_chorusLevelLabel->setLabel(Common::String::format("%d", _chorusLevelSlider->getValue()));
+	_chorusSpeedSlider->setValue(ConfMan.getInt("fluidsynth_chorus_speed", _domain));
+	_chorusSpeedLabel->setLabel(Common::String::format("%d", _chorusSpeedSlider->getValue()));
+	_chorusDepthSlider->setValue(ConfMan.getInt("fluidsynth_chorus_depth", _domain));
+	_chorusDepthLabel->setLabel(Common::String::format("%d", _chorusDepthSlider->getValue()));
+
+	Common::String waveForm = ConfMan.get("fluidsynth_chorus_waveform", _domain);
+	if (waveForm == "sine") {
+		_chorusWaveFormTypePopUp->setSelectedTag(kWaveFormTypeSine);
+	} else if (waveForm == "triangle") {
+		_chorusWaveFormTypePopUp->setSelectedTag(kWaveFormTypeTriangle);
+	}
+
+	_reverbRoomSizeSlider->setValue(ConfMan.getInt("fluidsynth_reverb_roomsize", _domain));
+	_reverbRoomSizeLabel->setLabel(Common::String::format("%d", _reverbRoomSizeSlider->getValue()));
+	_reverbDampingSlider->setValue(ConfMan.getInt("fluidsynth_reverb_damping", _domain));
+	_reverbDampingLabel->setLabel(Common::String::format("%d", _reverbDampingSlider->getValue()));
+	_reverbWidthSlider->setValue(ConfMan.getInt("fluidsynth_reverb_width", _domain));
+	_reverbWidthLabel->setLabel(Common::String::format("%d", _reverbWidthSlider->getValue()));
+	_reverbLevelSlider->setValue(ConfMan.getInt("fluidsynth_reverb_level", _domain));
+	_reverbLevelLabel->setLabel(Common::String::format("%d", _reverbLevelSlider->getValue()));
+
+	Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation", _domain);
+	if (interpolation == "none") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolationNone);
+	} else if (interpolation == "linear") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolationLinear);
+	} else if (interpolation == "4th") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolation4thOrder);
+	} else if (interpolation == "7th") {
+		_miscInterpolationPopUp->setSelectedTag(kInterpolation7thOrder);
+	}
+
+	// This may trigger redrawing, so don't do it until all sliders have
+	// their proper values. Otherwise, the dialog may crash because of
+	// invalid slider values.
+	_chorusActivate->setState(ConfMan.getBool("fluidsynth_chorus_activate", _domain));
+	_reverbActivate->setState(ConfMan.getBool("fluidsynth_reverb_activate", _domain));
+}
+
+void FluidSynthSettingsDialog::writeSettings() {
+	ConfMan.setBool("fluidsynth_chorus_activate", _chorusActivate->getState());
+	ConfMan.setInt("fluidsynth_chorus_nr", _chorusVoiceCountSlider->getValue(), _domain);
+	ConfMan.setInt("fluidsynth_chorus_level", _chorusLevelSlider->getValue(), _domain);
+	ConfMan.setInt("fluidsynth_chorus_speed", _chorusSpeedSlider->getValue(), _domain);
+	ConfMan.setInt("fluidsynth_chorus_depth", _chorusDepthSlider->getValue(), _domain);
+
+	uint32 waveForm = _chorusWaveFormTypePopUp->getSelectedTag();
+	if (waveForm == kWaveFormTypeSine) {
+		ConfMan.set("fluidsynth_chorus_waveform", "sine", _domain);
+	} else if (waveForm == kWaveFormTypeTriangle) {
+		ConfMan.set("fluidsynth_chorus_waveform", "triangle", _domain);
+	} else {
+		ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
+	}
+
+	ConfMan.setBool("fluidsynth_reverb_activate", _reverbActivate->getState());
+	ConfMan.setInt("fluidsynth_reverb_roomsize", _reverbRoomSizeSlider->getValue(), _domain);
+	ConfMan.setInt("fluidsynth_reverb_damping", _reverbDampingSlider->getValue(), _domain);
+	ConfMan.setInt("fluidsynth_reverb_width", _reverbWidthSlider->getValue(), _domain);
+	ConfMan.setInt("fluidsynth_reverb_level", _reverbLevelSlider->getValue(), _domain);
+
+	uint32 interpolation = _miscInterpolationPopUp->getSelectedTag();
+	if (interpolation == kInterpolationNone) {
+		ConfMan.set("fluidsynth_misc_interpolation", "none", _domain);
+	} else if (interpolation == kInterpolationLinear) {
+		ConfMan.set("fluidsynth_misc_interpolation", "linear", _domain);
+	} else if (interpolation == kInterpolation4thOrder) {
+		ConfMan.set("fluidsynth_misc_interpolation", "4th", _domain);
+	} else if (interpolation == kInterpolation7thOrder) {
+		ConfMan.set("fluidsynth_misc_interpolation", "7th", _domain);
+	} else {
+		ConfMan.removeKey("fluidsynth_misc_interpolation", _domain);
+	}
+
+	// The main options dialog is responsible for writing the config file.
+	// That's why we don't actually flush the settings to the file here.
+}
+
+void FluidSynthSettingsDialog::resetSettings() {
+	ConfMan.removeKey("fluidsynth_chorus_activate", _domain);
+	ConfMan.removeKey("fluidsynth_chorus_nr", _domain);
+	ConfMan.removeKey("fluidsynth_chorus_level", _domain);
+	ConfMan.removeKey("fluidsynth_chorus_speed", _domain);
+	ConfMan.removeKey("fluidsynth_chorus_depth", _domain);
+	ConfMan.removeKey("fluidsynth_chorus_waveform", _domain);
+
+	ConfMan.removeKey("fluidsynth_reverb_activate", _domain);
+	ConfMan.removeKey("fluidsynth_reverb_roomsize", _domain);
+	ConfMan.removeKey("fluidsynth_reverb_damping", _domain);
+	ConfMan.removeKey("fluidsynth_reverb_width", _domain);
+	ConfMan.removeKey("fluidsynth_reverb_level", _domain);
+
+	ConfMan.removeKey("fluidsynth_misc_interpolation", _domain);
+}
+
 } // End of namespace GUI
diff --git a/gui/fluidsynth-dialog.h b/gui/fluidsynth-dialog.h
index 445c1ff..4d74c9f 100644
--- a/gui/fluidsynth-dialog.h
+++ b/gui/fluidsynth-dialog.h
@@ -40,11 +40,17 @@ public:
 
 	void open();
 	void close();
-	void handleCommand(CommandSender *sender,  uint32 cmd, uint32 data);
+	void handleCommand(CommandSender *sender, uint32 cmd, uint32 data);
 
+protected:
 	void setChorusSettingsState(bool enabled);
 	void setReverbSettingsState(bool enabled);
 
+	void readSettings();
+	void writeSettings();
+
+	void resetSettings();
+
 private:
 	Common::String _domain;
 
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index e5a3177..5298732 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -1505,6 +1505,9 @@
 "type='PopUp' "
 "/> "
 "</layout> "
+"<widget name='ResetSettings' "
+"type='Button' "
+"/> "
 "</layout> "
 "</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
@@ -2617,6 +2620,9 @@
 "type='PopUp' "
 "/> "
 "</layout> "
+"<widget name='ResetSettings' "
+"type='Button' "
+"/> "
 "</layout> "
 "</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 95455df..6ff035b 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index 98c68d3..e602786 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.17:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.18:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 5891b93..8e26096 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -943,6 +943,9 @@
 					type = 'PopUp'
 				/>
 			</layout>
+			<widget name = 'ResetSettings'
+				type = 'Button'
+			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index c9d576a..325ac88 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -954,6 +954,9 @@
 					type = 'PopUp'
 				/>
 			</layout>
+			<widget name = 'ResetSettings'
+				type = 'Button'
+			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index 15c7984..aadd3ea 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index d62977c..ce4e4ab 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.17:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.18:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index a6a2da9..ba723ae 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -957,6 +957,9 @@
 					type = 'PopUp'
 				/>
 			</layout>
+			<widget name = 'ResetSettings'
+				type = 'Button'
+			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index 7e614ca..ab96c14 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -953,6 +953,9 @@
 					type = 'PopUp'
 				/>
 			</layout>
+			<widget name = 'ResetSettings'
+				type = 'Button'
+			/>
 		</layout>
 	</dialog>
 


Commit: 10724365aa320092fa2f5b98d8f9b0ff6e219a0b
    https://github.com/scummvm/scummvm/commit/10724365aa320092fa2f5b98d8f9b0ff6e219a0b
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:52:36-08:00

Commit Message:
GUI: Misc FluidSynth-related cleanups.

Changed paths:
    gui/fluidsynth-dialog.cpp
    gui/options.cpp
    gui/options.h



diff --git a/gui/fluidsynth-dialog.cpp b/gui/fluidsynth-dialog.cpp
index eb5bac9..d97b3d7 100644
--- a/gui/fluidsynth-dialog.cpp
+++ b/gui/fluidsynth-dialog.cpp
@@ -66,7 +66,7 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 
 	_tabWidget->addTab(_("Reverb"));
 
-	_reverbActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Activate"), 0, kActivateReverbCmd);
+	_reverbActivate = new CheckboxWidget(_tabWidget, "FluidSynthSettings_Reverb.EnableTabCheckbox", _("Active"), 0, kActivateReverbCmd);
 
 	_reverbRoomSizeDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeText", _("Room:"));
 	_reverbRoomSizeSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Reverb.RoomSizeSlider", 0, kReverbRoomSizeChangedCmd);
diff --git a/gui/options.cpp b/gui/options.cpp
index 65f26d2..0599714 100644
--- a/gui/options.cpp
+++ b/gui/options.cpp
@@ -125,9 +125,6 @@ void OptionsDialog::init() {
 	_midiGainDesc = 0;
 	_midiGainSlider = 0;
 	_midiGainLabel = 0;
-#ifdef USE_FLUIDSYNTH
-	_fluidSynthSettings = 0;
-#endif
 	_enableMT32Settings = false;
 	_mt32Checkbox = 0;
 	_mt32DevicePopUp = 0;
@@ -873,7 +870,7 @@ void OptionsDialog::addMIDIControls(GuiObject *boss, const Common::String &prefi
 	_midiGainLabel = new StaticTextWidget(boss, prefix + "mcMidiGainLabel", "1.00");
 
 #ifdef USE_FLUIDSYNTH
-	_fluidSynthSettings = new ButtonWidget(boss, prefix + "mcFluidSynthSettings", _("FluidSynth Settings"), 0, kFluidSynthSettingsCmd);
+	new ButtonWidget(boss, prefix + "mcFluidSynthSettings", _("FluidSynth Settings"), 0, kFluidSynthSettingsCmd);
 #endif
 
 	_enableMIDISettings = true;
diff --git a/gui/options.h b/gui/options.h
index eb45126..081ef4f 100644
--- a/gui/options.h
+++ b/gui/options.h
@@ -135,9 +135,6 @@ private:
 	StaticTextWidget *_midiGainDesc;
 	SliderWidget *_midiGainSlider;
 	StaticTextWidget *_midiGainLabel;
-#ifdef USE_FLUIDSYNTH
-	ButtonWidget *_fluidSynthSettings;
-#endif
 
 	//
 	// MT-32 controls


Commit: e4a77aff06645a76b575aaf4b8253760e0cd3710
    https://github.com/scummvm/scummvm/commit/e4a77aff06645a76b575aaf4b8253760e0cd3710
Author: Torbjörn Andersson (eriktorbjorn at users.sourceforge.net)
Date: 2013-01-26T04:53:43-08:00

Commit Message:
GUI: Move the FluidSynth reset button from Misc tab to bottom

This should make it clearer that Reset applies to all of the
FluidSynth settings, not just the Misc tab.

Changed paths:
    dists/bada/Res/scummmobile/scummmobile_layout.stx
    gui/ThemeEngine.h
    gui/fluidsynth-dialog.cpp
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx



diff --git a/dists/bada/Res/scummmobile/scummmobile_layout.stx b/dists/bada/Res/scummmobile/scummmobile_layout.stx
index abac4e2..5da293a 100644
--- a/dists/bada/Res/scummmobile/scummmobile_layout.stx
+++ b/dists/bada/Res/scummmobile/scummmobile_layout.stx
@@ -795,6 +795,9 @@
 			<widget name = 'TabWidget'/>
 			<layout type = 'horizontal' padding = '16, 16, 16, 16'>
 				<space/>
+				<widget name = 'ResetSettings'
+					type = 'Button'
+				/>
 				<widget name = 'Cancel'
 						type = 'Button'
 				/>
@@ -935,9 +938,6 @@
 					type = 'PopUp'
 				/>
 			</layout>
-			<widget name = 'ResetSettings'
-				type = 'Button'
-			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/ThemeEngine.h b/gui/ThemeEngine.h
index c422ed5..dda9f2c 100644
--- a/gui/ThemeEngine.h
+++ b/gui/ThemeEngine.h
@@ -35,7 +35,7 @@
 #include "graphics/pixelformat.h"
 
 
-#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.18"
+#define SCUMMVM_THEME_VERSION_STR "SCUMMVM_STX0.8.19"
 
 class OSystem;
 
diff --git a/gui/fluidsynth-dialog.cpp b/gui/fluidsynth-dialog.cpp
index d97b3d7..662518b 100644
--- a/gui/fluidsynth-dialog.cpp
+++ b/gui/fluidsynth-dialog.cpp
@@ -144,10 +144,10 @@ FluidSynthSettingsDialog::FluidSynthSettingsDialog()
 	_miscInterpolationPopUp->appendEntry(_("Fourth-order"), kInterpolation4thOrder);
 	_miscInterpolationPopUp->appendEntry(_("Seventh-order"), kInterpolation7thOrder);
 
-	new ButtonWidget(_tabWidget, "FluidSynthSettings_Misc.ResetSettings", _("Reset"), _("Reset all FluidSynth settings to their default values."), kResetSettingsCmd);
-
 	_tabWidget->setActiveTab(0);
 
+	new ButtonWidget(this, "FluidSynthSettings.ResetSettings", _("Reset"), _("Reset all FluidSynth settings to their default values."), kResetSettingsCmd);
+
 	new ButtonWidget(this, "FluidSynthSettings.Cancel", _("Cancel"), 0, kCloseCmd);
 	new ButtonWidget(this, "FluidSynthSettings.Ok", _("OK"), 0, kOKCmd);
 }
diff --git a/gui/themes/default.inc b/gui/themes/default.inc
index 5298732..78c04f1 100644
--- a/gui/themes/default.inc
+++ b/gui/themes/default.inc
@@ -1368,6 +1368,9 @@
 "<widget name='TabWidget'/> "
 "<layout type='horizontal' padding='8,8,8,8'> "
 "<space/> "
+"<widget name='ResetSettings' "
+"type='Button' "
+"/> "
 "<widget name='Cancel' "
 "type='Button' "
 "/> "
@@ -1505,9 +1508,6 @@
 "type='PopUp' "
 "/> "
 "</layout> "
-"<widget name='ResetSettings' "
-"type='Button' "
-"/> "
 "</layout> "
 "</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
@@ -2483,6 +2483,9 @@
 "<widget name='TabWidget'/> "
 "<layout type='horizontal' padding='16,16,16,16'> "
 "<space/> "
+"<widget name='ResetSettings' "
+"type='Button' "
+"/> "
 "<widget name='Cancel' "
 "type='Button' "
 "/> "
@@ -2620,9 +2623,6 @@
 "type='PopUp' "
 "/> "
 "</layout> "
-"<widget name='ResetSettings' "
-"type='Button' "
-"/> "
 "</layout> "
 "</dialog> "
 "<dialog name='SaveLoadChooser' overlays='screen' inset='8' shading='dim'> "
diff --git a/gui/themes/scummclassic.zip b/gui/themes/scummclassic.zip
index 6ff035b..3183417 100644
Binary files a/gui/themes/scummclassic.zip and b/gui/themes/scummclassic.zip differ
diff --git a/gui/themes/scummclassic/THEMERC b/gui/themes/scummclassic/THEMERC
index e602786..36eaacd 100644
--- a/gui/themes/scummclassic/THEMERC
+++ b/gui/themes/scummclassic/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.18:ScummVM Classic Theme:No Author]
+[SCUMMVM_STX0.8.19:ScummVM Classic Theme:No Author]
diff --git a/gui/themes/scummclassic/classic_layout.stx b/gui/themes/scummclassic/classic_layout.stx
index 8e26096..312a90e 100644
--- a/gui/themes/scummclassic/classic_layout.stx
+++ b/gui/themes/scummclassic/classic_layout.stx
@@ -803,6 +803,9 @@
 			<widget name = 'TabWidget'/>
 			<layout type = 'horizontal' padding = '16, 16, 16, 16'>
 				<space/>
+				<widget name = 'ResetSettings'
+					type = 'Button'
+				/>
 				<widget name = 'Cancel'
 						type = 'Button'
 				/>
@@ -943,9 +946,6 @@
 					type = 'PopUp'
 				/>
 			</layout>
-			<widget name = 'ResetSettings'
-				type = 'Button'
-			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/themes/scummclassic/classic_layout_lowres.stx b/gui/themes/scummclassic/classic_layout_lowres.stx
index 325ac88..d42efb5 100644
--- a/gui/themes/scummclassic/classic_layout_lowres.stx
+++ b/gui/themes/scummclassic/classic_layout_lowres.stx
@@ -814,6 +814,9 @@
 			<widget name = 'TabWidget'/>
 			<layout type = 'horizontal' padding = '8, 8, 8, 8'>
 				<space/>
+				<widget name = 'ResetSettings'
+					type = 'Button'
+				/>
 				<widget name = 'Cancel'
 						type = 'Button'
 				/>
@@ -954,9 +957,6 @@
 					type = 'PopUp'
 				/>
 			</layout>
-			<widget name = 'ResetSettings'
-				type = 'Button'
-			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/themes/scummmodern.zip b/gui/themes/scummmodern.zip
index aadd3ea..412ed6a 100644
Binary files a/gui/themes/scummmodern.zip and b/gui/themes/scummmodern.zip differ
diff --git a/gui/themes/scummmodern/THEMERC b/gui/themes/scummmodern/THEMERC
index ce4e4ab..9e87762 100644
--- a/gui/themes/scummmodern/THEMERC
+++ b/gui/themes/scummmodern/THEMERC
@@ -1 +1 @@
-[SCUMMVM_STX0.8.18:ScummVM Modern Theme:No Author]
+[SCUMMVM_STX0.8.19:ScummVM Modern Theme:No Author]
diff --git a/gui/themes/scummmodern/scummmodern_layout.stx b/gui/themes/scummmodern/scummmodern_layout.stx
index ba723ae..fa57e62 100644
--- a/gui/themes/scummmodern/scummmodern_layout.stx
+++ b/gui/themes/scummmodern/scummmodern_layout.stx
@@ -817,6 +817,9 @@
 			<widget name = 'TabWidget'/>
 			<layout type = 'horizontal' padding = '16, 16, 16, 16'>
 				<space/>
+				<widget name = 'ResetSettings'
+					type = 'Button'
+				/>
 				<widget name = 'Cancel'
 						type = 'Button'
 				/>
@@ -957,9 +960,6 @@
 					type = 'PopUp'
 				/>
 			</layout>
-			<widget name = 'ResetSettings'
-				type = 'Button'
-			/>
 		</layout>
 	</dialog>
 
diff --git a/gui/themes/scummmodern/scummmodern_layout_lowres.stx b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
index ab96c14..5c3cc83 100644
--- a/gui/themes/scummmodern/scummmodern_layout_lowres.stx
+++ b/gui/themes/scummmodern/scummmodern_layout_lowres.stx
@@ -813,6 +813,9 @@
 			<widget name = 'TabWidget'/>
 			<layout type = 'horizontal' padding = '8, 8, 8, 8'>
 				<space/>
+				<widget name = 'ResetSettings'
+					type = 'Button'
+				/>
 				<widget name = 'Cancel'
 						type = 'Button'
 				/>
@@ -953,9 +956,6 @@
 					type = 'PopUp'
 				/>
 			</layout>
-			<widget name = 'ResetSettings'
-				type = 'Button'
-			/>
 		</layout>
 	</dialog>
 


Commit: 94edb3409fa949a6391c54adb4bf7fc4a1d210ad
    https://github.com/scummvm/scummvm/commit/94edb3409fa949a6391c54adb4bf7fc4a1d210ad
Author: Johannes Schickel (lordhoto at scummvm.org)
Date: 2013-01-26T05:00:04-08:00

Commit Message:
Merge branch 'eriktorbjorn-fluidsynth-settings'

This is a manual merge of a slightly adapted pull request #296.
The changes made are:
- Each time the theme format changes, the version was increased
- default.inc has been regenerated in the same commit as the theme changes

Changed paths:
  A gui/fluidsynth-dialog.cpp
  A gui/fluidsynth-dialog.h
    audio/softsynth/fluidsynth.cpp
    base/commandLine.cpp
    dists/bada/Res/scummmobile/scummmobile_layout.stx
    gui/ThemeEngine.h
    gui/module.mk
    gui/options.cpp
    gui/options.h
    gui/themes/default.inc
    gui/themes/scummclassic.zip
    gui/themes/scummclassic/THEMERC
    gui/themes/scummclassic/classic_layout.stx
    gui/themes/scummclassic/classic_layout_lowres.stx
    gui/themes/scummmodern.zip
    gui/themes/scummmodern/THEMERC
    gui/themes/scummmodern/scummmodern_layout.stx
    gui/themes/scummmodern/scummmodern_layout_lowres.stx









More information about the Scummvm-git-logs mailing list