aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorMax Horn2011-03-28 18:06:24 +0200
committerMax Horn2011-03-28 18:06:36 +0200
commit8c931fd1e8c0ced874f4cb5fe77197b39b940528 (patch)
tree798b30acf547ec6a277b5063978d99f34a1df2d0 /audio
parenta33ee051d05ffc5e30e4fc4728714128028e89b1 (diff)
downloadscummvm-rg350-8c931fd1e8c0ced874f4cb5fe77197b39b940528.tar.gz
scummvm-rg350-8c931fd1e8c0ced874f4cb5fe77197b39b940528.tar.bz2
scummvm-rg350-8c931fd1e8c0ced874f4cb5fe77197b39b940528.zip
AUDIO: Add Audio::MidiPlayer::createDriver(), let some engines use it
Diffstat (limited to 'audio')
-rw-r--r--audio/midiplayer.cpp11
-rw-r--r--audio/midiplayer.h3
2 files changed, 14 insertions, 0 deletions
diff --git a/audio/midiplayer.cpp b/audio/midiplayer.cpp
index 613ad2eddd..f4a13a0438 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 fe96e0d5e2..0cf373d646 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.