summaryrefslogtreecommitdiffstats
path: root/src/engine/cachingreader/cachingreaderworker.h
diff options
context:
space:
mode:
authorUwe Klotz <uklotz@mixxx.org>2019-09-30 08:34:16 +0200
committerUwe Klotz <uklotz@mixxx.org>2019-09-30 08:34:16 +0200
commit198f2fcf404d54c2aaf40e1fab484b8f519c8f87 (patch)
treea46025820ce3519fa709e2f50b4a13caad9a4270 /src/engine/cachingreader/cachingreaderworker.h
parent95388238416f4c4042c8d2f60d39a04e9b5c8278 (diff)
parent9688e0442c8217f5105c64c8f4b7e375b5d54ee5 (diff)
Merge branch '2.2' of git@github.com:mixxxdj/mixxx.git
# Conflicts: # src/track/globaltrackcache.cpp
Diffstat (limited to 'src/engine/cachingreader/cachingreaderworker.h')
-rw-r--r--src/engine/cachingreader/cachingreaderworker.h33
1 files changed, 27 insertions, 6 deletions
diff --git a/src/engine/cachingreader/cachingreaderworker.h b/src/engine/cachingreader/cachingreaderworker.h
index a7a9b2c584..6661677a34 100644
--- a/src/engine/cachingreader/cachingreaderworker.h
+++ b/src/engine/cachingreader/cachingreaderworker.h
@@ -26,12 +26,12 @@ typedef struct CachingReaderChunkReadRequest {
} CachingReaderChunkReadRequest;
enum ReaderStatus {
- INVALID,
- TRACK_NOT_LOADED,
TRACK_LOADED,
+ TRACK_UNLOADED,
CHUNK_READ_SUCCESS,
CHUNK_READ_EOF,
- CHUNK_READ_INVALID
+ CHUNK_READ_INVALID,
+ CHUNK_READ_DISCARDED, // response without frame index range!
};
// POD with trivial ctor/dtor/copy for passing through FIFO
@@ -45,15 +45,36 @@ typedef struct ReaderStatusUpdate {
ReaderStatus status;
void init(
- ReaderStatus statusArg = INVALID,
- CachingReaderChunk* chunkArg = nullptr,
- const mixxx::IndexRange& readableFrameIndexRangeArg = mixxx::IndexRange()) {
+ ReaderStatus statusArg,
+ CachingReaderChunk* chunkArg,
+ const mixxx::IndexRange& readableFrameIndexRangeArg) {
status = statusArg;
chunk = chunkArg;
readableFrameIndexRangeStart = readableFrameIndexRangeArg.start();
readableFrameIndexRangeEnd = readableFrameIndexRangeArg.end();
}
+ static ReaderStatusUpdate readDiscarded(
+ CachingReaderChunk* chunk) {
+ ReaderStatusUpdate update;
+ update.init(CHUNK_READ_DISCARDED, chunk, mixxx::IndexRange());
+ return update;
+ }
+
+ static ReaderStatusUpdate trackLoaded(
+ const mixxx::IndexRange& readableFrameIndexRange) {
+ DEBUG_ASSERT(!readableFrameIndexRange.empty());
+ ReaderStatusUpdate update;
+ update.init(TRACK_LOADED, nullptr, readableFrameIndexRange);
+ return update;
+ }
+
+ static ReaderStatusUpdate trackNotLoaded() {
+ ReaderStatusUpdate update;
+ update.init(TRACK_UNLOADED, nullptr, mixxx::IndexRange());
+ return update;
+ }
+
CachingReaderChunkForOwner* takeFromWorker() {
CachingReaderChunkForOwner* pChunk = nullptr;
if (chunk) {