[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