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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Jan 6 01:09:06 CET 2008


Revision: 30284
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30284&view=rev
Author:   fingolfin
Date:     2008-01-05 16:09:05 -0800 (Sat, 05 Jan 2008)

Log Message:
-----------
cleanup

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-06 00:00:53 UTC (rev 30283)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-06 00:09:05 UTC (rev 30284)
@@ -219,8 +219,8 @@
 		Track *track = _track[l];
 		if (track->used) {
 			// Remove tracks if necessary
-			if (track->toBeRemoved) {
-				flushTrack(track);
+			if (!_mixer->isSoundHandleActive(track->mixChanHandle)) {
+				memset(track, 0, sizeof(Track));
 				continue;
 			}
 
@@ -260,7 +260,7 @@
 
 				if (track->curRegion == -1) {
 					switchToNextRegion(track);
-					if (track->toBeRemoved)
+					if (track->toBeRemoved || !track->used)
 						continue;
 				}
 
@@ -328,7 +328,7 @@
 
 					if (_sound->isEndOfRegion(track->soundDesc, track->curRegion)) {
 						switchToNextRegion(track);
-						if (track->toBeRemoved)
+						if (track->toBeRemoved || !track->used)
 							break;
 					}
 					feedSize -= curFeedSize;

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-06 00:00:53 UTC (rev 30283)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-06 00:09:05 UTC (rev 30284)
@@ -164,6 +164,8 @@
 }
 
 void IMuseDigital::flushTrack(Track *track) {
+	track->toBeRemoved = true;
+
 	if (track->souStreamUsed) {
 		_mixer->stopHandle(track->mixChanHandle);
 	} else if (track->stream) {
@@ -181,12 +183,7 @@
 
 	if (!_mixer->isSoundHandleActive(track->mixChanHandle)) {
 		memset(track, 0, sizeof(Track));
-	
 	}
-
-	// Set toBeRemoved to true, even if we just stopped the sound completly
-	// (and thus set "used" to false);
-	track->toBeRemoved = true;
 }
 
 void IMuseDigital::flushTracks() {
@@ -194,8 +191,8 @@
 	debug(5, "flushTracks()");
 	for (int l = 0; l < MAX_DIGITAL_TRACKS + MAX_DIGITAL_FADETRACKS; l++) {
 		Track *track = _track[l];
-		if (track->used && track->toBeRemoved) {
-			flushTrack(track);
+		if (track->used && track->toBeRemoved && !_mixer->isSoundHandleActive(track->mixChanHandle)) {
+			memset(track, 0, sizeof(Track));
 		}
 	}
 }
@@ -251,7 +248,7 @@
 		Common::StackLock lock(_mutex, "IMuseDigital::getLipSync()");
 		for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 			Track *track = _track[l];
-			if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+			if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 				_sound->getSyncSizeAndPtrById(track->soundDesc, syncId, sync_size, &sync_ptr);
 				if ((sync_size != 0) && (sync_ptr != NULL)) {
 					sync_size /= 4;
@@ -279,7 +276,7 @@
 	Common::StackLock lock(_mutex, "IMuseDigital::getPosInMs()");
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			int32 pos = (5 * (track->dataOffset + track->regionOffset)) / (track->feedSize / 200);
 			return pos;
 		}
@@ -310,7 +307,7 @@
 	debug(5, "IMuseDigital::stopSound(%d)", soundId);
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			flushTrack();
 		}
 	}

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-06 00:00:53 UTC (rev 30283)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-06 00:09:05 UTC (rev 30284)
@@ -167,7 +167,7 @@
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			track->soundPriority = priority;
 		}
 	}
@@ -179,7 +179,7 @@
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			track->vol = volume * 1000;
 		}
 	}
@@ -190,7 +190,7 @@
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			track->curHookId = hookId;
 		}
 	}
@@ -230,7 +230,7 @@
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			track->pan = pan;
 		}
 	}
@@ -246,7 +246,7 @@
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			track->volGroupId = volGroupId;
 		}
 	}
@@ -258,7 +258,7 @@
 
 	for (int l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 		Track *track = _track[l];
-		if ((track->soundId == soundId) && track->used && !track->toBeRemoved) {
+		if (track->used && !track->toBeRemoved && (track->soundId == soundId)) {
 			track->volFadeDelay = delay60HzTicks;
 			track->volFadeDest = destVolume * 1000;
 			track->volFadeStep = (track->volFadeDest - track->vol) * 60 * (1000 / _callbackFps) / (1000 * delay60HzTicks);


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