[Scummvm-cvs-logs] SF.net SVN: scummvm: [25926] scummvm/trunk

fingolfin at users.sourceforge.net fingolfin at users.sourceforge.net
Fri Mar 2 16:26:22 CET 2007


Revision: 25926
          http://scummvm.svn.sourceforge.net/scummvm/?rev=25926&view=rev
Author:   fingolfin
Date:     2007-03-02 07:26:22 -0800 (Fri, 02 Mar 2007)

Log Message:
-----------
Changed the order of the parameters of makeLinearInputStream to resemble Mixer::playRaw; also made makeLinearInputStream honor FLAG_LOOP (and for this, changed its loop related params slightly)

Modified Paths:
--------------
    scummvm/trunk/engines/kyra/sound_towns.cpp
    scummvm/trunk/engines/scumm/player_mod.cpp
    scummvm/trunk/sound/audiostream.cpp
    scummvm/trunk/sound/audiostream.h
    scummvm/trunk/sound/mixer.cpp
    scummvm/trunk/sound/voc.cpp
    scummvm/trunk/sound/wave.cpp

Modified: scummvm/trunk/engines/kyra/sound_towns.cpp
===================================================================
--- scummvm/trunk/engines/kyra/sound_towns.cpp	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/engines/kyra/sound_towns.cpp	2007-03-02 15:26:22 UTC (rev 25926)
@@ -241,9 +241,10 @@
 	playbackBufferSize -= 0x20;
 	setPitch(sfxPlaybackBuffer, playbackBufferSize, sfxHeader->pitch, pitch);
 	
-	_currentSFX = Audio::makeLinearInputStream(0x2b11,
+	_currentSFX = Audio::makeLinearInputStream(sfxPlaybackBuffer, playbackBufferSize, 
+		0x2b11,
 		Audio::Mixer::FLAG_UNSIGNED | Audio::Mixer::FLAG_LITTLE_ENDIAN | Audio::Mixer::FLAG_AUTOFREE,
-		sfxPlaybackBuffer, playbackBufferSize, 0, 0);
+		0, 0);
 	_mixer->playInputStream(Audio::Mixer::kSFXSoundType, &_sfxHandle, _currentSFX);
 }
 

Modified: scummvm/trunk/engines/scumm/player_mod.cpp
===================================================================
--- scummvm/trunk/engines/scumm/player_mod.cpp	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/engines/scumm/player_mod.cpp	2007-03-02 15:26:22 UTC (rev 25926)
@@ -91,7 +91,7 @@
 	_channels[i].vol = vol;
 	_channels[i].pan = pan;
 	_channels[i].freq = rate;
-	_channels[i].input = Audio::makeLinearInputStream(rate, Audio::Mixer::FLAG_AUTOFREE | (loopStart != loopEnd ? Audio::Mixer::FLAG_LOOP : 0), (const byte*)data, size, loopStart, loopEnd - loopStart);
+	_channels[i].input = Audio::makeLinearInputStream((const byte*)data, size, rate, Audio::Mixer::FLAG_AUTOFREE | (loopStart != loopEnd ? Audio::Mixer::FLAG_LOOP : 0), loopStart, loopEnd);
 	_channels[i].converter = Audio::makeRateConverter(rate, _mixer->getOutputRate(), false, false);
 }
 

Modified: scummvm/trunk/sound/audiostream.cpp
===================================================================
--- scummvm/trunk/sound/audiostream.cpp	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/sound/audiostream.cpp	2007-03-02 15:26:22 UTC (rev 25926)
@@ -200,13 +200,24 @@
 		} else \
 			return new LinearMemoryStream<STEREO, false, UNSIGNED, false>(rate, ptr, len, loopOffset, loopLen, autoFree)
 
