AUDIO: Added flag to skip rewinding in LoopingAudioStream

This commit is contained in:
Eugene Sandulenko 2020-08-29 02:14:00 +02:00
parent 4b9cafc1f8
commit 30d67ced36
2 changed files with 3 additions and 3 deletions

View file

@ -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;
}

View file

@ -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;