[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