[Scummvm-cvs-logs] scummvm master -> 8c931fd1e8c0ced874f4cb5fe77197b39b940528

fingolfin max at quendi.de
Mon Mar 28 18:28:22 CEST 2011


This automated email contains information about 1 new commit which have been
pushed to the 'scummvm' repo located at https://github.com/scummvm/scummvm .

Summary:
8c931fd1e8 AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it


Commit: 8c931fd1e8c0ced874f4cb5fe77197b39b940528
    https://github.com/scummvm/scummvm/commit/8c931fd1e8c0ced874f4cb5fe77197b39b940528
Author: Max Horn (max at quendi.de)
Date: 2011-03-28T09:06:36-07:00

Commit Message:
AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it

Changed paths:
    audio/midiplayer.cpp
    audio/midiplayer.h
    engines/agi/sound_midi.cpp
    engines/draci/music.cpp
    engines/m4/midi.cpp
    engines/made/music.cpp
    engines/saga/music.cpp
    engines/saga/music.h
    engines/sky/music/gmmusic.cpp
    engines/tinsel/music.cpp



diff --git a/audio/midiplayer.cpp b/audio/midiplayer.cpp
index 613ad2e..f4a13a0 100644
--- a/audio/midiplayer.cpp
+++ b/audio/midiplayer.cpp
@@ -61,6 +61,17 @@ MidiPlayer::~MidiPlayer() {
 	}
 }
 
