[Scummvm-cvs-logs] SF.net SVN: scummvm:[50651] scummvm/trunk/gui
lordhoto at users.sourceforge.net
lordhoto at users.sourceforge.net
Sun Jul 4 20:24:13 CEST 2010
Revision: 50651
http://scummvm.svn.sourceforge.net/scummvm/?rev=50651&view=rev
Author: lordhoto
Date: 2010-07-04 18:24:13 +0000 (Sun, 04 Jul 2010)
Log Message:
-----------
Simplify audio device settings handling by using the device handle as tag instead of newly created id.
Modified Paths:
--------------
scummvm/trunk/gui/options.cpp
scummvm/trunk/gui/options.h
Modified: scummvm/trunk/gui/options.cpp
===================================================================
--- scummvm/trunk/gui/options.cpp 2010-07-04 18:07:34 UTC (rev 50650)
+++ scummvm/trunk/gui/options.cpp 2010-07-04 18:24:13 UTC (rev 50651)
@@ -136,19 +136,6 @@
}
}
-bool musicDeviceSkipSettingDefault(MusicDevices::iterator d, Common::String dom, MusicPlugin::List::const_iterator &m, uint32 guio) {
- return (dom == Common::ConfigManager::kApplicationDomain && d->getMusicType() != MT_TOWNS)
- || (dom != Common::ConfigManager::kApplicationDomain && (!(guio & MidiDriver::musicType2GUIO((uint32)-1)) || (guio & (MidiDriver::musicType2GUIO(d->getMusicType())))))
- || d->getMusicDriverId() == "auto"
- || d->getMusicDriverId() == "null";
-}
-
-bool musicDeviceSkipSettingSpec(MusicDevices::iterator d, Common::String, MusicPlugin::List::const_iterator &m, uint32) {
- if (d->getMusicDriverId() == "auto")
- ++m;
- return ((d->getMusicType() >= MT_GM) || d->getMusicDriverId() == "auto") ? true : false;
-}
-
void OptionsDialog::open() {
Dialog::open();
@@ -207,21 +194,21 @@
}
// Audio options
- if (!loadMusicDeviceSetting(_midiPopUp, "music_driver", musicDeviceSkipSettingDefault))
+ if (!loadMusicDeviceSetting(_midiPopUp, "music_driver"))
_midiPopUp->setSelected(0);
- if (!loadMusicDeviceSetting(_mt32DevicePopUp, "mt32_device", musicDeviceSkipSettingSpec)) {
+ if (!loadMusicDeviceSetting(_mt32DevicePopUp, "mt32_device")) {
if (_domain.equals(Common::ConfigManager::kApplicationDomain)) {
- if (!loadMusicDeviceSetting(_mt32DevicePopUp, Common::String(), musicDeviceSkipSettingSpec, MT_MT32))
+ if (!loadMusicDeviceSetting(_mt32DevicePopUp, Common::String(), MT_MT32))
_mt32DevicePopUp->setSelected(0);
} else {
_mt32DevicePopUp->setSelected(0);
}
}
- if (!loadMusicDeviceSetting(_gmDevicePopUp, "gm_device", musicDeviceSkipSettingSpec)) {
+ if (!loadMusicDeviceSetting(_gmDevicePopUp, "gm_device")) {
if (_domain.equals(Common::ConfigManager::kApplicationDomain)) {
- if (!loadMusicDeviceSetting(_gmDevicePopUp, Common::String(), musicDeviceSkipSettingSpec, MT_GM))
+ if (!loadMusicDeviceSetting(_gmDevicePopUp, Common::String(), MT_GM))
_gmDevicePopUp->setSelected(0);
} else {
_gmDevicePopUp->setSelected(0);
@@ -365,9 +352,9 @@
// Audio options
if (_midiPopUp) {
if (_enableAudioSettings) {
- saveMusicDeviceSetting(_midiPopUp, "music_driver", musicDeviceSkipSettingDefault);
- saveMusicDeviceSetting(_mt32DevicePopUp, "mt32_device", musicDeviceSkipSettingSpec);
- saveMusicDeviceSetting(_gmDevicePopUp, "gm_device", musicDeviceSkipSettingSpec);
+ saveMusicDeviceSetting(_midiPopUp, "music_driver");
+ saveMusicDeviceSetting(_mt32DevicePopUp, "mt32_device");
+ saveMusicDeviceSetting(_gmDevicePopUp, "gm_device");
} else {
ConfMan.removeKey("music_driver", _domain);
ConfMan.removeKey("mt32_device", _domain);
@@ -667,8 +654,6 @@
uint32 allFlags = MidiDriver::musicType2GUIO((uint32)-1);
const MusicPlugin::List p = MusicMan.getPlugins();
- int musicId = 0;
- int midiId = 0;
for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
MusicDevices i = (**m)->getDevices();
for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
@@ -676,13 +661,12 @@
|| (_domain != Common::ConfigManager::kApplicationDomain && !(_guioptions & allFlags)) // No flags are specified
|| _guioptions & (MidiDriver::musicType2GUIO(d->getMusicType())) // flag is present
|| d->getMusicDriverId() == "auto" || d->getMusicDriverId() == "null") // always add default and null device
- _midiPopUp->appendEntry(d->getCompleteName(), musicId++);
+ _midiPopUp->appendEntry(d->getCompleteName(), d->getHandle());
if (d->getMusicType() >= MT_GM || d->getMusicDriverId() == "auto") {
- _mt32DevicePopUp->appendEntry(d->getCompleteName(), midiId);
+ _mt32DevicePopUp->appendEntry(d->getCompleteName(), d->getHandle());
if (d->getMusicType() != MT_MT32)
- _gmDevicePopUp->appendEntry(d->getCompleteName(), midiId);
- ++midiId;
+ _gmDevicePopUp->appendEntry(d->getCompleteName(), d->getHandle());
}
}
}
@@ -801,7 +785,7 @@
_enableVolumeSettings = true;
}
-bool OptionsDialog::loadMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicDeviceSkipFunc skipfunc, MusicType preferredType) {
+bool OptionsDialog::loadMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicType preferredType) {
if (!popup || !popup->isEnabled())
return true;
@@ -809,46 +793,33 @@
const Common::String drv = ConfMan.get(setting, (_domain != Common::ConfigManager::kApplicationDomain && !ConfMan.hasKey(setting, _domain)) ? Common::ConfigManager::kApplicationDomain : _domain);
const MusicPlugin::List p = MusicMan.getPlugins();
- int id = 0;
- for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end() && id != -1; ++m) {
+ for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end(); ++m) {
MusicDevices i = (**m)->getDevices();
for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
if (setting.empty() ? (preferredType == d->getMusicType()) : (drv == d->getCompleteId())) {
- popup->setSelected(id);
- id = -1;
- break;
- } else if (skipfunc(d, _domain, m, _guioptions)) {
- id++;
+ popup->setSelectedTag(d->getHandle());
+ return true;
}
}
}
-
- if (id != -1)
- // midi device turned off or whatever
- return false;
- } else {
- return false;
}
- return true;
+ return false;
}
-void OptionsDialog::saveMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicDeviceSkipFunc skipfunc) {
+void OptionsDialog::saveMusicDeviceSetting(PopUpWidget *popup, Common::String setting) {
if (!popup || !_enableAudioSettings)
return;
const MusicPlugin::List p = MusicMan.getPlugins();
- uint32 id = 0;
bool found = false;
for (MusicPlugin::List::const_iterator m = p.begin(); m != p.end() && !found; ++m) {
MusicDevices i = (**m)->getDevices();
for (MusicDevices::iterator d = i.begin(); d != i.end(); ++d) {
- if (id == popup->getSelectedTag()) {
+ if (d->getHandle() == popup->getSelectedTag()) {
ConfMan.set(setting, d->getCompleteId(), _domain);
found = true;
break;
- } else if (skipfunc(d, _domain, m, _guioptions)) {
- ++id;
}
}
}
Modified: scummvm/trunk/gui/options.h
===================================================================
--- scummvm/trunk/gui/options.h 2010-07-04 18:07:34 UTC (rev 50650)
+++ scummvm/trunk/gui/options.h 2010-07-04 18:24:13 UTC (rev 50651)
@@ -79,9 +79,8 @@
void setVolumeSettingsState(bool enabled);
void setSubtitleSettingsState(bool enabled);
- typedef bool (MusicDeviceSkipFunc)(MusicDevices::iterator, Common::String, MusicPlugin::List::const_iterator&, uint32);
- bool loadMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicDeviceSkipFunc skipfunc, MusicType preferredType = MT_AUTO);
- void saveMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicDeviceSkipFunc skipfunc);
+ bool loadMusicDeviceSetting(PopUpWidget *popup, Common::String setting, MusicType preferredType = MT_AUTO);
+ void saveMusicDeviceSetting(PopUpWidget *popup, Common::String setting);
TabWidget *_tabWidget;
int _graphicsTabId;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list