aboutsummaryrefslogtreecommitdiff
path: root/sky/control.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2005-03-18 11:05:15 +0000
committerEugene Sandulenko2005-03-18 11:05:15 +0000
commit749cf8a083460e18db96c24220f756307dd0b4d0 (patch)
tree3bf851d46da2675dde3114a1ad9afb2de966ba38 /sky/control.cpp
parent0bd4c7b8bcfa554310c5129bee45256b6410bc21 (diff)
downloadscummvm-rg350-749cf8a083460e18db96c24220f756307dd0b4d0.tar.gz
scummvm-rg350-749cf8a083460e18db96c24220f756307dd0b4d0.tar.bz2
scummvm-rg350-749cf8a083460e18db96c24220f756307dd0b4d0.zip
Apply patch #1162546 "BASS: Hanging notes fix / patch". Thanks __tom.
svn-id: r17177
Diffstat (limited to 'sky/control.cpp')
-rw-r--r--sky/control.cpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/sky/control.cpp b/sky/control.cpp
index 7041d81a00..3a9cb09ff2 100644
--- a/sky/control.cpp
+++ b/sky/control.cpp
@@ -1573,6 +1573,15 @@ void Control::showGameQuitMsg(bool useScreen) {
_skyScreen->halvePalette();
_skyScreen->showScreen(screenData);
free(textBuf1); free(textBuf2);
+
+ // __tom (FIXME): This is a poor method of turning
+ // off music. ~GmMusic, ~AdlibMusic, and ~MT32Music
+ // should do it themselves so the appropriate MIDI
+ // controller events (e.g. 123/'All Notes Off') can
+ // be sent. However, that requires a re-write of
+ // other code and for now this fixes hanging notes
+ // on MT-32 + other external GMIDI synths.
+ _skyMusic->stopMusic();
delay(1500);
ConfMan.flushToDisk();
_system->quit();