aboutsummaryrefslogtreecommitdiff
path: root/engines/toltecs/music.cpp
diff options
context:
space:
mode:
authorFilippos Karapetis2011-10-21 08:19:35 +0000
committerWillem Jan Palenstijn2011-11-20 22:43:12 +0100
commit9841ce6b9f3b00f387a6f149221db05815f64801 (patch)
tree9ee2c4bc847fd7b76cec670f3ade5699f06aee69 /engines/toltecs/music.cpp
parent360bd6edd316e0111bd61cd65accbc9c91ac8728 (diff)
downloadscummvm-rg350-9841ce6b9f3b00f387a6f149221db05815f64801.tar.gz
scummvm-rg350-9841ce6b9f3b00f387a6f149221db05815f64801.tar.bz2
scummvm-rg350-9841ce6b9f3b00f387a6f149221db05815f64801.zip
TOLTECS: Code cleanup
Diffstat (limited to 'engines/toltecs/music.cpp')
-rw-r--r--engines/toltecs/music.cpp50
1 files changed, 8 insertions, 42 deletions
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;