aboutsummaryrefslogtreecommitdiff
path: root/audio
diff options
context:
space:
mode:
authorMatthew Hoops2014-07-10 00:39:29 -0400
committerMatthew Hoops2014-07-27 23:44:45 -0400
commit82d464367b1060003886b1a331a03f5ca099499f (patch)
treed58227f329a5305e025331017b4aeb308cecceea /audio
parent931e2e16f7f65f21e51d501574b4c0c908bd72e5 (diff)
downloadscummvm-rg350-82d464367b1060003886b1a331a03f5ca099499f.tar.gz
scummvm-rg350-82d464367b1060003886b1a331a03f5ca099499f.tar.bz2
scummvm-rg350-82d464367b1060003886b1a331a03f5ca099499f.zip
AUDIO: Better handle endOfStream() vs endOfData() in LoopingAudioStream
Diffstat (limited to 'audio')
-rw-r--r--audio/audiostream.cpp10
-rw-r--r--audio/audiostream.h1
2 files changed, 8 insertions, 3 deletions
diff --git a/audio/audiostream.cpp b/audio/audiostream.cpp
index 36f714b402..fbf672ca22 100644
--- a/audio/audiostream.cpp
+++ b/audio/audiostream.cpp
@@ -98,7 +98,7 @@ LoopingAudioStream::LoopingAudioStream(RewindableAudioStream *stream, uint loops
// TODO: Properly indicate error
_loops = _completeIterations = 1;
}
- if (stream->endOfData()) {
+ if (stream->endOfStream()) {
// Apparently this is an empty stream
_loops = _completeIterations = 1;
}
@@ -122,7 +122,7 @@ int LoopingAudioStream::readBuffer(int16 *buffer, const int numSamples) {
_loops = _completeIterations = 1;
return samplesRead;
}
- if (_parent->endOfData()) {
+ if (_parent->endOfStream()) {
// Apparently this is an empty stream
_loops = _completeIterations = 1;
}
@@ -134,7 +134,11 @@ int LoopingAudioStream::readBuffer(int16 *buffer, const int numSamples) {
}
bool LoopingAudioStream::endOfData() const {
- return (_loops != 0 && (_completeIterations == _loops));
+ return (_loops != 0 && _completeIterations == _loops) || _parent->endOfData();
+}
+
+bool LoopingAudioStream::endOfStream() const {
+ return _loops != 0 && _completeIterations == _loops;
}
AudioStream *makeLoopingAudioStream(RewindableAudioStream *stream, uint loops) {
diff --git a/audio/audiostream.h b/audio/audiostream.h
index d5d7d0b6c7..ad842d7ca8 100644
--- a/audio/audiostream.h
+++ b/audio/audiostream.h
@@ -118,6 +118,7 @@ public:
int readBuffer(int16 *buffer, const int numSamples);
bool endOfData() const;
+ bool endOfStream() const;
bool isStereo() const { return _parent->isStereo(); }
int getRate() const { return _parent->getRate(); }