-AudioStream *makeLinearInputStream(int rate, byte flags, const byte *ptr, uint32 len, uint loopOffset, uint loopLen) {
+AudioStream *makeLinearInputStream(const byte *ptr, uint32 len, int rate, byte flags, uint loopStart, uint loopEnd) {
 	const bool isStereo   = (flags & Audio::Mixer::FLAG_STEREO) != 0;
 	const bool is16Bit    = (flags & Audio::Mixer::FLAG_16BITS) != 0;
 	const bool isUnsigned = (flags & Audio::Mixer::FLAG_UNSIGNED) != 0;
 	const bool isLE       = (flags & Audio::Mixer::FLAG_LITTLE_ENDIAN) != 0;
 	const bool autoFree   = (flags & Audio::Mixer::FLAG_AUTOFREE) != 0;
 
+	uint loopOffset = 0, loopLen = 0;
+	if (flags & Audio::Mixer::FLAG_LOOP) {
+		if (loopEnd == 0)
+			loopEnd = len;
+		assert(loopStart <= loopEnd);
+		assert(loopEnd <= len);
+			
+		loopOffset = loopStart;
+		loopLen = loopEnd - loopStart;
+	}
+
 	if (isStereo) {
 		if (isUnsigned) {
 			MAKE_LINEAR(true, true);

Modified: scummvm/trunk/sound/audiostream.h
===================================================================
--- scummvm/trunk/sound/audiostream.h	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/sound/audiostream.h	2007-03-02 15:26:22 UTC (rev 25926)
@@ -97,7 +97,7 @@
  * it to the sample format used by the mixer (i.e. 16 bit signed native endian).
  * Optionally supports (infinite) looping of a portion of the data.
  */
-AudioStream *makeLinearInputStream(int rate, byte flags, const byte *ptr, uint32 len, uint loopOffset, uint loopLen);
+AudioStream *makeLinearInputStream(const byte *ptr, uint32 len, int rate, byte flags, uint loopStart, uint loopEnd);
 
 /**
  * An audio stream to which additional data can be appended on-the-fly.

Modified: scummvm/trunk/sound/mixer.cpp
===================================================================
--- scummvm/trunk/sound/mixer.cpp	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/sound/mixer.cpp	2007-03-02 15:26:22 UTC (rev 25926)
@@ -157,17 +157,7 @@
 			uint32 loopStart, uint32 loopEnd) {
 
 	// Create the input stream
-	AudioStream *input;
-	if (flags & Mixer::FLAG_LOOP) {
-		if (loopEnd == 0) {
-			input = makeLinearInputStream(rate, flags, (byte *)sound, size, 0, size);
-		} else {
-			assert(loopStart < loopEnd && loopEnd <= size);
-			input = makeLinearInputStream(rate, flags, (byte *)sound, size, loopStart, loopEnd - loopStart);
-		}
-	} else {
-		input = makeLinearInputStream(rate, flags, (byte *)sound, size, 0, 0);
-	}
+	AudioStream *input = makeLinearInputStream((byte *)sound, size, rate, flags, loopStart, loopEnd);
 	
 	// Play it
 	playInputStream(type, handle, input, id, volume, balance, true, false, (flags & Mixer::FLAG_REVERSE_STEREO));

Modified: scummvm/trunk/sound/voc.cpp
===================================================================
--- scummvm/trunk/sound/voc.cpp	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/sound/voc.cpp	2007-03-02 15:26:22 UTC (rev 25926)
@@ -154,7 +154,7 @@
 	if (!data)
 		return 0;
 
-	return makeLinearInputStream(rate, Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_UNSIGNED, data, size, 0, 0);
+	return makeLinearInputStream(data, size, rate, Audio::Mixer::FLAG_AUTOFREE | Audio::Mixer::FLAG_UNSIGNED, 0, 0);
 }
 
 

Modified: scummvm/trunk/sound/wave.cpp
===================================================================
--- scummvm/trunk/sound/wave.cpp	2007-03-02 15:22:38 UTC (rev 25925)
+++ scummvm/trunk/sound/wave.cpp	2007-03-02 15:26:22 UTC (rev 25926)
@@ -192,7 +192,7 @@
 	// Since we allocated our own buffer for the data, we must set the autofree flag.
 	flags |= Audio::Mixer::FLAG_AUTOFREE;
 
-	return makeLinearInputStream(rate, flags, data, size, 0, 0);
+	return makeLinearInputStream(data, size, rate, flags, 0, 0);
 }
 
 } // End of namespace Audio


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