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
This commit is contained in:
Johannes Schickel 2013-01-26 14:00:04 +01:00
commit 94edb3409f
18 changed files with 1655 additions and 11 deletions

View File

@ -127,12 +127,54 @@ 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.
if (ConfMan.getBool("fluidsynth_chorus_activate")) {
fluid_synth_set_chorus_on(_synth, 1);
// fluid_synth_set_interp_method(_synth, -1, FLUID_INTERP_LINEAR);
// fluid_synth_set_reverb_on(_synth, 0);
// fluid_synth_set_chorus_on(_synth, 0);
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 {
fluid_synth_set_chorus_on(_synth, 0);
}
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;
int reverbWidth = ConfMan.getInt("fluidsynth_reverb_width");
double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0;
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;
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, interpMethod);
const char *soundfont = ConfMan.get("soundfont").c_str();

View File

@ -239,6 +239,26 @@ void registerDefaults() {
ConfMan.registerDefault("gui_saveload_chooser", "grid");
ConfMan.registerDefault("gui_saveload_last_pos", "0");
#ifdef USE_FLUIDSYNTH
// 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", 100);
ConfMan.registerDefault("fluidsynth_chorus_speed", 30);
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", 1);
ConfMan.registerDefault("fluidsynth_reverb_level", 90);
ConfMan.registerDefault("fluidsynth_misc_interpolation", "4th");
#endif
}
//

View File

@ -371,6 +371,10 @@
height = 'Globals.Line.Height'
/>
</layout>
<widget name = 'mcFluidSynthSettings'
width = '200'
height = 'Globals.Button.Height'
/>
</layout>
</dialog>
@ -786,6 +790,157 @@
</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 = 'ResetSettings'
type = 'Button'
/>
<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'

View File

@ -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.19"
class OSystem;

366
gui/fluidsynth-dialog.cpp Normal file
View File

