diff options
author | Max Horn | 2011-03-23 15:23:26 +0100 |
---|---|---|
committer | Max Horn | 2011-03-23 15:25:47 +0100 |
commit | 29847ea42da3e597d3496972c80ce49bea76da20 (patch) | |
tree | 654596bc11032f28d9b2a776571fdb7623ceb5c6 /engines/m4 | |
parent | c70c8864f131bfe42437b05d03f77ab198f59247 (diff) | |
download | scummvm-rg350-29847ea42da3e597d3496972c80ce49bea76da20.tar.gz scummvm-rg350-29847ea42da3e597d3496972c80ce49bea76da20.tar.bz2 scummvm-rg350-29847ea42da3e597d3496972c80ce49bea76da20.zip |
AUDIO: Change several fake MidiDrivers to MidiDriver_BASE subclasses
Many engines follow the advice in audio/midiparser.h and create a
"pseudo-MidiDriver" subclass. But MidiParser really only needs a tiny
subset of the MidiDriver capabilities, namely those found in
MidiDriver_BASE. So we try to subclass from that whenever possible; this
allows us to remove many stub methods, and enables further future
simplifications.
Diffstat (limited to 'engines/m4')
-rw-r--r-- | engines/m4/midi.cpp | 7 | ||||
-rw-r--r-- | engines/m4/midi.h | 10 |
2 files changed, 3 insertions, 14 deletions
diff --git a/engines/m4/midi.cpp b/engines/m4/midi.cpp index 3a6475da89..36f7f29a2e 100644 --- a/engines/m4/midi.cpp +++ b/engines/m4/midi.cpp @@ -33,11 +33,12 @@ namespace M4 { MidiPlayer::MidiPlayer(MadsM4Engine *vm, MidiDriver *driver) : _vm(vm), _midiData(NULL), _driver(driver), _isPlaying(false), _passThrough(false), _isGM(false) { + assert(_driver); memset(_channel, 0, sizeof(_channel)); _masterVolume = 0; _parser = MidiParser::createParser_SMF(); _parser->setMidiDriver(this); - _parser->setTimerRate(getBaseTempo()); + _parser->setTimerRate(_driver->getBaseTempo()); open(); } @@ -83,10 +84,6 @@ int MidiPlayer::open() { return 0; } -bool MidiPlayer::isOpen() const { - return _driver && _driver->isOpen(); -} - void MidiPlayer::close() { stopMusic(); if (_driver) { diff --git a/engines/m4/midi.h b/engines/m4/midi.h index a631cec2cb..46dc5efd27 100644 --- a/engines/m4/midi.h +++ b/engines/m4/midi.h @@ -34,7 +34,7 @@ namespace M4 { -class MidiPlayer : public MidiDriver { +class MidiPlayer : public MidiDriver_BASE { public: MidiPlayer(MadsM4Engine *vm, MidiDriver *driver); ~MidiPlayer(); @@ -54,19 +54,11 @@ public: //MidiDriver interface implementation int open(); - bool isOpen() const; void close(); void send(uint32 b); void metaEvent(byte type, byte *data, uint16 length); - void setTimerCallback(void *timerParam, void (*timerProc)(void *)) { } - uint32 getBaseTempo() { return _driver ? _driver->getBaseTempo() : 0; } - - //Channel allocation functions - MidiChannel *allocateChannel() { return 0; } - MidiChannel *getPercussionChannel() { return 0; } - protected: static void onTimer(void *data); |