[Scummvm-cvs-logs] SF.net SVN: scummvm:[43066] scummvm/trunk/engines/tinsel/music.cpp

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Wed Aug 5 12:44:37 CEST 2009


Revision: 43066
          http://scummvm.svn.sourceforge.net/scummvm/?rev=43066&view=rev
Author:   dreammaster
Date:     2009-08-05 10:44:37 +0000 (Wed, 05 Aug 2009)

Log Message:
-----------
Bugfix for music not being stopped when music volume is set to zero

Modified Paths:
--------------
    scummvm/trunk/engines/tinsel/music.cpp

Modified: scummvm/trunk/engines/tinsel/music.cpp
===================================================================
--- scummvm/trunk/engines/tinsel/music.cpp	2009-08-05 02:42:23 UTC (rev 43065)
+++ scummvm/trunk/engines/tinsel/music.cpp	2009-08-05 10:44:37 UTC (rev 43066)
@@ -303,6 +303,8 @@
 	return volMusic;
 }
 
+static int priorVolMusic = 0;
+
 /**
  * Sets the volume of the MIDI music.
  * @param vol			New volume - 0..MAXMIDIVOL
@@ -310,23 +312,24 @@
 void SetMidiVolume(int vol)	{
 	assert(vol >= 0 && vol <= Audio::Mixer::kMaxChannelVolume);
 
-	if (vol == 0 && volMusic == 0)	{
+	if (vol == 0 && priorVolMusic == 0)	{
 		// Nothing to do
-	} else if (vol == 0 && volMusic != 0) {
+	} else if (vol == 0 && priorVolMusic != 0) {
 		// Stop current midi sequence
 		StopMidi();
-	} else if (vol != 0 && volMusic == 0) {
+		_vm->_midiMusic->setVolume(vol);
+	} else if (vol != 0 && priorVolMusic == 0) {
 		// Perhaps restart last midi sequence
 		if (currentLoop) {
 			PlayMidiSequence(currentMidi, true);
 			_vm->_midiMusic->setVolume(vol);
 		}
-	} else if (vol != 0 && volMusic != 0) {
+	} else if (vol != 0 && priorVolMusic != 0) {
 		// Alter current volume
 		_vm->_midiMusic->setVolume(vol);
 	}
 
-	volMusic = vol;
+	priorVolMusic = vol;
 }
 
 /**


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