From 9841ce6b9f3b00f387a6f149221db05815f64801 Mon Sep 17 00:00:00 2001 From: Filippos Karapetis Date: Fri, 21 Oct 2011 08:19:35 +0000 Subject: TOLTECS: Code cleanup --- engines/toltecs/music.cpp | 50 ++++++++--------------------------------------- 1 file changed, 8 insertions(+), 42 deletions(-) (limited to 'engines/toltecs/music.cpp') diff --git a/engines/toltecs/music.cpp b/engines/toltecs/music.cpp index 8c88c6ded9..84cb2f7148 100644 --- a/engines/toltecs/music.cpp +++ b/engines/toltecs/music.cpp @@ -28,7 +28,7 @@ namespace Toltecs { -MusicPlayer::MusicPlayer() : _isGM(false), _buffer(NULL) { +MusicPlayer::MusicPlayer(bool isGM) : _isGM(isGM), _buffer(NULL) { MidiPlayer::createDriver(); int ret = _driver->open(); @@ -50,22 +50,21 @@ void MusicPlayer::send(uint32 b) { Audio::MidiPlayer::send(b); } -void MusicPlayer::playXMIDI(const byte *data, uint32 size, MusicFlags flags) { +void MusicPlayer::playMIDI(const byte *data, uint32 size, MusicFlags flags) { Common::StackLock lock(_mutex); - if (_isPlaying) - return; - stopAndClear(); _buffer = new byte[size]; memcpy(_buffer, data, size); - // Load XMID resource data - - _isGM = true; + MidiParser *parser; + + if (!memcmp(data, "FORM", 4)) + parser = MidiParser::createParser_XMIDI(NULL); + else + parser = MidiParser::createParser_SMF(); - MidiParser *parser = MidiParser::createParser_XMIDI(NULL); if (parser->loadMusic(_buffer, size)) { parser->setTrack(0); parser->setMidiDriver(this); @@ -84,39 +83,6 @@ void MusicPlayer::playXMIDI(const byte *data, uint32 size, MusicFlags flags) { } } -void MusicPlayer::playSMF(const byte *data, uint32 size, MusicFlags flags) { - Common::StackLock lock(_mutex); - - if (_isPlaying) - return; - - stopAndClear(); - - _buffer = new byte[size]; - memcpy(_buffer, data, size); - - // Load MIDI resource data - - _isGM = true; - - MidiParser *parser = MidiParser::createParser_SMF(); - if (parser->loadMusic(_buffer, size)) { - parser->setTrack(0); - parser->setMidiDriver(this); - parser->setTimerRate(_driver->getBaseTempo()); - parser->property(MidiParser::mpCenterPitchWheelOnUnload, 1); - - _parser = parser; - - setVolume(127); - - _isLooping = flags & MUSIC_LOOP; - _isPlaying = true; - } else { - delete parser; - } -} - void MusicPlayer::pause() { setVolume(-1); _isPlaying = false; -- cgit v1.2.3