aboutsummaryrefslogtreecommitdiff
path: root/audio/audiostream.cpp
diff options
context:
space:
mode:
authorMatthew Hoops2014-07-10 00:27:33 -0400
committerMatthew Hoops2014-07-27 23:44:44 -0400
commitd2353964b8712bb3604ba7af678ca6cc95278fbf (patch)
treef7127cf6fb1e80891e56df53232d408b4fd997c9 /audio/audiostream.cpp
parent1b834f92bd75d394051de650747096ee9d82b513 (diff)
downloadscummvm-rg350-d2353964b8712bb3604ba7af678ca6cc95278fbf.tar.gz
scummvm-rg350-d2353964b8712bb3604ba7af678ca6cc95278fbf.tar.bz2
scummvm-rg350-d2353964b8712bb3604ba7af678ca6cc95278fbf.zip
AUDIO: Fix QueuingAudioStreamImpl locking
Diffstat (limited to 'audio/audiostream.cpp')
-rw-r--r--audio/audiostream.cpp17
1 files changed, 13 insertions, 4 deletions
diff --git a/audio/audiostream.cpp b/audio/audiostream.cpp
index 4dd5d236be..bfb1dda2ad 100644
--- a/audio/audiostream.cpp
+++ b/audio/audiostream.cpp
@@ -315,18 +315,27 @@ public:
virtual int readBuffer(int16 *buffer, const int numSamples);
virtual bool isStereo() const { return _stereo; }
virtual int getRate() const { return _rate; }
+
virtual bool endOfData() const {
- //Common::StackLock lock(_mutex);
+ Common::StackLock lock(_mutex);
return _queue.empty();
}
- virtual bool endOfStream() const { return _finished && _queue.empty(); }
+
+ virtual bool endOfStream() const {
+ Common::StackLock lock(_mutex);
+ return _finished && _queue.empty();
+ }
// Implement the QueuingAudioStream API
virtual void queueAudioStream(AudioStream *stream, DisposeAfterUse::Flag disposeAfterUse);
- virtual void finish() { _finished = true; }
+
+ virtual void finish() {
+ Common::StackLock lock(_mutex);
+ _finished = true;
+ }
uint32 numQueuedStreams() const {
- //Common::StackLock lock(_mutex);
+ Common::StackLock lock(_mutex);
return _queue.size();
}
};