From 7197da21f6bcc1aaa5d1905228e0e2ec1caf3fa8 Mon Sep 17 00:00:00 2001 From: jacqueline Date: Mon, 17 Jul 2023 16:54:35 +1000 Subject: Basic playlists for upcoming Beware under-testing and bugs. Just getting something barebones in so that I can do rN+1 bringup --- src/ui/ui_fsm.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/ui/ui_fsm.cpp') diff --git a/src/ui/ui_fsm.cpp b/src/ui/ui_fsm.cpp index 96949cd0..a9c3b61c 100644 --- a/src/ui/ui_fsm.cpp +++ b/src/ui/ui_fsm.cpp @@ -17,6 +17,7 @@ #include "screen_playing.hpp" #include "screen_splash.hpp" #include "screen_track_browser.hpp" +#include "source.hpp" #include "system_events.hpp" #include "touchwheel.hpp" #include "track_queue.hpp" @@ -117,20 +118,21 @@ void Browse::react(const internal::RecordSelected& ev) { return; } - if (ev.record.track()) { - ESP_LOGI(kTag, "selected track '%s'", ev.record.text()->c_str()); - // TODO(jacqueline): We should also send some kind of playlist info here. + auto record = ev.page->values().at(ev.record); + if (record.track()) { + ESP_LOGI(kTag, "selected track '%s'", record.text()->c_str()); sQueue->Clear(); - sQueue->AddLast(*ev.record.track()); + sQueue->IncludeLast(std::make_shared( + sDb, ev.initial_page, 0, ev.page, ev.record)); transit(); } else { - ESP_LOGI(kTag, "selected record '%s'", ev.record.text()->c_str()); - auto cont = ev.record.Expand(kRecordsPerPage); + ESP_LOGI(kTag, "selected record '%s'", record.text()->c_str()); + auto cont = record.Expand(kRecordsPerPage); if (!cont) { return; } auto query = db->GetPage(&cont.value()); - std::string title = ev.record.text().value_or("TODO"); + std::string title = record.text().value_or("TODO"); PushScreen( std::make_shared(sDb, title, std::move(query))); } -- cgit v1.2.3