diff options
| author | ailurux <ailuruxx@gmail.com> | 2024-08-29 15:20:22 +1000 |
|---|---|---|
| committer | ailurux <ailuruxx@gmail.com> | 2024-08-29 15:20:22 +1000 |
| commit | 96a224c0df4f647b3e5dbbcbbedad3a1d38470ba (patch) | |
| tree | 8960865293dde6f9844b7b1a42d5775d5dceceb2 /src/tangara/audio/track_queue.cpp | |
| parent | 3421bd652c39b253872e43d3b6e43664bd0b66e2 (diff) | |
| download | tangara-fw-96a224c0df4f647b3e5dbbcbbedad3a1d38470ba.tar.gz | |
Lua API improvements and fixes
Co-authored-by: jacqueline <me@jacqueline.id.au>
Diffstat (limited to 'src/tangara/audio/track_queue.cpp')
| -rw-r--r-- | src/tangara/audio/track_queue.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/tangara/audio/track_queue.cpp b/src/tangara/audio/track_queue.cpp index cc4770ae..2c1faf96 100644 --- a/src/tangara/audio/track_queue.cpp +++ b/src/tangara/audio/track_queue.cpp @@ -236,6 +236,21 @@ auto TrackQueue::next() -> void { next(Reason::kExplicitUpdate); } +auto TrackQueue::currentPosition(size_t position) -> bool { + { + const std::shared_lock<std::shared_mutex> lock(mutex_); + if (position >= totalSize()) { + return false; + } + goTo(position); + } + + // If we're explicitly setting the position, we want to treat it as though + // the current track has changed, even if the position was the same + notifyChanged(true, Reason::kExplicitUpdate); + return true; +} + auto TrackQueue::goTo(size_t position) -> void { position_ = position; if (opened_playlist_) { |
