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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sat Jan 5 23:35:31 CET 2008


Revision: 30265
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30265&view=rev
Author:   fingolfin
Date:     2008-01-05 14:35:30 -0800 (Sat, 05 Jan 2008)

Log Message:
-----------
Let the audio mixer delete the streamSou object

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-05 21:11:29 UTC (rev 30264)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-05 22:35:30 UTC (rev 30265)
@@ -357,13 +357,13 @@
 					assert(feedSize >= 0);
 				} while (feedSize != 0);
 			} else {
-				assert(track->streamSou);
 				if (_mixer->isReady()) {
 					// FIXME: Can't we replace track->mixerStreamRunning by
 					// _mixer->isSoundHandleActive(track->mixChanHandle) ?
 					if (!track->mixerStreamRunning) {
 						track->mixerStreamRunning = true;
-						_mixer->playInputStream(type, &track->mixChanHandle, track->streamSou, -1, vol, pan, false);
+						assert(track->streamSou);
+						_mixer->playInputStream(type, &track->mixChanHandle, track->streamSou, -1, vol, pan);
 					} else {
 						_mixer->setChannelVolume(track->mixChanHandle, vol);
 						_mixer->setChannelBalance(track->mixChanHandle, pan);

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-05 21:11:29 UTC (rev 30264)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_script.cpp	2008-01-05 22:35:30 UTC (rev 30265)
@@ -175,17 +175,12 @@
 		if (track->stream->endOfStream()) {
 			_mixer->stopHandle(track->mixChanHandle);
 			delete track->stream;
-			track->stream = NULL;
 			_sound->closeSound(track->soundDesc);
-			track->soundDesc = NULL;
-			track->used = false;
+			memset(track, 0, sizeof(Track));
 		}
 	} else {
-		assert(track->streamSou);
 		_mixer->stopHandle(track->mixChanHandle);
-		delete track->streamSou;
-		track->streamSou = NULL;
-		track->used = false;
+		memset(track, 0, sizeof(Track));
 	}
 }
 
@@ -400,22 +395,15 @@
 			// Stop the sound output, *now*. No need to use toBeRemoved etc.
 			// as we are protected by a mutex, and this method is never called
 			// from IMuseDigital::callback either.
+			_mixer->stopHandle(track->mixChanHandle);
 			if (!track->souStreamUsed) {
 				assert(track->stream);
-				_mixer->stopHandle(track->mixChanHandle);
 				delete track->stream;
 				_sound->closeSound(track->soundDesc);
-			} else if (track->streamSou) {
-				assert(track->streamSou);
-				_mixer->stopHandle(track->mixChanHandle);
-				delete track->streamSou;
 			}
 
 			// Mark the track as unused
-			track->soundDesc = NULL;
-			track->streamSou = NULL;
-			track->stream = NULL;
-			track->used = false;
+			memset(track, 0, sizeof(Track));
 		}
 	}
 }

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-05 21:11:29 UTC (rev 30264)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-05 22:35:30 UTC (rev 30265)
@@ -52,7 +52,7 @@
 		for (l = 0; l < MAX_DIGITAL_TRACKS; l++) {
 			Track *track = _track[l];
 			if (track->used && !track->toBeRemoved &&
-					(lowest_priority > track->soundPriority) && !track->streamSou) {
+					(lowest_priority > track->soundPriority) && !track->souStreamUsed) {
 				lowest_priority = track->soundPriority;
 				trackId = l;
 			}


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