diff options
author | Martin Kiewitz | 2015-07-01 01:37:12 +0200 |
---|---|---|
committer | Martin Kiewitz | 2015-07-01 01:37:12 +0200 |
commit | 44676d02f4fd653e9302ef2a28d3cfd895984d22 (patch) | |
tree | ec3b853f311e353b702e84e68fa651b09f96f981 | |
parent | b6cf04bb0e4e511ffa795ee1cb8a11c70169500d (diff) | |
download | scummvm-rg350-44676d02f4fd653e9302ef2a28d3cfd895984d22.tar.gz scummvm-rg350-44676d02f4fd653e9302ef2a28d3cfd895984d22.tar.bz2 scummvm-rg350-44676d02f4fd653e9302ef2a28d3cfd895984d22.zip |
ACCESS/AMAZON: music: no driver = ignore calls
ignore music calls when midi driver wasn't created
-rw-r--r-- | engines/access/sound.cpp | 29 |
1 files changed, 21 insertions, 8 deletions
diff --git a/engines/access/sound.cpp b/engines/access/sound.cpp index 89fd4fe66e..fb51a1f2d1 100644 --- a/engines/access/sound.cpp +++ b/engines/access/sound.cpp @@ -233,14 +233,16 @@ MusicManager::MusicManager(AccessEngine *vm) : _vm(vm) { MidiDriver::detectDevice(MDT_MIDI | MDT_ADLIB | MDT_PREFER_GM); #endif - int retValue = _driver->open(); - if (retValue == 0) { - if (_nativeMT32) - _driver->sendMT32Reset(); - else - _driver->sendGMReset(); - - _driver->setTimerCallback(this, &timerCallback); + if (_driver) { + int retValue = _driver->open(); + if (retValue == 0) { + if (_nativeMT32) + _driver->sendMT32Reset(); + else + _driver->sendGMReset(); + + _driver->setTimerCallback(this, &timerCallback); + } } } @@ -264,6 +266,9 @@ void MusicManager::send(uint32 b) { void MusicManager::midiPlay() { debugC(1, kDebugSound, "midiPlay"); + if (!_driver) + return; + if (_music->_size < 4) { error("midiPlay() wrong music resource size"); } @@ -301,6 +306,8 @@ bool MusicManager::checkMidiDone() { void MusicManager::midiRepeat() { debugC(1, kDebugSound, "midiRepeat"); + if (!_driver) + return; if (!_parser) return; @@ -313,6 +320,9 @@ void MusicManager::midiRepeat() { void MusicManager::stopSong() { debugC(1, kDebugSound, "stopSong"); + if (!_driver) + return; + stop(); } @@ -331,6 +341,9 @@ void MusicManager::loadMusic(FileIdent file) { void MusicManager::newMusic(int musicId, int mode) { debugC(1, kDebugSound, "newMusic(%d, %d)", musicId, mode); + if (!_driver) + return; + if (mode == 1) { stopSong(); freeMusic(); |