[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