[Scummvm-cvs-logs] SF.net SVN: scummvm: [30565] scummvm/trunk/engines/scumm/imuse_digi

aquadran at users.sourceforge.net aquadran at users.sourceforge.net
Sat Jan 19 17:06:20 CET 2008


Revision: 30565
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30565&view=rev
Author:   aquadran
Date:     2008-01-19 08:06:20 -0800 (Sat, 19 Jan 2008)

Log Message:
-----------
missed setting trackId while starSound,
added more debug output,
verification of jump code, it might have regressions

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp
    scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
    scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-19 13:26:53 UTC (rev 30564)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-19 16:06:20 UTC (rev 30565)
@@ -339,11 +339,10 @@
 
 void IMuseDigital::switchToNextRegion(Track *track) {
 	assert(track);
-	debug(5, "switchToNextRegion(track:%d)", track->trackId);
 
 	if (track->trackId >= MAX_DIGITAL_TRACKS) {
 		flushTrack(track);
-		debug(5, "exit (fadetrack can't go next region) switchToNextRegion(trackId:%d)", track->trackId);
+		debug(5, "SwToNeReg(trackId:%d) - fadetrack can't go next region, exiting SwToNeReg", track->trackId);
 		return;
 	}
 
@@ -352,20 +351,21 @@
 
 	if (++track->curRegion == num_regions) {
 		flushTrack(track);
-		debug(5, "exit (end of regions) switchToNextRegion(track:%d)", track->trackId);
+		debug(5, "SwToNeReg(trackId:%d) - end of region, exiting SwToNeReg", track->trackId);
 		return;
 	}
 
 	ImuseDigiSndMgr::SoundDesc *soundDesc = track->soundDesc;
 	if (_triggerUsed && track->soundDesc->numMarkers) {
 		if (_sound->checkForTriggerByRegionAndMarker(soundDesc, track->curRegion, _triggerParams.marker)) {
-			debug(5, "trigger %s reached, switchToNextRegion(track:%d)", _triggerParams.marker, track->trackId);
-			debug(5, "exit current region, switchToNextRegion(track:%d)", track->trackId);
+			debug(5, "SwToNeReg(trackId:%d) - trigger %s reached", track->trackId, _triggerParams.marker);
+			debug(5, "SwToNeReg(trackId:%d) - exit current region %d", track->trackId, track->curRegion);
+			debug(5, "SwToNeReg(trackId:%d) - call cloneToFadeOutTrack(delay:%d)", track->trackId, _triggerParams.fadeOutDelay);
 			Track *fadeTrack = cloneToFadeOutTrack(track, _triggerParams.fadeOutDelay);
 			if (fadeTrack) {
 				fadeTrack->dataOffset = _sound->getRegionOffset(fadeTrack->soundDesc, fadeTrack->curRegion);
 				fadeTrack->regionOffset = 0;
-				debug(5, "switchToNextRegion-sound(%d) select region %d, curHookId: %d", fadeTrack->soundId, fadeTrack->curRegion, fadeTrack->curHookId);
+				debug(5, "SwToNeReg(trackId:%d)-sound(%d) select region %d, curHookId: %d", fadeTrack->trackId, fadeTrack->soundId, fadeTrack->curRegion, fadeTrack->curHookId);
 				fadeTrack->curHookId = 0;
 			}
 			flushTrack(track);
@@ -376,46 +376,39 @@
 	}
 
 	int jumpId = _sound->getJumpIdByRegionAndHookId(soundDesc, track->curRegion, track->curHookId);
-	if (jumpId == -1)
-		jumpId = _sound->getJumpIdByRegionAndHookId(soundDesc, track->curRegion, 0);
 	if (jumpId != -1) {
 		int region = _sound->getRegionIdByJumpId(soundDesc, jumpId);
 		assert(region != -1);
 		int sampleHookId = _sound->getJumpHookId(soundDesc, jumpId);
 		assert(sampleHookId != -1);
 		int fadeDelay = (60 * _sound->getJumpFade(soundDesc, jumpId)) / 1000;
-		if (sampleHookId != 0) {
-			if (track->curHookId == sampleHookId) {
-				if (fadeDelay != 0 && previous_region != -1) {
-					Track *fadeTrack = cloneToFadeOutTrack(track, fadeDelay);
-					if (fadeTrack) {
-						fadeTrack->dataOffset = _sound->getRegionOffset(fadeTrack->soundDesc, fadeTrack->curRegion);
-						fadeTrack->regionOffset = 0;
-						debug(5, "switchToNextRegion-sound(%d) select region %d, curHookId: %d", fadeTrack->soundId, fadeTrack->curRegion, fadeTrack->curHookId);
-						fadeTrack->curHookId = 0;
-					}
-				}
-				track->curRegion = region;
-				debug(5, "switchToNextRegion-sound(%d) jump to region %d, curHookId: %d", track->soundId, track->curRegion, track->curHookId);
-				track->curHookId = 0;
-			}
-		} else {
+		debug(5, "SwToNeReg(trackId:%d) - JUMP found - sound:%d, track hookId:%d, data hookId:%d", track->trackId, track->soundId, track->curHookId, sampleHookId);
+		if (track->curHookId == sampleHookId) {
+			debug(5, "SwToNeReg(trackId:%d) - sound(%d) match hookId", track->trackId, track->soundId);
 			if (fadeDelay != 0 && previous_region != -1) {
+				debug(5, "SwToNeReg(trackId:%d) - call cloneToFadeOutTrack(delay:%d)", track->trackId, fadeDelay);
 				Track *fadeTrack = cloneToFadeOutTrack(track, fadeDelay);
 				if (fadeTrack) {
 					fadeTrack->dataOffset = _sound->getRegionOffset(fadeTrack->soundDesc, fadeTrack->curRegion);
 					fadeTrack->regionOffset = 0;
-					debug(5, "switchToNextRegion-sound(%d) select region %d, curHookId: %d", fadeTrack->soundId, fadeTrack->curRegion, fadeTrack->curHookId);
+					debug(5, "SwToNeReg(trackId:%d) - sound(%d) faded track, select region %d, curHookId: %d", fadeTrack->trackId, fadeTrack->soundId, fadeTrack->curRegion, fadeTrack->curHookId);
+					fadeTrack->curHookId = 0;
 				}
 			}
 			track->curRegion = region;
-			debug(5, "switchToNextRegion-sound(%d) jump to region %d, curHookId: %d", track->soundId, track->curRegion, track->curHookId);
+			debug(5, "SwToNeReg(trackId:%d) - sound(%d) jump to region %d, curHookId: %d", track->trackId, track->soundId, track->curRegion, track->curHookId);
+			track->curHookId = 0;
+		} else {
+			debug(5, "SwToNeReg(trackId:%d) - Normal switch region, sound(%d), hookId(%d)", track->trackId, track->soundId, track->curHookId);
 		}
+	} else {
+		debug(5, "SwToNeReg(trackId:%d) - Normal switch region, sound(%d), hookId(%d)", track->trackId, track->soundId, track->curHookId);
 	}
 
-	debug(5, "switchToNextRegion-sound(%d) select region %d, curHookId: %d", track->soundId, track->curRegion, track->curHookId);
+	debug(5, "SwToNeReg(trackId:%d) - sound(%d), select region %d", track->trackId, track->soundId, track->curRegion);
 	track->dataOffset = _sound->getRegionOffset(soundDesc, track->curRegion);
 	track->regionOffset = 0;
+	debug(5, "SwToNeReg(trackId:%d) - end of func", track->trackId);
 }
 
 } // End of namespace Scumm

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-19 13:26:53 UTC (rev 30564)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-19 16:06:20 UTC (rev 30565)
@@ -405,7 +405,7 @@
 
 void IMuseDigital::stopAllSounds() {
 	Common::StackLock lock(_mutex, "IMuseDigital::stopAllSounds()");
-	debug(0, "IMuseDigital::stopAllSounds");
+	debug(5, "IMuseDigital::stopAllSounds");
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) {
 		Track *track = _track[l];

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-19 13:26:53 UTC (rev 30564)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-19 16:06:20 UTC (rev 30565)
@@ -83,13 +83,14 @@
 
 void IMuseDigital::startSound(int soundId, const char *soundName, int soundType, int volGroupId, Audio::AudioStream *input, int hookId, int volume, int priority, Track *otherTrack) {
 	Common::StackLock lock(_mutex, "IMuseDigital::startSound()");
-	debug(5, "IMuseDigital::startSound(%d)", soundId);
+	debug(5, "IMuseDigital::startSound(%d) - begin func", soundId);
 
 	int l = allocSlot(priority);
 	if (l == -1) {
 		warning("IMuseDigital::startSound() Can't start sound - no free slots");
 		return;
 	}
+	debug(5, "IMuseDigital::startSound(%d)(trackId:%d)", soundId, l);
 
 	Track *track = _track[l];
 	
@@ -104,6 +105,7 @@
 	track->soundPriority = priority;
 	track->curRegion = -1;
 	track->soundType = soundType;
+	track->trackId = l;
 
 	int bits = 0, freq = 0, channels = 0;
 
@@ -329,10 +331,10 @@
 	assert(track);
 	Track *fadeTrack;
 
-	debug(0, "IMuseDigital::cloneToFadeOutTrack(%d, %d)", track->trackId, fadeDelay);
+	debug(5, "cloneToFadeOutTrack(%d, %d) - begin of func", track->trackId, fadeDelay);
 	
 	if (track->toBeRemoved) {
-		error("IMuseDigital::cloneToFadeOutTrack: Tried to clone a track to be removed");
+		error("cloneToFadeOutTrack: Tried to clone a track to be removed. exit func");
 		return NULL;
 	}
 
@@ -340,7 +342,7 @@
 	fadeTrack = _track[track->trackId + MAX_DIGITAL_TRACKS];
 
 	if (fadeTrack->used) {
-		warning("IMuseDigital::cloneToFadeOutTrack: No free fade track, force flush");
+		warning("cloneToFadeOutTrack: No free fade track, force flush");
 		flushTrack(fadeTrack);
 		_mixer->stopHandle(fadeTrack->mixChanHandle);
 	}
@@ -364,6 +366,8 @@
 	_mixer->playInputStream(track->getType(), &fadeTrack->mixChanHandle, fadeTrack->stream, -1, fadeTrack->getVol(), fadeTrack->getPan());
 	fadeTrack->used = true;
 
+	debug(5, "cloneToFadeOutTrack() - end of func, track %d, fadeTrackId %d", track->trackId, fadeTrack->trackId);
+
 	return fadeTrack;
 }
 


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