aboutsummaryrefslogtreecommitdiff
path: root/engines/draci/music.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/draci/music.cpp')
-rw-r--r--engines/draci/music.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/engines/draci/music.cpp b/engines/draci/music.cpp
index 8186d36068..509bf90121 100644
--- a/engines/draci/music.cpp
+++ b/engines/draci/music.cpp
@@ -40,13 +40,8 @@ MusicPlayer::MusicPlayer(MidiDriver *driver, const char *pathMask) : _parser(0),
memset(_channel, 0, sizeof(_channel));
memset(_channelVolume, 255, sizeof(_channelVolume));
_masterVolume = 0;
- this->open();
_smfParser = MidiParser::createParser_SMF();
_midiMusicData = NULL;
-
- // TODO: Load cmf.ins with the instrument table. It seems that an
- // interface for such an operation is supported for AdLib. Maybe for
- // this card, setting instruments is necessary.
}
MusicPlayer::~MusicPlayer() {
@@ -89,6 +84,15 @@ int MusicPlayer::open() {
if (ret)
return ret;
+ if (_nativeMT32)
+ _driver->sendMT32Reset();
+ else
+ _driver->sendGMReset();
+
+ // TODO: Load cmf.ins with the instrument table. It seems that an
+ // interface for such an operation is supported for AdLib. Maybe for
+ // this card, setting instruments is necessary.
+
_driver->setTimerCallback(this, &onTimer);
return 0;
}