summaryrefslogtreecommitdiffstats
path: root/src/engine/cachingreaderworker.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/cachingreaderworker.h')
-rw-r--r--src/engine/cachingreaderworker.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/engine/cachingreaderworker.h b/src/engine/cachingreaderworker.h
index 54c5a4c77e..eab3c4a8c9 100644
--- a/src/engine/cachingreaderworker.h
+++ b/src/engine/cachingreaderworker.h
@@ -36,11 +36,14 @@ enum ReaderStatus {
// POD with trivial ctor/dtor/copy for passing through FIFO
typedef struct ReaderStatusUpdate {
- ReaderStatus status;
+ private:
CachingReaderChunk* chunk;
SINT readableFrameIndexRangeStart;
SINT readableFrameIndexRangeEnd;
+ public:
+ ReaderStatus status;
+
void init(
ReaderStatus statusArg = INVALID,
CachingReaderChunk* chunkArg = nullptr,
@@ -51,6 +54,17 @@ typedef struct ReaderStatusUpdate {
readableFrameIndexRangeEnd = readableFrameIndexRangeArg.end();
}
+ CachingReaderChunkForOwner* takeFromWorker() {
+ CachingReaderChunkForOwner* pChunk = nullptr;
+ if (chunk) {
+ DEBUG_ASSERT(dynamic_cast<CachingReaderChunkForOwner*>(chunk));
+ pChunk = static_cast<CachingReaderChunkForOwner*>(chunk);
+ chunk = nullptr;
+ pChunk->takeFromWorker();
+ }
+ return pChunk;
+ }
+
mixxx::IndexRange readableFrameIndexRange() const {
return mixxx::IndexRange::between(
readableFrameIndexRangeStart,