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

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Sat Jan 5 23:57:36 CET 2008


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

Log Message:
-----------
Play SOU data instantly, not slightly delayed -> allows us to get rid of Track::streamSou & Track::mixerStreamRunning (have not yet removed the latter to avoid introducing a new savegame version)

Modified Paths:
--------------
    scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp
    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.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-05 22:45:35 UTC (rev 30267)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.cpp	2008-01-05 22:57:36 UTC (rev 30268)
@@ -39,7 +39,7 @@
 namespace Scumm {
 
 IMuseDigital::Track::Track()
-	: soundId(-1), used(false), stream(NULL), streamSou(NULL) {
+	: soundId(-1), used(false), stream(NULL) {
 }
 
 void IMuseDigital::timer_handler(void *refCon) {
@@ -129,7 +129,7 @@
 		MKLINE(Track, used, sleByte, VER(31)),
 		MKLINE(Track, toBeRemoved, sleByte, VER(31)),
 		MKLINE(Track, souStreamUsed, sleByte, VER(31)),
-		MKLINE(Track, mixerStreamRunning, sleByte, VER(31)),
+		MKLINE(Track, mixerStreamRunning, sleByte, VER(31)),	// FIXME: OBSOLETE, remove this!
 		MKLINE(Track, soundPriority, sleInt32, VER(31)),
 		MKLINE(Track, regionOffset, sleInt32, VER(31)),
 		MK_OBSOLETE(Track, trackOffset, sleInt32, VER(31), VER(31)),
@@ -336,16 +336,8 @@
 				} while (feedSize != 0);
 			} else {
 				if (_mixer->isReady()) {
-					// FIXME: Can't we replace track->mixerStreamRunning by
-					// _mixer->isSoundHandleActive(track->mixChanHandle) ?
-					if (!track->mixerStreamRunning) {
-						track->mixerStreamRunning = true;
-						assert(track->streamSou);
-						_mixer->playInputStream(track->getType(), &track->mixChanHandle, track->streamSou, -1, track->getVol(), track->getPan());
-					} else {
-						_mixer->setChannelVolume(track->mixChanHandle, track->getVol());
-						_mixer->setChannelBalance(track->mixChanHandle, track->getPan());
-					}
+					_mixer->setChannelVolume(track->mixChanHandle, track->getVol());
+					_mixer->setChannelBalance(track->mixChanHandle, track->getPan());
 				}
 			}
 		}

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse.h
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse.h	2008-01-05 22:45:35 UTC (rev 30267)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse.h	2008-01-05 22:57:36 UTC (rev 30268)
@@ -83,7 +83,7 @@
 		char soundName[15]; // sound name but also filename of sound in bundle data
 		bool used;			// flag mean that track is used
 		bool toBeRemoved;   // flag mean that track need to be free
-		bool mixerStreamRunning;	// flag mean sound mixer's stream is running
+		bool mixerStreamRunning;	// flag mean sound mixer's stream is running OBSOLETE
 		bool souStreamUsed;	// flag mean that track use stream from sou file
 		bool sndDataExtComp;// flag mean that sound data is compressed by scummvm tools
 		int32 soundPriority;// priority level of played sound (0-127)
@@ -100,7 +100,6 @@
 		ImuseDigiSndMgr::SoundDesc *soundDesc;	// sound handle used by iMuse sound manager
 		Audio::SoundHandle mixChanHandle;					// sound mixer's channel handle
 		Audio::AppendableAudioStream *stream;		// sound mixer's audio stream handle for *.la1 and *.bun
-		Audio::AudioStream *streamSou;				// sound mixer's audio stream handle for *.sou
 
 		Track();
 		

Modified: scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp
===================================================================
--- scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-05 22:45:35 UTC (rev 30267)
+++ scummvm/trunk/engines/scumm/imuse_digi/dimuse_track.cpp	2008-01-05 22:57:36 UTC (rev 30268)
@@ -110,8 +110,7 @@
 	track->souStreamUsed = (input != 0);
 
 	if (track->souStreamUsed) {
-		track->streamSou = input;
-		track->mixerStreamRunning = false;
+		_mixer->playInputStream(track->getType(), &track->mixChanHandle, input, -1, track->getVol(), track->getPan());
 	} else {
 		strcpy(track->soundName, soundName);
 		track->soundDesc = _sound->openSound(soundId, soundName, soundType, volGroupId, -1);
@@ -157,7 +156,6 @@
 
 		track->stream = Audio::makeAppendableAudioStream(freq, makeMixerFlags(track->mixerFlags));
 		_mixer->playInputStream(track->getType(), &track->mixChanHandle, track->stream, -1, track->getVol(), track->getPan(), false);
-		track->mixerStreamRunning = true;
 	}
 
 	track->used = true;
@@ -319,7 +317,6 @@
 	// Create an appendable output buffer
 	fadeTrack->stream = Audio::makeAppendableAudioStream(_sound->getFreq(fadeTrack->soundDesc), makeMixerFlags(fadeTrack->mixerFlags));
 	_mixer->playInputStream(track->getType(), &fadeTrack->mixChanHandle, fadeTrack->stream, -1, fadeTrack->getVol(), fadeTrack->getPan(), false);
-	fadeTrack->mixerStreamRunning = true;
 	fadeTrack->used = true;
 
 	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