[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