[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