+void MidiPlayer::createDriver(int flags) {
+	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(flags);
+	_nativeMT32 = ((MidiDriver::getMusicType(dev) == MT_MT32) || ConfMan.getBool("native_mt32"));
+
+	_driver = MidiDriver::createMidi(dev);
+	assert(_driver);
+	if (_nativeMT32)
+		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+}
+
+
 void MidiPlayer::setVolume(int volume) {
 	volume = CLIP(volume, 0, 255);
 	if (_masterVolume == volume)
diff --git a/audio/midiplayer.h b/audio/midiplayer.h
index fe96e0d..0cf373d 100644
--- a/audio/midiplayer.h
+++ b/audio/midiplayer.h
@@ -142,6 +142,9 @@ protected:
 
 	static void timerCallback(void *data);
 
+	void createDriver(int flags = MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
+
+protected:
 	enum {
 		/**
 		 * The number of MIDI channels supported.
diff --git a/engines/agi/sound_midi.cpp b/engines/agi/sound_midi.cpp
index ff23a70..9867157 100644
--- a/engines/agi/sound_midi.cpp
+++ b/engines/agi/sound_midi.cpp
@@ -72,16 +72,7 @@ MIDISound::MIDISound(uint8 *data, uint32 len, int resnum, SoundMgr &manager) : A
 }
 
 SoundGenMIDI::SoundGenMIDI(AgiEngine *vm, Audio::Mixer *pMixer) : SoundGen(vm, pMixer), _isGM(false) {
-	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB);
-	_driver = MidiDriver::createMidi(dev);
-	assert(_driver);
-
-	if (ConfMan.getBool("native_mt32") || MidiDriver::getMusicType(dev) == MT_MT32) {
-		_nativeMT32 = true;
-		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
-	} else {
-		_nativeMT32 = false;
-	}
+	MidiPlayer::createDriver(MDT_MIDI | MDT_ADLIB);
 
 	int ret = _driver->open();
 	if (ret == 0) {
diff --git a/engines/draci/music.cpp b/engines/draci/music.cpp
index 242e58e..750410b 100644
--- a/engines/draci/music.cpp
+++ b/engines/draci/music.cpp
@@ -38,14 +38,7 @@ namespace Draci {
 
 MusicPlayer::MusicPlayer(const char *pathMask) : _pathMask(pathMask), _isGM(false), _track(-1) {
 
-	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
-	_nativeMT32 = ((MidiDriver::getMusicType(dev) == MT_MT32) || ConfMan.getBool("native_mt32"));
-	//bool adlib = (MidiDriver::getMusicType(dev) == MT_ADLIB);
-
-	_driver = MidiDriver::createMidi(dev);
-	assert(_driver);
-	if (_nativeMT32)
-		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+	MidiPlayer::createDriver();
 
 	int ret = _driver->open();
 	if (ret == 0) {
diff --git a/engines/m4/midi.cpp b/engines/m4/midi.cpp
index d58b92b..e49dbfa 100644
--- a/engines/m4/midi.cpp
+++ b/engines/m4/midi.cpp
@@ -36,13 +36,7 @@ namespace M4 {
 
 MidiPlayer::MidiPlayer(MadsM4Engine *vm) : _vm(vm), _isGM(false) {
 
-	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
-	_nativeMT32 = ((MidiDriver::getMusicType(dev) == MT_MT32) || ConfMan.getBool("native_mt32"));
-
-	_driver = MidiDriver::createMidi(dev);
-	assert(_driver);
-	if (_nativeMT32)
-		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+	MidiPlayer::createDriver();
 
 	int ret = _driver->open();
 	if (ret == 0) {
diff --git a/engines/made/music.cpp b/engines/made/music.cpp
index c8b13ba..2e06871 100644
--- a/engines/made/music.cpp
+++ b/engines/made/music.cpp
@@ -38,14 +38,7 @@
 namespace Made {
 
 MusicPlayer::MusicPlayer() : _isGM(false) {
-	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
-	_nativeMT32 = ((MidiDriver::getMusicType(dev) == MT_MT32) || ConfMan.getBool("native_mt32"));
-	//bool adlib = (MidiDriver::getMusicType(dev) == MT_ADLIB);
-
-	_driver = MidiDriver::createMidi(dev);
-	assert(_driver);
-	if (_nativeMT32)
-		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+	MidiPlayer::createDriver();
 
 	int ret = _driver->open();
 	if (ret == 0) {
diff --git a/engines/saga/music.cpp b/engines/saga/music.cpp
index 90e3529..eb0a911 100644
--- a/engines/saga/music.cpp
+++ b/engines/saga/music.cpp
@@ -45,14 +45,10 @@ namespace Saga {
 
 MusicDriver::MusicDriver() : _isGM(false) {
 
-	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
-	_nativeMT32 = ((MidiDriver::getMusicType(dev) == MT_MT32) || ConfMan.getBool("native_mt32"));
+	MidiPlayer::createDriver();
 
-	_driver = MidiDriver::createMidi(dev);
-	assert(_driver);
+	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
 	_driverType = MidiDriver::getMusicType(dev);
-	if (_nativeMT32)
-		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
 
 	int retValue = _driver->open();
 	if (retValue == 0) {
diff --git a/engines/saga/music.h b/engines/saga/music.h
index 29b6e8f..465d61e 100644
--- a/engines/saga/music.h
+++ b/engines/saga/music.h
@@ -52,7 +52,7 @@ public:
 	virtual void pause();
 	virtual void resume();
 
-	bool isAdlib() { return _driverType == MT_ADLIB; }
+	bool isAdlib() const { return _driverType == MT_ADLIB; }
 
 	// FIXME
 	bool isPlaying() const { return _parser && _parser->isPlaying(); }
diff --git a/engines/sky/music/gmmusic.cpp b/engines/sky/music/gmmusic.cpp
index 22964f3..8818c5b 100644
--- a/engines/sky/music/gmmusic.cpp
+++ b/engines/sky/music/gmmusic.cpp
@@ -53,8 +53,8 @@ GmMusic::~GmMusic() {
 		stopMusic();
 	// Send All Sound Off and All Notes Off (for external synths)
 	for (int i = 0; i < 16; i++) {
-		_midiDrv->send ((120 << 8) | 0xB0 | i);
-		_midiDrv->send ((123 << 8) | 0xB0 | i);
+		_midiDrv->send((120 << 8) | 0xB0 | i);
+		_midiDrv->send((123 << 8) | 0xB0 | i);
 	}
 	_midiDrv->close();
 	delete _midiDrv;
diff --git a/engines/tinsel/music.cpp b/engines/tinsel/music.cpp
index 3b9833b..ea5d88c 100644
--- a/engines/tinsel/music.cpp
+++ b/engines/tinsel/music.cpp
@@ -387,14 +387,7 @@ void DeleteMidiBuffer() {
 }
 
 MidiMusicPlayer::MidiMusicPlayer() {
-	MidiDriver::DeviceHandle dev = MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM);
-	_nativeMT32 = ((MidiDriver::getMusicType(dev) == MT_MT32) || ConfMan.getBool("native_mt32"));
-	//bool adlib = (MidiDriver::getMusicType(dev) == MT_ADLIB);
-
-	_driver = MidiDriver::createMidi(dev);
-	assert(_driver);
-	if (_nativeMT32)
-		_driver->property(MidiDriver::PROP_CHANNEL_MASK, 0x03FE);
+	MidiPlayer::createDriver();
 
 	int ret = _driver->open();
 	if (ret == 0) {






More information about the Scummvm-git-logs mailing list