diff options
Diffstat (limited to 'engines/draci/music.cpp')
-rw-r--r-- | engines/draci/music.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/engines/draci/music.cpp b/engines/draci/music.cpp index 8186d36068..95b7ae08da 100644 --- a/engines/draci/music.cpp +++ b/engines/draci/music.cpp @@ -38,15 +38,10 @@ namespace Draci { MusicPlayer::MusicPlayer(MidiDriver *driver, const char *pathMask) : _parser(0), _driver(driver), _pathMask(pathMask), _looping(false), _isPlaying(false), _passThrough(false), _isGM(false), _track(-1) { memset(_channel, 0, sizeof(_channel)); - memset(_channelVolume, 255, sizeof(_channelVolume)); + memset(_channelVolume, 127, 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; } |