[Scummvm-cvs-logs] SF.net SVN: scummvm: [29554] scummvm/trunk/engines/lure/sound.cpp

dreammaster at users.sourceforge.net dreammaster at users.sourceforge.net
Sun Nov 18 09:11:29 CET 2007


Revision: 29554
          http://scummvm.svn.sourceforge.net/scummvm/?rev=29554&view=rev
Author:   dreammaster
Date:     2007-11-18 00:11:29 -0800 (Sun, 18 Nov 2007)

Log Message:
-----------
Further fixes to sound code (thanks to eriktorbjorn)

Modified Paths:
--------------
    scummvm/trunk/engines/lure/sound.cpp

Modified: scummvm/trunk/engines/lure/sound.cpp
===================================================================
--- scummvm/trunk/engines/lure/sound.cpp	2007-11-18 07:42:49 UTC (rev 29553)
+++ scummvm/trunk/engines/lure/sound.cpp	2007-11-18 08:11:29 UTC (rev 29554)
@@ -458,17 +458,20 @@
 	debugC(ERROR_DETAILED, kLureDebugSounds, "musicInterface_CheckPlaying soundNumber=%d", soundNumber);
 	musicInterface_TidySounds();
 	uint8 soundNum = soundNumber & 0x7f;
+	bool result = false;
 
 	g_system->lockMutex(_soundMutex);
 	ManagedList<MidiMusic *>::iterator i;
 	for (i = _playingSounds.begin(); i != _playingSounds.end(); ++i) {
 		MidiMusic *music = *i;
-		if (music->soundNumber() == soundNum) 
-			return true;
+		if (music->soundNumber() == soundNum) {
+			result = true;
+			break;
+		}
 	}
 	g_system->unlockMutex(_soundMutex);
 
-	return false;
+	return result;
 }
 
 // musicInterface_SetVolume
@@ -571,7 +574,14 @@
 	_channels = channels;
 	_soundNumber = soundNum;
 	_channelNumber = channelNum;
+	
 	_numChannels = 8;
+	while ((_numChannels > 0) && ((_channelNumber + _numChannels > NUM_CHANNELS_INNER) ||
+			(_channels[_channelNumber + _numChannels - 1].midiChannel == NULL)))
+		--_numChannels;
+	if (_numChannels == 0)
+		error("Unable to set any channels for MidiMusic object");
+
 	_volume = _channels[channelNum].volume;
 
 	_passThrough = false;


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