summaryrefslogtreecommitdiff
path: root/src/ui/ui_fsm.cpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-10-04 14:47:30 +1100
committerjacqueline <me@jacqueline.id.au>2023-10-04 14:47:30 +1100
commit28633e857f86a21d874117fd677de5e8ad21d8d3 (patch)
treed016f7da3b7d5b8ca9c577ea5eaf783a925e418b /src/ui/ui_fsm.cpp
parent7a7fafdd92f8ddc1143a00febf0a540cfefaf099 (diff)
downloadtangara-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.cpp10
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);