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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sun Dec 30 17:32:30 CET 2007


Revision: 30081
          http://scummvm.svn.sourceforge.net/scummvm/?rev=30081&view=rev
Author:   fingolfin
Date:     2007-12-30 08:32:30 -0800 (Sun, 30 Dec 2007)

Log Message:
-----------
Fix for bug #1635361: COMI: Music fade-out broken for compressed audio

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

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse.h
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse.h	2007-12-30 13:17:13 UTC (rev 30080)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.h	2007-12-30 16:32:30 UTC (rev 30081)
@@ -137,7 +137,7 @@
 
 	int getSoundIdByName(const char *soundName);
 	void fadeOutMusic(int fadeDelay);
-	Track *cloneToFadeOutTrack(const Track *track, int fadeDelay);
+	Track *cloneToFadeOutTrack(Track *track, int fadeDelay);
 
 	void setFtMusicState(int stateId);
 	void setFtMusicSequence(int seqId);

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2007-12-30 13:17:13 UTC (rev 30080)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2007-12-30 16:32:30 UTC (rev 30081)
@@ -314,7 +314,7 @@
 	}
 }
 
-IMuseDigital::Track *IMuseDigital::cloneToFadeOutTrack(const Track *track, int fadeDelay) {
+IMuseDigital::Track *IMuseDigital::cloneToFadeOutTrack(Track *track, int fadeDelay) {
 	assert(track);
 	Track *fadeTrack = 0;
 
@@ -330,12 +330,11 @@
 	// Clone the settings of the given track
 	memcpy(fadeTrack, track, sizeof(Track));
 
-	// Clone the sound.
-	// According to aquadran, this is only called for bundle files and sound
-	// data in *.la1 from switchToNextRegion and fadeOutMusic func. Henc we
-	// know that track->soundDesc != NULL.
-	fadeTrack->soundDesc = _sound->cloneSound(track->soundDesc);
+	// Clone the sound. We use the original sound in the fadeTrack,
+	// and the cloned sound in the original track. This fixes bug #1635361.
 	assert(fadeTrack->soundDesc);
+	track->soundDesc = _sound->cloneSound(fadeTrack->soundDesc);
+	assert(track->soundDesc);
 
 	// Set the volume fading parameters to indicate a fade out
 	fadeTrack->volFadeDelay = fadeDelay;


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