@ -0,0 +1,366 @@
/* 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/message.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 {
kActivateChorusCmd = 'acho',
kChorusVoiceCountChangedCmd = 'cvcc',
kChorusLevelChangedCmd = 'clec',
kChorusSpeedChangedCmd = 'cspc',
kChorusDepthChangedCmd = 'cdec',
kActivateReverbCmd = 'arev',
kReverbRoomSizeChangedCmd = 'rrsc',
kReverbDampingChangedCmd = 'rdac',
kReverbWidthChangedCmd = 'rwic',
kReverbLevelChangedCmd = 'rlec',
kResetSettingsCmd = 'rese'
};
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(_("Reverb"));
_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);
// 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);
_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(100);
_chorusLevelLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.LevelLabel", "100");
_chorusSpeedDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedText", _("Speed:"));
_chorusSpeedSlider = new SliderWidget(_tabWidget, "FluidSynthSettings_Chorus.SpeedSlider", 0, kChorusSpeedChangedCmd);
// 0.30 - 5.00, Default: 0.30
_chorusSpeedSlider->setMinValue(30);
_chorusSpeedSlider->setMaxValue(500);
_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(210);
_chorusDepthLabel = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.DepthLabel", "80");
_chorusWaveFormTypePopUpDesc = new StaticTextWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormTypeText", _("Type:"));
_chorusWaveFormTypePopUp = new PopUpWidget(_tabWidget, "FluidSynthSettings_Chorus.WaveFormType");
_chorusWaveFormTypePopUp->appendEntry(_("Sine"), kWaveFormTypeSine);
_chorusWaveFormTypePopUp->appendEntry(_("Triangle"), kWaveFormTypeTriangle);
_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.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);
}
FluidSynthSettingsDialog::~FluidSynthSettingsDialog() {
}
void FluidSynthSettingsDialog::open() {
Dialog::open();
// Reset result value
setResult(0);
readSettings();
}
void FluidSynthSettingsDialog::close() {
if (getResult()) {
writeSettings();
}
Dialog::close();
}
void FluidSynthSettingsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint32 data) {
switch (cmd) {
case kActivateChorusCmd:
setChorusSettingsState(data);
break;
case kChorusVoiceCountChangedCmd:
_chorusVoiceCountLabel->setLabel(Common::String::format("%d", _chorusVoiceCountSlider->getValue()));
_chorusVoiceCountLabel->draw();
break;
case kChorusLevelChangedCmd:
_chorusLevelLabel->setLabel(Common::String::format("%d", _chorusLevelSlider->getValue()));
_chorusLevelLabel->draw();
break;
case kChorusSpeedChangedCmd:
_chorusSpeedLabel->setLabel(Common::String::format("%d", _chorusSpeedSlider->getValue()));
_chorusSpeedLabel->draw();
break;
case kChorusDepthChangedCmd:
_chorusDepthLabel->setLabel(Common::String::format("%d", _chorusDepthSlider->getValue()));
_chorusDepthLabel->draw();
break;
case kActivateReverbCmd:
setReverbSettingsState(data);
break;
case kReverbRoomSizeChangedCmd:
_reverbRoomSizeLabel->setLabel(Common::String::format("%d", _reverbRoomSizeSlider->getValue()));
_reverbRoomSizeLabel->draw();
break;
case kReverbDampingChangedCmd:
_reverbDampingLabel->setLabel(Common::String::format("%d", _reverbDampingSlider->getValue()));
_reverbDampingLabel->draw();
break;
case kReverbWidthChangedCmd:
_reverbWidthLabel->setLabel(Common::String::format("%d", _reverbWidthSlider->getValue()));
_reverbWidthLabel->draw();
break;
case kReverbLevelChangedCmd:
_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();
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);
}
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

104
gui/fluidsynth-dialog.h Normal file
View File

@ -0,0 +1,104 @@
/* 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);
protected:
void setChorusSettingsState(bool enabled);
void setReverbSettingsState(bool enabled);
void readSettings();
void writeSettings();
void resetSettings();
private:
Common::String _domain;
TabWidget *_tabWidget;
CheckboxWidget *_chorusActivate;
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 *_reverbActivate;
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

View File

@ -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

View File

@ -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 };
@ -863,6 +869,10 @@ void OptionsDialog::addMIDIControls(GuiObject *boss, const Common::String &prefi
_midiGainSlider->setMaxValue(1000);
_midiGainLabel = new StaticTextWidget(boss, prefix + "mcMidiGainLabel", "1.00");
#ifdef USE_FLUIDSYNTH
new ButtonWidget(boss, prefix + "mcFluidSynthSettings", _("FluidSynth Settings"), 0, kFluidSynthSettingsCmd);
#endif
_enableMIDISettings = true;
}
@ -1231,12 +1241,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() {
@ -1465,6 +1483,11 @@ void GlobalOptionsDialog::handleCommand(CommandSender *sender, uint32 cmd, uint3
case kChooseKeyMappingCmd:
_keysDialog->runModal();
break;
#endif
#ifdef USE_FLUIDSYNTH
case kFluidSynthSettingsCmd:
_fluidSynthSettingsDialog->runModal();
break;
#endif
default:
OptionsDialog::handleCommand(sender, cmd, data);

View File

@ -32,6 +32,10 @@
#include "gui/KeysDialog.h"
#endif
#ifdef USE_FLUIDSYNTH
#include "gui/fluidsynth-dialog.h"
#endif
namespace GUI {
class CheckboxWidget;
@ -207,6 +211,9 @@ public:
protected:
#ifdef SMALL_SCREEN_DEVICE
KeysDialog *_keysDialog;
#endif
#ifdef USE_FLUIDSYNTH
FluidSynthSettingsDialog *_fluidSynthSettingsDialog;
#endif
StaticTextWidget *_savePath;
ButtonWidget *_savePathClearButton;

View File

@ -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,153 @@
"</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='ResetSettings' "
"type='Button' "
"/> "
"<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 +2056,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 +2478,153 @@
"</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='ResetSettings' "
"type='Button' "
"/> "
"<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'> "

Binary file not shown.

View File

@ -1 +1 @@
[SCUMMVM_STX0.8.16:ScummVM Classic Theme:No Author]
[SCUMMVM_STX0.8.19:ScummVM Classic Theme:No Author]

View File

@ -359,6 +359,10 @@
height = 'Globals.Line.Height'
/>
</layout>
<widget name = 'mcFluidSynthSettings'
width = '200'
height = 'Globals.Button.Height'
/>
</layout>
</dialog>
@ -794,6 +798,157 @@
</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 = 'ResetSettings'
type = 'Button'
/>
<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'>

View File

@ -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,157 @@
</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 = 'ResetSettings'
type = 'Button'
/>
<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'/>

Binary file not shown.

View File

@ -1 +1 @@
[SCUMMVM_STX0.8.16:ScummVM Modern Theme:No Author]
[SCUMMVM_STX0.8.19:ScummVM Modern Theme:No Author]

View File

@ -373,6 +373,10 @@
height = 'Globals.Line.Height'
/>
</layout>
<widget name = 'mcFluidSynthSettings'
width = '200'
height = 'Globals.Button.Height'
/>
</layout>
</dialog>
@ -808,6 +812,157 @@
</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 = 'ResetSettings'
type = 'Button'
/>
<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'>

View File

@ -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,157 @@
</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 = 'ResetSettings'
type = 'Button'
/>
<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'/>