[Scummvm-cvs-logs] SF.net SVN: scummvm:[39702] scummvm/trunk
fingolfin at users.sourceforge.net
fingolfin at users.sourceforge.net
Thu Mar 26 14:52:43 CET 2009
Revision: 39702
http://scummvm.svn.sourceforge.net/scummvm/?rev=39702&view=rev
Author: fingolfin
Date: 2009-03-26 13:52:43 +0000 (Thu, 26 Mar 2009)
Log Message:
-----------
MidiDriver cleanup: findMusicDriver now returns a pointer (makes it possible to distinguish 'no match found' from other results); updated parseMusicDriver accordingly; some methods now return MidiDriverType instead of int
Modified Paths:
--------------
scummvm/trunk/base/commandLine.cpp
scummvm/trunk/gui/options.cpp
scummvm/trunk/sound/mididrv.cpp
scummvm/trunk/sound/mididrv.h
Modified: scummvm/trunk/base/commandLine.cpp
===================================================================
--- scummvm/trunk/base/commandLine.cpp 2009-03-26 13:11:30 UTC (rev 39701)
+++ scummvm/trunk/base/commandLine.cpp 2009-03-26 13:52:43 UTC (rev 39702)
@@ -346,7 +346,7 @@
END_OPTION
DO_OPTION('e', "music-driver")
- if (MidiDriver::parseMusicDriver(option) < 0)
+ if (MidiDriver::findMusicDriver(option) == 0)
usage("Unrecognized music driver '%s'", option);
END_OPTION
Modified: scummvm/trunk/gui/options.cpp
===================================================================
--- scummvm/trunk/gui/options.cpp 2009-03-26 13:11:30 UTC (rev 39701)
+++ scummvm/trunk/gui/options.cpp 2009-03-26 13:52:43 UTC (rev 39702)
@@ -177,17 +177,8 @@
// Audio options
if (_midiPopUp) {
// Music driver
- const MidiDriverDescription *md = MidiDriver::getAvailableMidiDrivers();
- int i = 0;
- const int midiDriver =
- ConfMan.hasKey("music_driver", _domain)
- ? MidiDriver::parseMusicDriver(ConfMan.get("music_driver", _domain))
- : MD_AUTO;
- while (md->name && md->id != midiDriver) {
- i++;
- md++;
- }
- _midiPopUp->setSelected(md->name ? i : 0);
+ MidiDriverType id = MidiDriver::parseMusicDriver(ConfMan.get("music_driver", _domain));
+ _midiPopUp->setSelectedTag(id);
}
if (_outputRatePopUp) {
Modified: scummvm/trunk/sound/mididrv.cpp
===================================================================
--- scummvm/trunk/sound/mididrv.cpp 2009-03-26 13:11:30 UTC (rev 39701)
+++ scummvm/trunk/sound/mididrv.cpp 2009-03-26 13:52:43 UTC (rev 39702)
@@ -124,9 +124,9 @@
return s_musicDrivers;
}
-const MidiDriverDescription &MidiDriver::findMusicDriver(const Common::String &str) {
+const MidiDriverDescription *MidiDriver::findMusicDriver(const Common::String &str) {
if (str.empty())
- return s_musicDrivers[0];
+ return 0;
const char *s = str.c_str();
int len = 0;
@@ -141,19 +141,15 @@
// We ignore any characters following an (optional) colon ':'
// contained in str.
if (!scumm_strnicmp(md->name, s, len)) {
- return *md;
+ return md;
}
md++;
}
- return s_musicDrivers[0];
+ return 0;
}
-int MidiDriver::parseMusicDriver(const Common::String &str) {
- return findMusicDriver(str).id;
-}
-
-static int getDefaultMIDIDriver() {
+static MidiDriverType getDefaultMIDIDriver() {
#if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
return MD_WINDOWS;
#elif defined(MACOSX)
@@ -171,15 +167,25 @@
#endif
}
-int MidiDriver::detectMusicDriver(int flags) {
+MidiDriverType MidiDriver::parseMusicDriver(const Common::String &str) {
+ const MidiDriverDescription *md = findMusicDriver(str);
+ if (md)
+ return md->id;
+ return MD_AUTO;
+}
+
+MidiDriverType MidiDriver::detectMusicDriver(int flags) {
+ MidiDriverType musicDriver;
+
// Query the selected music driver (defaults to MD_AUTO).
- const MidiDriverDescription &md = findMusicDriver(ConfMan.get("music_driver"));
- int musicDriver = md.id;
+ const MidiDriverDescription *md = findMusicDriver("music_driver");
// Check whether the selected music driver is compatible with the
// given flags.
- if (! (md.flags & flags))
+ if (!md || !(md->flags & flags))
musicDriver = MD_AUTO;
+ else
+ musicDriver = md->id;
// If the selected driver is MD_AUTO, we try to determine
// a suitable and "optimal" music driver.
Modified: scummvm/trunk/sound/mididrv.h
===================================================================
--- scummvm/trunk/sound/mididrv.h 2009-03-26 13:11:30 UTC (rev 39701)
+++ scummvm/trunk/sound/mididrv.h 2009-03-26 13:52:43 UTC (rev 39702)
@@ -126,10 +126,10 @@
class MidiDriver {
public:
/** Find the music driver matching the given driver name/description. */
- static const MidiDriverDescription &findMusicDriver(const Common::String &str);
+ static const MidiDriverDescription *findMusicDriver(const Common::String &str);
- /** Convert a string containing a music driver name into MIDI Driver type. */
- static int parseMusicDriver(const Common::String &str);
+ /** Get the id of the music driver matching the given driver name, or MD_AUTO if there is no match. */
+ static MidiDriverType parseMusicDriver(const Common::String &str);
/**
* Get a list of all available MidiDriver types.
@@ -139,7 +139,7 @@
static MidiDriver *createMidi(int midiDriver);
- static int detectMusicDriver(int flags);
+ static MidiDriverType detectMusicDriver(int flags);
public:
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