summaryrefslogtreecommitdiff
path: root/src/audio/track_queue.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-07-25 17:42:36 +1000
committerjacqueline <me@jacqueline.id.au>2023-07-25 17:43:12 +1000
commit80d7df910987db5201402fe987124f29f09344f3 (patch)
tree7e8c1e04ab40026087343efee95a771c7839b32f /src/audio/track_queue.cpp
parent7b72e5479ee6d11f76c49f7463ba0e7f4e5165c5 (diff)
downloadtangara-fw-80d7df910987db5201402fe987124f29f09344f3.tar.gz
fuck off
Diffstat (limited to 'src/audio/track_queue.cpp')
-rw-r--r--src/audio/track_queue.cpp27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/audio/track_queue.cpp b/src/audio/track_queue.cpp
index 0709056f..721329f9 100644
--- a/src/audio/track_queue.cpp
+++ b/src/audio/track_queue.cpp
@@ -81,39 +81,45 @@ auto TrackQueue::GetUpcoming(std::size_t limit) const
auto TrackQueue::AddNext(database::TrackId t) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_front(t);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = enqueued_.size() < 2});
}
auto TrackQueue::AddNext(std::shared_ptr<playlist::ISource> src) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_front(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = enqueued_.size() < 2});
}
auto TrackQueue::IncludeNext(std::shared_ptr<playlist::IResetableSource> src)
-> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_front(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = enqueued_.size() < 2});
}
auto TrackQueue::AddLast(database::TrackId t) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_back(t);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = enqueued_.size() < 2});
}
auto TrackQueue::AddLast(std::shared_ptr<playlist::ISource> src) -> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_back(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = enqueued_.size() < 2});
}
auto TrackQueue::IncludeLast(std::shared_ptr<playlist::IResetableSource> src)
-> void {
const std::lock_guard<std::mutex> lock(mutex_);
enqueued_.push_back(src);
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = enqueued_.size() < 2});
}
auto TrackQueue::Next() -> void {
@@ -143,7 +149,8 @@ auto TrackQueue::Next() -> void {
}
}
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = true});
}
auto TrackQueue::Previous() -> void {
@@ -173,14 +180,16 @@ auto TrackQueue::Previous() -> void {
}
played_.pop_front();
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = true});
}
auto TrackQueue::Clear() -> void {
const std::lock_guard<std::mutex> lock(mutex_);
played_.clear();
enqueued_.clear();
- events::Dispatch<QueueUpdate, AudioState, ui::UiState>({});
+ events::Dispatch<QueueUpdate, AudioState, ui::UiState>(
+ QueueUpdate{.current_changed = true});
}
} // namespace audio