Apply patch #1162546 "BASS: Hanging notes fix / patch". Thanks __tom.

svn-id: r17177
This commit is contained in:
Eugene Sandulenko 2005-03-18 11:05:15 +00:00
parent 0bd4c7b8bc
commit 749cf8a083
2 changed files with 10 additions and 1 deletions

View File

@ -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();

View File

@ -53,6 +53,7 @@ public:
void loadSection(uint8 pSection);
void musicCommand(uint16 command);
void startMusic(uint16 param) { _onNextPoll.musicToProcess = param & 0xF; }; // 4
void stopMusic(); // 7
bool musicIsPlaying(void);
virtual void setVolume(uint8 volume) = 0;
uint8 giveVolume(void) { return (uint8)_musicVolume; };
@ -87,7 +88,6 @@ protected:
void setTempo(uint16 newTempo); // 2
void pollMusic(); // 3
void reinitFM(void) { _onNextPoll.doReInit = true; }; // 6
void stopMusic(); // 7
void setFMVolume(uint16 param); // 13
};