From 782e8dc8c25402171fc4724075b998eae4fa2c76 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Wed, 18 Oct 2023 14:35:28 +1100 Subject: Add better controls for queue manipulation --- src/ui/include/modal_add_to_queue.hpp | 5 +++-- src/ui/include/screen_track_browser.hpp | 11 +++++++++-- src/ui/include/ui_events.hpp | 2 ++ 3 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src/ui/include') diff --git a/src/ui/include/modal_add_to_queue.hpp b/src/ui/include/modal_add_to_queue.hpp index 79f804a4..e6417cd4 100644 --- a/src/ui/include/modal_add_to_queue.hpp +++ b/src/ui/include/modal_add_to_queue.hpp @@ -24,11 +24,12 @@ class AddToQueue : public Modal { public: AddToQueue(Screen*, audio::TrackQueue&, - std::shared_ptr); + std::shared_ptr, + bool all_tracks_only = false); private: audio::TrackQueue& queue_; - std::shared_ptr item_; + std::shared_ptr item_; lv_obj_t* container_; lv_obj_t* selected_track_btn_; diff --git a/src/ui/include/screen_track_browser.hpp b/src/ui/include/screen_track_browser.hpp index 719306f0..0b2d6fc3 100644 --- a/src/ui/include/screen_track_browser.hpp +++ b/src/ui/include/screen_track_browser.hpp @@ -16,6 +16,7 @@ #include "database.hpp" #include "model_top_bar.hpp" #include "screen.hpp" +#include "track_queue.hpp" namespace ui { namespace screens { @@ -23,9 +24,10 @@ namespace screens { class TrackBrowser : public Screen { public: TrackBrowser( - models::TopBar&, + models::TopBar& top_bar, + audio::TrackQueue& queue, std::weak_ptr db, - const std::pmr::string& title, + const std::pmr::vector& breadcrumbs, std::future*>&& initial_page); ~TrackBrowser() {} @@ -49,11 +51,16 @@ class TrackBrowser : public Screen { auto GetNumRecords() -> std::size_t; auto GetItemIndex(lv_obj_t* obj) -> std::optional; + audio::TrackQueue& queue_; std::weak_ptr db_; lv_obj_t* back_button_; + lv_obj_t* play_button_; + lv_obj_t* enqueue_button_; lv_obj_t* list_; lv_obj_t* loading_indicator_; + std::pmr::vector breadcrumbs_; + std::optional loading_pos_; std::optional*>> loading_page_; diff --git a/src/ui/include/ui_events.hpp b/src/ui/include/ui_events.hpp index 4549a51d..2bee6222 100644 --- a/src/ui/include/ui_events.hpp +++ b/src/ui/include/ui_events.hpp @@ -27,6 +27,8 @@ struct OnSystemError : tinyfsm::Event {}; namespace internal { struct RecordSelected : tinyfsm::Event { + bool show_menu; + std::pmr::vector new_crumbs; std::shared_ptr> initial_page; std::shared_ptr> page; std::size_t record; -- cgit v1.2.3