From 30d67ced36605d1d643c1d83936b5953bcc1afee Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Sat, 29 Aug 2020 02:14:00 +0200 Subject: [PATCH] AUDIO: Added flag to skip rewinding in LoopingAudioStream --- audio/audiostream.cpp | 4 ++-- audio/audiostream.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/audio/audiostream.cpp b/audio/audiostream.cpp index 88c41e8503b..a556f1266d1 100644 --- a/audio/audiostream.cpp +++ b/audio/audiostream.cpp @@ -91,11 +91,11 @@ SeekableAudioStream *SeekableAudioStream::openStreamFile(const Common::String &b #pragma mark --- LoopingAudioStream --- #pragma mark - -LoopingAudioStream::LoopingAudioStream(RewindableAudioStream *stream, uint loops, DisposeAfterUse::Flag disposeAfterUse) +LoopingAudioStream::LoopingAudioStream(RewindableAudioStream *stream, uint loops, DisposeAfterUse::Flag disposeAfterUse, bool rewind) : _parent(stream, disposeAfterUse), _loops(loops), _completeIterations(0) { assert(stream); - if (!stream->rewind()) { + if (rewind && !stream->rewind()) { // TODO: Properly indicate error _loops = _completeIterations = 1; } diff --git a/audio/audiostream.h b/audio/audiostream.h index a60d5a20864..7f9bbe05630 100644 --- a/audio/audiostream.h +++ b/audio/audiostream.h @@ -118,7 +118,7 @@ public: * @param loops How often to loop (0 = infinite) * @param disposeAfterUse Destroy the stream after the LoopingAudioStream has finished playback. */ - LoopingAudioStream(RewindableAudioStream *stream, uint loops, DisposeAfterUse::Flag disposeAfterUse = DisposeAfterUse::YES); + LoopingAudioStream(RewindableAudioStream *stream, uint loops, DisposeAfterUse::Flag disposeAfterUse = DisposeAfterUse::YES, bool rewind = true); int readBuffer(int16 *buffer, const int numSamples); bool endOfData() const;