aboutsummaryrefslogtreecommitdiff
path: root/engines/access
diff options
context:
space:
mode:
authorMartin Kiewitz2015-07-01 01:37:12 +0200
committerMartin Kiewitz2015-07-01 01:37:12 +0200
commit44676d02f4fd653e9302ef2a28d3cfd895984d22 (patch)
treeec3b853f311e353b702e84e68fa651b09f96f981 /engines/access
parentb6cf04bb0e4e511ffa795ee1cb8a11c70169500d (diff)
downloadscummvm-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
Diffstat (limited to 'engines/access')
-rw-r--r--engines/access/sound.cpp29
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();