diff options
author | Jamieson Christian | 2003-08-14 08:26:59 +0000 |
---|---|---|
committer | Jamieson Christian | 2003-08-14 08:26:59 +0000 |
commit | 3a39c653affe169958b3ba303e5826fe6cea774a (patch) | |
tree | b6e6ea2ec149cf84c3a21e68693711715dfd0f7d /scumm/imuse_player.cpp | |
parent | a0c71ef5e9047dcb2d7b67dabc35b9fc9479b33b (diff) | |
download | scummvm-rg350-3a39c653affe169958b3ba303e5826fe6cea774a.tar.gz scummvm-rg350-3a39c653affe169958b3ba303e5826fe6cea774a.tar.bz2 scummvm-rg350-3a39c653affe169958b3ba303e5826fe6cea774a.zip |
Added support for Roland MT-32 music tracks
in monkeyvga/ega. Tested in monkeyvga, but
not in monkeyega yet. There are still wrinkles
to work out, but the parser for the new format
is in and hooked up.
svn-id: r9684
Diffstat (limited to 'scumm/imuse_player.cpp')
-rw-r--r-- | scumm/imuse_player.cpp | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/scumm/imuse_player.cpp b/scumm/imuse_player.cpp index 68b4f0931f..2b7bca700e 100644 --- a/scumm/imuse_player.cpp +++ b/scumm/imuse_player.cpp @@ -38,6 +38,8 @@ // //////////////////////////////////////// +extern MidiParser *MidiParser_createRO(); + static uint read_word(byte *a) { return (a[0] << 8) + a[1]; } @@ -84,13 +86,13 @@ Player::~Player() { } bool Player::startSound(int sound, MidiDriver *midi) { - void *mdhd; + void *ptr; int i; // Not sure what the old code was doing, // but we'll go ahead and do a similar check. - mdhd = _se->findStartOfSound(sound); - if (!mdhd) { + ptr = _se->findStartOfSound(sound); + if (!ptr) { warning("Player::startSound(): Couldn't find start of sound %d!", sound); return false; } @@ -177,10 +179,17 @@ int Player::start_seq_sound(int sound, bool reset_vars) { if (_parser) delete _parser; - if (!memcmp(ptr, "FORM", 4)) + if (!memcmp (ptr, "RO", 2)) { + // Old style 'RO' resource + _parser = MidiParser_createRO(); + } else if (!memcmp(ptr, "FORM", 4)) { + // Humongous Games XMIDI resource _parser = MidiParser::createParser_XMIDI(); - else + } else { + // SCUMM SMF resource _parser = MidiParser::createParser_SMF(); + } + _parser->setMidiDriver(this); _parser->property(MidiParser::mpSmartJump, 1); _parser->loadMusic(ptr, 0); |