diff options
author | Max Horn | 2011-03-28 18:06:24 +0200 |
---|---|---|
committer | Max Horn | 2011-03-28 18:06:36 +0200 |
commit | 8c931fd1e8c0ced874f4cb5fe77197b39b940528 (patch) | |
tree | 798b30acf547ec6a277b5063978d99f34a1df2d0 /audio | |
parent | a33ee051d05ffc5e30e4fc4728714128028e89b1 (diff) | |
download | scummvm-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.cpp | 11 | ||||
-rw-r--r-- | audio/midiplayer.h | 3 |
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. |