diff options
| author | Eugene Sandulenko | 2007-03-10 13:39:38 +0000 | 
|---|---|---|
| committer | Eugene Sandulenko | 2007-03-10 13:39:38 +0000 | 
| commit | 5577379ac3d163c62d319a80f6749c9342401a01 (patch) | |
| tree | 0a56af1e976c7757b8adb268f682206c55526b8e | |
| parent | 669c34d8c280650fc07871b8556119c57a83ccda (diff) | |
| download | scummvm-rg350-5577379ac3d163c62d319a80f6749c9342401a01.tar.gz scummvm-rg350-5577379ac3d163c62d319a80f6749c9342401a01.tar.bz2 scummvm-rg350-5577379ac3d163c62d319a80f6749c9342401a01.zip | |
Implement FR #1559561: "GUI: output sample rate widgets"
svn-id: r26056
| -rw-r--r-- | gui/options.cpp | 37 | ||||
| -rw-r--r-- | gui/options.h | 1 | ||||
| -rw-r--r-- | gui/theme-config.cpp | 28 | ||||
| -rw-r--r-- | gui/themes/modern.ini | 3 | 
4 files changed, 69 insertions, 0 deletions
| diff --git a/gui/options.cpp b/gui/options.cpp index 1d32662c8d..3ad861de7b 100644 --- a/gui/options.cpp +++ b/gui/options.cpp @@ -63,6 +63,8 @@ enum {  static const char *savePeriodLabels[] = { "Never", "every 5 mins", "every 10 mins", "every 15 mins", "every 30 mins", 0 };  static const int savePeriodValues[] = { 0, 5 * 60, 10 * 60, 15 * 60, 30 * 60, -1 }; +static const char *outputRateLabels[] = { "Default", "22 kHz", "8 kHz", "11kHz", "44 kHz", "48 kHz", 0 }; +static const int outputRateValues[] = { 0, 22050, 8000, 11025, 44100, 48000, -1 }; @@ -90,6 +92,7 @@ void OptionsDialog::init() {  	_aspectCheckbox = 0;  	_enableAudioSettings = false;  	_midiPopUp = 0; +	_outputRatePopUp = 0;  	_enableMIDISettings = false;  	_multiMidiCheckbox = 0;  	_mt32Checkbox = 0; @@ -173,6 +176,15 @@ void OptionsDialog::open() {  		_midiPopUp->setSelected(md->name ? i : 0);  	} +	if (_outputRatePopUp) { +		_outputRatePopUp->setSelected(1); +		int value = ConfMan.getInt("output_rate", _domain); +		for	(int i = 0; outputRateLabels[i]; i++) { +			if (value == outputRateValues[i]) +				_outputRatePopUp->setSelected(i); +		} +	} +  	if (_multiMidiCheckbox) {  		// Multi midi setting @@ -298,6 +310,17 @@ void OptionsDialog::close() {  			}  		} +		if (_outputRatePopUp) { +			if (_enableAudioSettings) { +				if (_outputRatePopUp->getSelectedTag() != 0) +					ConfMan.setInt("output_rate", _outputRatePopUp->getSelectedTag(), _domain); +				else +					ConfMan.removeKey("output_rate", _domain); +			} else { +				ConfMan.removeKey("output_rate", _domain); +			} +		} +  		// MIDI options  		if (_multiMidiCheckbox) {  			if (_enableMIDISettings) { @@ -424,6 +447,7 @@ void OptionsDialog::setAudioSettingsState(bool enabled) {  	_enableAudioSettings = enabled;  	_midiPopUp->setEnabled(enabled); +	_outputRatePopUp->setEnabled(enabled);  }  void OptionsDialog::setMIDISettingsState(bool enabled) { @@ -521,6 +545,13 @@ void OptionsDialog::addAudioControls(GuiObject *boss, const String &prefix) {  		md++;  	} +	// Sample rate settings +	_outputRatePopUp = new PopUpWidget(boss, prefix + "auSampleRatePopup", "Output rate: ", labelWidth); + +	for (int i = 0; outputRateLabels[i]; i++) { +		_outputRatePopUp->appendEntry(outputRateLabels[i], outputRateValues[i]); +	} +  	_enableAudioSettings = true;  } @@ -612,6 +643,8 @@ void OptionsDialog::reflowLayout() {  	if (_midiPopUp)  		_midiPopUp->changeLabelWidth(labelWidth); +	if (_outputRatePopUp) +		_outputRatePopUp->changeLabelWidth(labelWidth);  	if (_gfxPopUp)  		_gfxPopUp->changeLabelWidth(labelWidth);  	if (_renderModePopUp) @@ -764,10 +797,14 @@ void GlobalOptionsDialog::close() {  		String themePath(_themePath->getLabel());  		if (!themePath.empty() && (themePath != "None"))  			ConfMan.set("themepath", themePath, _domain); +		else +			ConfMan.removeKey("themepath", _domain);  		String extraPath(_extraPath->getLabel());  		if (!extraPath.empty() && (extraPath != "None"))  			ConfMan.set("extrapath", extraPath, _domain); +		else +			ConfMan.removeKey("extrapath", _domain);  		ConfMan.setInt("autosave_period", _autosavePeriodPopUp->getSelectedTag(), _domain);  	} diff --git a/gui/options.h b/gui/options.h index 1a1dfda2f0..67b4a40ebd 100644 --- a/gui/options.h +++ b/gui/options.h @@ -93,6 +93,7 @@ private:  	//  	bool _enableAudioSettings;  	PopUpWidget *_midiPopUp; +	PopUpWidget *_outputRatePopUp;  	//  	// MIDI controls diff --git a/gui/theme-config.cpp b/gui/theme-config.cpp index fdcca9db6b..36c8cc5b60 100644 --- a/gui/theme-config.cpp +++ b/gui/theme-config.cpp @@ -55,6 +55,32 @@ const char *Theme::_defaultConfigINI =  "def_vcAudioTabSpacing=2\n"  "use=XxY\n"  "\n" +"# Override audio tab\n" +"set_parent=gameoptions\n" +"vBorder=5\n" +"\n" +"# audio tab\n" +"opYoffset=vBorder\n" +"useWithPrefix=audioControls globaloptions_\n" +"useWithPrefix=subtitleControls globaloptions_\n" +"\n" +"# volume tab\n" +"opYoffset=vBorder\n" +"useWithPrefix=volumeControls globaloptions_\n" +"\n" +"# audio tab\n" +"opYoffset=vBorder\n" +"gameoptions_audioCheckbox=gox opYoffset (kFontHeight + 10 + 180) buttonHeight\n" +"opYoffset=(opYoffset + buttonHeight + 6)\n" +"useWithPrefix=audioControls gameoptions_\n" +"useWithPrefix=subtitleControls gameoptions_\n" +"\n" +"# volume tab\n" +"opYoffset=vBorder\n" +"gameoptions_volumeCheckbox=gox opYoffset (kFontHeight + 10 + 190) buttonHeight\n" +"opYoffset=(opYoffset + buttonHeight + 6)\n" +"useWithPrefix=volumeControls gameoptions_\n" +"\n"  "TabWidget.tabWidth=0\n"  "TabWidget.tabHeight=16\n"  "TabWidget.titleVPad=2\n" @@ -348,6 +374,8 @@ const char *Theme::_defaultConfigINI =  "auw=(parent.w - 2 * 10)\n"  "auMidiPopup=(aux - 5) (opYoffset - 1) (auw + 5) (kLineHeight + 2)\n"  "opYoffset=(opYoffset + buttonHeight + 4)\n" +"auSampleRatePopup=(aux - 5) (opYoffset - 1) (auw + 5) (kLineHeight + 2)\n" +"opYoffset=(opYoffset + buttonHeight + 4)\n"  "\n"  "[volumeControls]\n"  "vctextw=(95 + vcAudioTabIndent)\n" diff --git a/gui/themes/modern.ini b/gui/themes/modern.ini index b01c791260..3a1bbc9e2b 100644 --- a/gui/themes/modern.ini +++ b/gui/themes/modern.ini @@ -466,6 +466,8 @@ aux=(opXoffset + 10)  auw=(parent.w - aux - 30)  auMidiPopup=(aux) (opYoffset - 1) (auw + 5) kPopUpHeight  opYoffset=(opYoffset + buttonHeight + 4) +auSampleRatePopup=(aux) (opYoffset - 1) (auw + 5) kPopUpHeight +opYoffset=(opYoffset + buttonHeight + 4)  [volumeControls]  vctextw=110 @@ -553,6 +555,7 @@ use=extra  pix_checkbox_empty="checkbox_empty320.bmp"  pix_checkbox_checked="checkbox_checked320.bmp"  pix_cursor_image="cursor320.bmp" +def_volumeControlsInAudio=false  # NES resoltuion  [256x240] | 
