diff options
author | Max Horn | 2010-01-19 00:56:29 +0000 |
---|---|---|
committer | Max Horn | 2010-01-19 00:56:29 +0000 |
commit | 557bb394de6619dd1f360b72333fd2ec7b3defab (patch) | |
tree | b1166a12105d01c92edb528177d24aa5115232e5 /sound | |
parent | 69be7476212916b166ac16db41253cd367fb0dcc (diff) | |
download | scummvm-rg350-557bb394de6619dd1f360b72333fd2ec7b3defab.tar.gz scummvm-rg350-557bb394de6619dd1f360b72333fd2ec7b3defab.tar.bz2 scummvm-rg350-557bb394de6619dd1f360b72333fd2ec7b3defab.zip |
Get rid of Mixer::FLAG_AUTOFREE.
Also fix several recently introduced new/delete vs. malloc/free mismatches.
svn-id: r47369
Diffstat (limited to 'sound')
-rw-r--r-- | sound/aiff.cpp | 6 | ||||
-rw-r--r-- | sound/audiostream.cpp | 4 | ||||
-rw-r--r-- | sound/audiostream.h | 2 | ||||
-rw-r--r-- | sound/iff_sound.cpp | 4 | ||||
-rw-r--r-- | sound/mixer.cpp | 6 | ||||
-rw-r--r-- | sound/mixer.h | 7 | ||||
-rw-r--r-- | sound/mixer_intern.h | 4 | ||||
-rw-r--r-- | sound/raw.cpp | 13 | ||||
-rw-r--r-- | sound/raw.h | 23 | ||||
-rw-r--r-- | sound/shorten.cpp | 6 | ||||
-rw-r--r-- | sound/voc.cpp | 4 | ||||
-rw-r--r-- | sound/wave.cpp | 6 |
12 files changed, 46 insertions, 39 deletions
diff --git a/sound/aiff.cpp b/sound/aiff.cpp index b1f00c714e..c0832b7cea 100644 --- a/sound/aiff.cpp +++ b/sound/aiff.cpp @@ -172,10 +172,8 @@ SeekableAudioStream *makeAIFFStream(Common::SeekableReadStream &stream) { assert(data); stream.read(data, size); - // Since we allocated our own buffer for the data, we must set the autofree flag. - flags |= Audio::Mixer::FLAG_AUTOFREE; - - return makeRawMemoryStream(data, size, rate, flags); + // Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES. + return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); } } // End of namespace Audio diff --git a/sound/audiostream.cpp b/sound/audiostream.cpp index 2f7be667b7..d233f39edf 100644 --- a/sound/audiostream.cpp +++ b/sound/audiostream.cpp @@ -252,8 +252,8 @@ bool SubSeekableAudioStream::seek(const Timestamp &where) { #pragma mark - -void QueuingAudioStream::queueBuffer(byte *data, uint32 size, byte flags) { - AudioStream *stream = makeRawMemoryStream(data, size, getRate(), flags, 0, 0); +void QueuingAudioStream::queueBuffer(byte *data, uint32 size, DisposeAfterUse::Flag disposeAfterUse, byte flags) { + AudioStream *stream = makeRawMemoryStream(data, size, disposeAfterUse, getRate(), flags, 0, 0); queueAudioStream(stream, DisposeAfterUse::YES); } diff --git a/sound/audiostream.h b/sound/audiostream.h index 5ce026b3d7..61705bc04c 100644 --- a/sound/audiostream.h +++ b/sound/audiostream.h @@ -315,7 +315,7 @@ public: * the buffer will be delete[]'d (so make sure to allocate them * with new[], not with malloc). */ - void queueBuffer(byte *data, uint32 size, byte flags); + void queueBuffer(byte *data, uint32 size, DisposeAfterUse::Flag disposeAfterUse, byte flags); /** * Mark the stream as finished, that is, signal that no further data diff --git a/sound/iff_sound.cpp b/sound/iff_sound.cpp index a78fe97288..c476ff9676 100644 --- a/sound/iff_sound.cpp +++ b/sound/iff_sound.cpp @@ -99,9 +99,7 @@ AudioStream *make8SVXStream(Common::ReadStream &input, bool loop) { flags |= Audio::Mixer::FLAG_LOOP; } - flags |= Audio::Mixer::FLAG_AUTOFREE; - - return Audio::makeRawMemoryStream((byte *)loader._data, loader._dataSize, loader._header.samplesPerSec, flags, loopStart, loopEnd); + return Audio::makeRawMemoryStream((byte *)loader._data, loader._dataSize, DisposeAfterUse::YES, loader._header.samplesPerSec, flags, loopStart, loopEnd); } } diff --git a/sound/mixer.cpp b/sound/mixer.cpp index a3aaa19e8f..7a5be35fbb 100644 --- a/sound/mixer.cpp +++ b/sound/mixer.cpp @@ -221,12 +221,14 @@ void MixerImpl::playRaw( SoundType type, SoundHandle *handle, void *sound, - uint32 size, uint rate, byte flags, + uint32 size, + DisposeAfterUse::Flag autofreeBuffer, + uint rate, byte flags, int id, byte volume, int8 balance, uint32 loopStart, uint32 loopEnd) { // Create the input stream - AudioStream *input = makeRawMemoryStream((byte *)sound, size, rate, flags, loopStart, loopEnd); + AudioStream *input = makeRawMemoryStream((byte *)sound, size, autofreeBuffer, rate, flags, loopStart, loopEnd); // Play it playInputStream(type, handle, input, id, volume, balance, DisposeAfterUse::YES, false, ((flags & Mixer::FLAG_REVERSE_STEREO) != 0)); diff --git a/sound/mixer.h b/sound/mixer.h index 23ad29082d..0055e51d87 100644 --- a/sound/mixer.h +++ b/sound/mixer.h @@ -88,9 +88,6 @@ public: /** reverse the left and right stereo channel */ FLAG_REVERSE_STEREO = 1 << 4, - /** sound buffer is freed automagically at the end of playing */ - FLAG_AUTOFREE = 1 << 5, - /** loop the audio */ FLAG_LOOP = 1 << 6 }; @@ -137,7 +134,9 @@ public: virtual void playRaw( SoundType type, SoundHandle *handle, - void *sound, uint32 size, uint rate, byte flags, + void *sound, uint32 size, + DisposeAfterUse::Flag autofreeBuffer, + uint rate, byte flags, int id = -1, byte volume = kMaxChannelVolume, int8 balance = 0, uint32 loopStart = 0, uint32 loopEnd = 0) = 0; diff --git a/sound/mixer_intern.h b/sound/mixer_intern.h index b206396bf8..de78ec988f 100644 --- a/sound/mixer_intern.h +++ b/sound/mixer_intern.h @@ -77,7 +77,9 @@ public: virtual void playRaw( SoundType type, SoundHandle *handle, - void *sound, uint32 size, uint rate, byte flags, + void *sound, uint32 size, + DisposeAfterUse::Flag autofreeBuffer, + uint rate, byte flags, int id, byte volume, int8 balance, uint32 loopStart, uint32 loopEnd); diff --git a/sound/raw.cpp b/sound/raw.cpp index 84627d0ff0..20307acfbf 100644 --- a/sound/raw.cpp +++ b/sound/raw.cpp @@ -328,12 +328,13 @@ bool RawDiskStream<stereo, is16Bit, isUnsigned, isLE>::seek(const Timestamp &whe } else \ return new RawMemoryStream<STEREO, false, UNSIGNED, false>(rate, ptr, len, autoFree) -SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, int rate, byte flags) { +SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, + DisposeAfterUse::Flag autoFree, + int rate, byte flags) { const bool isStereo = (flags & Mixer::FLAG_STEREO) != 0; const bool is16Bit = (flags & Mixer::FLAG_16BITS) != 0; const bool isUnsigned = (flags & Mixer::FLAG_UNSIGNED) != 0; const bool isLE = (flags & Mixer::FLAG_LITTLE_ENDIAN) != 0; - const DisposeAfterUse::Flag autoFree = (flags & Mixer::FLAG_AUTOFREE) != 0 ? DisposeAfterUse::YES : DisposeAfterUse::NO; // Verify the buffer sizes are sane if (is16Bit && isStereo) { @@ -358,9 +359,11 @@ SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, int rate, } -AudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, int rate, - byte flags, uint loopStart, uint loopEnd) { - SeekableAudioStream *stream = makeRawMemoryStream(ptr, len, rate, flags); +AudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, + DisposeAfterUse::Flag autoFree, + int rate, byte flags, + uint loopStart, uint loopEnd) { + SeekableAudioStream *stream = makeRawMemoryStream(ptr, len, autoFree, rate, flags); const bool isStereo = (flags & Mixer::FLAG_STEREO) != 0; const bool is16Bit = (flags & Mixer::FLAG_16BITS) != 0; diff --git a/sound/raw.h b/sound/raw.h index c06eea35d2..e0b1a6c239 100644 --- a/sound/raw.h +++ b/sound/raw.h @@ -48,7 +48,9 @@ class SeekableAudioStream; * @see Mixer::RawFlags * @return The new SeekableAudioStream (or 0 on failure). */ -SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, int rate, byte flags); +SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, + DisposeAfterUse::Flag autofreeBuffer, + int rate, byte flags); /** * NOTE: @@ -61,8 +63,10 @@ SeekableAudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, int rate, * signed native endian). Optionally supports (infinite) looping of a portion * of the data. */ -AudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, int rate, - byte flags, uint loopStart, uint loopEnd); +AudioStream *makeRawMemoryStream(const byte *ptr, uint32 len, + DisposeAfterUse::Flag autofreeBuffer, + int rate, byte flags, + uint loopStart, uint loopEnd); /** @@ -87,8 +91,10 @@ struct RawDiskStreamAudioBlock { * @param disposeStream Whether the "stream" object should be destroyed after playback. * @return The new SeekableAudioStream (or 0 on failure). */ -SeekableAudioStream *makeRawDiskStream(Common::SeekableReadStream *stream, RawDiskStreamAudioBlock *block, - int numBlocks, int rate, byte flags, DisposeAfterUse::Flag disposeStream); +SeekableAudioStream *makeRawDiskStream(Common::SeekableReadStream *stream, + RawDiskStreamAudioBlock *block, int numBlocks, + int rate, byte flags, + DisposeAfterUse::Flag disposeStream); /** * NOTE: @@ -99,8 +105,11 @@ SeekableAudioStream *makeRawDiskStream(Common::SeekableReadStream *stream, RawDi * RawDiskStreamAudioBlock which defines the start position and length of * each block of uncompressed audio in the stream. */ -AudioStream *makeRawDiskStream(Common::SeekableReadStream *stream, RawDiskStreamAudioBlock *block, - int numBlocks, int rate, byte flags, DisposeAfterUse::Flag disposeStream, uint loopStart, uint loopEnd); +AudioStream *makeRawDiskStream(Common::SeekableReadStream *stream, + RawDiskStreamAudioBlock *block, int numBlocks, + int rate, byte flags, + DisposeAfterUse::Flag disposeStream, + uint loopStart, uint loopEnd); } // End of namespace Audio diff --git a/sound/shorten.cpp b/sound/shorten.cpp index fa62080c9c..44f4e66ed8 100644 --- a/sound/shorten.cpp +++ b/sound/shorten.cpp @@ -523,10 +523,8 @@ AudioStream *makeShortenStream(Common::SeekableReadStream &stream) { if (!data) return 0; - // Since we allocated our own buffer for the data, we must set the autofree flag. - flags |= Audio::Mixer::FLAG_AUTOFREE; - - return makeRawMemoryStream(data, size, rate, flags, 0, 0); + // Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES. + return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags, 0, 0); } } // End of namespace Audio diff --git a/sound/voc.cpp b/sound/voc.cpp index 7a9a5e8b1b..27f78f9eeb 100644 --- a/sound/voc.cpp +++ b/sound/voc.cpp @@ -353,7 +353,7 @@ AudioStream *makeVOCStream(Common::SeekableReadStream &stream, byte flags, uint if (!data) return 0; - return makeRawMemoryStream(data, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE, loopStart, loopEnd); + return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags, loopStart, loopEnd); #endif } @@ -368,7 +368,7 @@ SeekableAudioStream *makeVOCStream(Common::SeekableReadStream &stream, byte flag if (!data) return 0; - return makeRawMemoryStream(data, size, rate, flags | Audio::Mixer::FLAG_AUTOFREE); + return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); #endif } diff --git a/sound/wave.cpp b/sound/wave.cpp index d299128762..977b6953e6 100644 --- a/sound/wave.cpp +++ b/sound/wave.cpp @@ -188,10 +188,8 @@ RewindableAudioStream *makeWAVStream(Common::SeekableReadStream *stream, Dispose if (disposeAfterUse == DisposeAfterUse::YES) delete stream; - // Since we allocated our own buffer for the data, we must set the autofree flag. - flags |= Audio::Mixer::FLAG_AUTOFREE; - - return makeRawMemoryStream(data, size, rate, flags); + // Since we allocated our own buffer for the data, we must specify DisposeAfterUse::YES. + return makeRawMemoryStream(data, size, DisposeAfterUse::YES, rate, flags); } } // End of namespace Audio |