diff options
author | Uwe Klotz <uklotz@mixxx.org> | 2019-09-30 08:34:16 +0200 |
---|---|---|
committer | Uwe Klotz <uklotz@mixxx.org> | 2019-09-30 08:34:16 +0200 |
commit | 198f2fcf404d54c2aaf40e1fab484b8f519c8f87 (patch) | |
tree | a46025820ce3519fa709e2f50b4a13caad9a4270 /src/engine/cachingreader/cachingreaderworker.h | |
parent | 95388238416f4c4042c8d2f60d39a04e9b5c8278 (diff) | |
parent | 9688e0442c8217f5105c64c8f4b7e375b5d54ee5 (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.h | 33 |
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) { |