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 ---
#pragma mark - #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) { : _parent(stream, disposeAfterUse), _loops(loops), _completeIterations(0) {
assert(stream); assert(stream);
if (!stream->rewind()) { if (rewind && !stream->rewind()) {
// TODO: Properly indicate error // TODO: Properly indicate error
_loops = _completeIterations = 1; _loops = _completeIterations = 1;
} }

View file

@ -118,7 +118,7 @@ public:
* @param loops How often to loop (0 = infinite) * @param loops How often to loop (0 = infinite)
* @param disposeAfterUse Destroy the stream after the LoopingAudioStream has finished playback. * @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); int readBuffer(int16 *buffer, const int numSamples);
bool endOfData() const; bool endOfData() const;