diff options
| author | jacqueline <me@jacqueline.id.au> | 2023-10-04 14:47:30 +1100 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2023-10-04 14:47:30 +1100 |
| commit | 28633e857f86a21d874117fd677de5e8ad21d8d3 (patch) | |
| tree | d016f7da3b7d5b8ca9c577ea5eaf783a925e418b /src/ui/ui_fsm.cpp | |
| parent | 7a7fafdd92f8ddc1143a00febf0a540cfefaf099 (diff) | |
| download | tangara-fw-28633e857f86a21d874117fd677de5e8ad21d8d3.tar.gz | |
Implement UI for enqueuing instead of replacing the current track
Diffstat (limited to 'src/ui/ui_fsm.cpp')
| -rw-r--r-- | src/ui/ui_fsm.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp index 03e20882..f8c9d3f3 100644 --- a/src/ui/ui_fsm.cpp +++ b/src/ui/ui_fsm.cpp @@ -19,6 +19,7 @@ #include "event_queue.hpp" #include "gpios.hpp" #include "lvgl_task.hpp" +#include "modal_add_to_queue.hpp" #include "modal_confirm.hpp" #include "model_playback.hpp" #include "nvs.hpp" @@ -287,11 +288,10 @@ void Browse::react(const internal::RecordSelected& ev) { if (record->track()) { ESP_LOGI(kTag, "selected track '%s'", record->text()->c_str()); auto& queue = sServices->track_queue(); - queue.Clear(); - queue.IncludeLast(std::make_shared<playlist::IndexRecordSource>( - sServices->database(), ev.initial_page, 0, ev.page, ev.record)); - ESP_LOGI(kTag, "transit to playing"); - transit<Playing>(); + auto source = std::make_shared<playlist::IndexRecordSource>( + sServices->database(), ev.initial_page, 0, ev.page, ev.record); + sCurrentModal.reset( + new modals::AddToQueue(sCurrentScreen.get(), queue, source)); } else { ESP_LOGI(kTag, "selected record '%s'", record->text()->c_str()); auto cont = record->Expand(kRecordsPerPage); |
