aboutsummaryrefslogtreecommitdiff
path: root/scumm/imuse_player.cpp
diff options
context:
space:
mode:
authorJamieson Christian2003-08-14 08:26:59 +0000
committerJamieson Christian2003-08-14 08:26:59 +0000
commit3a39c653affe169958b3ba303e5826fe6cea774a (patch)
treeb6e6ea2ec149cf84c3a21e68693711715dfd0f7d /scumm/imuse_player.cpp
parenta0c71ef5e9047dcb2d7b67dabc35b9fc9479b33b (diff)
downloadscummvm-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.cpp19
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);