[Scummvm-cvs-logs] CVS: scummvm/sound mididrv.cpp,1.68,1.69 mididrv.h,1.50,1.51

Max Horn fingolfin at users.sourceforge.net
Mon Dec 26 03:19:05 CET 2005


Update of /cvsroot/scummvm/scummvm/sound
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv7821/sound

Modified Files:
	mididrv.cpp mididrv.h 
Log Message:
New CoreMIDI midi backend for OS X

Index: mididrv.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mididrv.cpp,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- mididrv.cpp	18 Oct 2005 01:30:23 -0000	1.68
+++ mididrv.cpp	26 Dec 2005 11:18:25 -0000	1.69
@@ -30,46 +30,48 @@
 
 /** Internal list of all available 'midi' drivers. */
 static const struct MidiDriverDescription midiDrivers[] = {
-	{"auto", "Default", MD_AUTO},
-	{"null", "No music", MD_NULL},
+	{"auto", "Default", MD_AUTO, MDT_NONE},
+	{"null", "No music", MD_NULL, MDT_NONE},
 
 #if defined(WIN32) && !defined(_WIN32_WCE) && !defined(__SYMBIAN32__)
-	{"windows", "Windows MIDI", MD_WINDOWS},
+	{"windows", "Windows MIDI", MD_WINDOWS, MDT_NATIVE},
 #endif
 
 #if defined(UNIX) && !defined(__BEOS__) && !defined(MACOSX)
-	{"seq", "SEQ", MD_SEQ},
+	{"seq", "SEQ", MD_SEQ, MDT_NONE},
 #endif
 
 #if defined(MACOSX)
-	{"qt", "QuickTime", MD_QTMUSIC},
-	{"core", "CoreAudio", MD_COREAUDIO},
+	{"qt", "QuickTime", MD_QTMUSIC, MDT_NATIVE},
+	{"core", "CoreAudio", MD_COREAUDIO, MDT_NATIVE},
+	{"coreaudio", "CoreAudio", MD_COREAUDIO, MDT_NATIVE},
+	{"coremidi", "CoreMIDI", MD_COREMIDI, MDT_NATIVE},
 #endif
 
 #if defined(__MORPHOS__)
-	{"etude", "Etude", MD_ETUDE},
+	{"etude", "Etude", MD_ETUDE, MDT_NONE},
 #endif
 
 #if defined(UNIX) && defined(USE_ALSA)
-	{"alsa", "ALSA", MD_ALSA},
+	{"alsa", "ALSA", MD_ALSA, MDT_NONE},
 #endif
 
-	{"adlib", "Adlib", MD_ADLIB},
-	{"towns", "FM Towns", MD_TOWNS},
-	{"pcspk", "PC Speaker", MD_PCSPK},
-	{"pcjr", "IBM PCjr", MD_PCJR},
+	{"adlib", "Adlib", MD_ADLIB, MDT_ADLIB},
+	{"towns", "FM Towns", MD_TOWNS, MDT_TOWNS},
+	{"pcspk", "PC Speaker", MD_PCSPK, MDT_PCSPK},
+	{"pcjr", "IBM PCjr", MD_PCJR, MDT_PCSPK},
 #ifdef USE_FLUIDSYNTH
-	{"fluidsynth", "FluidSynth", MD_FLUIDSYNTH},
+	{"fluidsynth", "FluidSynth", MD_FLUIDSYNTH, MDT_NONE},
 #endif
 #ifdef USE_MT32EMU
-	{"mt32", "MT-32", MD_MT32},
+	{"mt32", "MT-32", MD_MT32, MDT_NONE},
 #endif
 
 #if defined(PALMOS_MODE)
-	{"ypa1", "Yamaha Pa1", MD_YPA1},
-	{"zodiac", "Tapwave Zodiac", MD_ZODIAC},
+	{"ypa1", "Yamaha Pa1", MD_YPA1, MDT_NATIVE},
+	{"zodiac", "Tapwave Zodiac", MD_ZODIAC, MDT_NATIVE},
 #endif
-	{0, 0, 0}
+	{0, 0, MD_NULL, MDT_NONE}
 };
 
 const byte MidiDriver::_mt32ToGm[128] = {
@@ -210,6 +212,7 @@
 #endif
 #if defined(MACOSX)
 	case MD_COREAUDIO: return MidiDriver_CORE_create();
+	case MD_COREMIDI: return MidiDriver_CoreMIDI_create();
 #endif
 #if defined(UNIX) && defined(USE_ALSA)
 	case MD_ALSA:      return MidiDriver_ALSA_create();

Index: mididrv.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sound/mididrv.h,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -d -r1.50 -r1.51
--- mididrv.h	18 Oct 2005 01:30:23 -0000	1.50
+++ mididrv.h	26 Dec 2005 11:18:25 -0000	1.51
@@ -33,28 +33,45 @@
 namespace Common { class String; }
 
 /** MIDI Driver Types */
-enum {
-	MD_AUTO = 0,
-	MD_NULL = 1,
-	MD_WINDOWS = 2,
-	MD_TIMIDITY = 3,
-	MD_SEQ = 4,
-	MD_QTMUSIC = 5,
-	MD_ETUDE = 6,
-	MD_COREAUDIO = 7,
-	MD_MIDIEMU = 8,
-	MD_ALSA = 9,
-	MD_ADLIB = 10,
-	MD_PCSPK = 11,
-	MD_PCJR = 12,
-	MD_TOWNS = 13,
-	MD_YPA1 = 14, // PalmOS
-	MD_ZODIAC = 15, // PalmOS
-	MD_MT32 = 16,
-	MD_FLUIDSYNTH = 17
+enum MidiDriverType {
+	MD_AUTO,
+	MD_NULL,
+
+	// Windows
+	MD_WINDOWS,
+
+	// Linux
+	MD_ALSA,
+	MD_SEQ,
+
+	// Mac OS X
+	MD_QTMUSIC,
+	MD_COREAUDIO,
+	MD_COREMIDI,
+
+	// PalmOS
+	MD_YPA1,
+	MD_ZODIAC,
+
+	// MorphOS
+	MD_ETUDE,
+
+	// "Fake" MIDI devices
+	MD_ADLIB,
+	MD_PCSPK,
+	MD_PCJR,
+	MD_TOWNS,
+
+	// MIDI softsynths
+	MD_MT32,
+	MD_FLUIDSYNTH
 };
 
-enum MidiDriverType {
+/**
+ * A set of bitmasks which can be used to specify what kind of midi
+ * driver is prefered.
+ */
+enum MidiDriverFlags {
 	MDT_NONE   = 0,
 	MDT_PCSPK  = 1, // MD_PCSPK and MD_PCJR
 	MDT_ADLIB  = 2, // MD_ADLIB
@@ -71,7 +88,8 @@
 struct MidiDriverDescription {
 	const char *name;
 	const char *description;
-	int id;
+	MidiDriverType id;
+	MidiDriverFlags flags;
 };
 
 /** Abstract MIDI Driver Class */
@@ -199,6 +217,7 @@
 extern MidiDriver *MidiDriver_SEQ_create();
 extern MidiDriver *MidiDriver_QT_create();
 extern MidiDriver *MidiDriver_CORE_create();
+extern MidiDriver *MidiDriver_CoreMIDI_create();
 extern MidiDriver *MidiDriver_ETUDE_create();
 extern MidiDriver *MidiDriver_ALSA_create();
 extern MidiDriver *MidiDriver_YM2612_create(Audio::Mixer *mixer);





More information about the Scummvm-git-logs mailing list