[Scummvm-cvs-logs] SF.net SVN: scummvm:[50310] scummvm/trunk/engines/sci/sound/music.cpp
m_kiewitz at users.sourceforge.net
m_kiewitz at users.sourceforge.net
Sat Jun 26 12:47:38 CEST 2010
Revision: 50310
http://scummvm.svn.sourceforge.net/scummvm/?rev=50310&view=rev
Author: m_kiewitz
Date: 2010-06-26 10:47:38 +0000 (Sat, 26 Jun 2010)
Log Message:
-----------
SCI: dont call midiparser->stop() if paused sound gets stopped
Modified Paths:
--------------
scummvm/trunk/engines/sci/sound/music.cpp
Modified: scummvm/trunk/engines/sci/sound/music.cpp
===================================================================
--- scummvm/trunk/engines/sci/sound/music.cpp 2010-06-26 09:34:14 UTC (rev 50309)
+++ scummvm/trunk/engines/sci/sound/music.cpp 2010-06-26 10:47:38 UTC (rev 50310)
@@ -365,6 +365,7 @@
}
void SciMusic::soundStop(MusicEntry *pSnd) {
+ SoundStatus previousStatus = pSnd->status;
pSnd->status = kSoundStopped;
if (_soundVersion <= SCI_VERSION_0_LATE)
pSnd->isQueued = false;
@@ -374,7 +375,9 @@
if (pSnd->pMidiParser) {
_mutex.lock();
pSnd->pMidiParser->mainThreadBegin();
- pSnd->pMidiParser->stop();
+ // We shouldn't call stop in case it's paused, otherwise we would send allNotesOff() again
+ if (previousStatus == kSoundPlaying)
+ pSnd->pMidiParser->stop();
freeChannels(pSnd);
pSnd->pMidiParser->mainThreadEnd();
_mutex.unlock();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list