[Scummvm-cvs-logs] CVS: scummvm/scumm/imuse_digi dimuse.h,1.46,1.47 dimuse_track.cpp,1.10,1.11

Pawel Kolodziejski aquadran at users.sourceforge.net
Mon Apr 26 12:31:07 CEST 2004


Update of /cvsroot/scummvm/scummvm/scumm/imuse_digi
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25102

Modified Files:
	dimuse.h dimuse_track.cpp 
Log Message:
fixed logic code bug. it should not try start sound if not free slot

Index: dimuse.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse.h,v
retrieving revision 1.46
retrieving revision 1.47
diff -u -d -r1.46 -r1.47
--- dimuse.h	26 Apr 2004 07:47:12 -0000	1.46
+++ dimuse.h	26 Apr 2004 19:30:11 -0000	1.47
@@ -97,7 +97,7 @@
 	static void timer_handler(void *refConf);
 	void callback();
 	void switchToNextRegion(int track);
-	void allocSlot(int priority);
+	bool allocSlot(int priority);
 	void startSound(int soundId, const char *soundName, int soundType, int volGroupId, AudioStream *input, int hookId, int volume, int priority);
 	void selectVolumeGroup(int soundId, int volGroupId);
 

Index: dimuse_track.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/scumm/imuse_digi/dimuse_track.cpp,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- dimuse_track.cpp	26 Apr 2004 08:58:03 -0000	1.10
+++ dimuse_track.cpp	26 Apr 2004 19:30:12 -0000	1.11
@@ -32,7 +32,7 @@
 
 namespace Scumm {
 
-void IMuseDigital::allocSlot(int priority) {
+bool IMuseDigital::allocSlot(int priority) {
 	int l;
 	int lower_priority = 127;
 	bool found_free = false;
@@ -68,9 +68,11 @@
 			warning("IMuseDigital::startSound(): Removed sound %d from track %d", _track[track_id]->soundId, track_id);
 		} else {
 			warning("IMuseDigital::startSound(): Priority sound too low");
-			return;
+			return false;
 		}
 	}
+
+	return true;
 }
 
 void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, int volGroupId, AudioStream *input, int hookId, int volume, int priority) {
@@ -78,7 +80,10 @@
 	debug(5, "IMuseDigital::startSound(%d)", soundId);
 	int l;
 
-	allocSlot(priority);
+	if (!allocSlot(priority)) {
+		warning("IMuseDigital::startSound() Can't start sound - no free slots");
+		return;
+	}
 
 	for (l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		if (!_track[l]->used && !_track[l]->handle.isActive()) {





More information about the Scummvm-git-logs mailing list