From 29847ea42da3e597d3496972c80ce49bea76da20 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Wed, 23 Mar 2011 15:23:26 +0100 Subject: 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. --- engines/made/music.cpp | 8 ++------ engines/made/music.h | 10 +--------- 2 files changed, 3 insertions(+), 15 deletions(-) (limited to 'engines/made') diff --git a/engines/made/music.cpp b/engines/made/music.cpp index 5ace99788b..acb37bc951 100644 --- a/engines/made/music.cpp +++ b/engines/made/music.cpp @@ -89,10 +89,6 @@ int MusicPlayer::open() { return 0; } -bool MusicPlayer::isOpen() const { - return _driver && _driver->isOpen(); -} - void MusicPlayer::close() { stop(); if (_driver) { @@ -169,7 +165,7 @@ void MusicPlayer::playXMIDI(GenericResource *midiResource, MusicFlags flags) { MidiParser *parser = _xmidiParser; parser->setTrack(0); parser->setMidiDriver(this); - parser->setTimerRate(getBaseTempo()); + parser->setTimerRate(_driver->getBaseTempo()); parser->property(MidiParser::mpCenterPitchWheelOnUnload, 1); parser->property(MidiParser::mpSendSustainOffOnNotesOff, 1); @@ -196,7 +192,7 @@ void MusicPlayer::playSMF(GenericResource *midiResource, MusicFlags flags) { MidiParser *parser = _smfParser; parser->setTrack(0); parser->setMidiDriver(this); - parser->setTimerRate(getBaseTempo()); + parser->setTimerRate(_driver->getBaseTempo()); parser->property(MidiParser::mpCenterPitchWheelOnUnload, 1); _parser = parser; diff --git a/engines/made/music.h b/engines/made/music.h index 024588ea4d..6bd4da470e 100644 --- a/engines/made/music.h +++ b/engines/made/music.h @@ -41,7 +41,7 @@ enum MusicFlags { MUSIC_LOOP = 1 }; -class MusicPlayer : public MidiDriver { +class MusicPlayer : public MidiDriver_BASE { public: MusicPlayer(MidiDriver *driver); ~MusicPlayer(); @@ -66,19 +66,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; } - MidiParser *_parser; Common::Mutex _mutex; -- cgit v1.2.3