diff options
| author | ailurux <ailuruxx@gmail.com> | 2023-07-08 12:58:07 +1000 |
|---|---|---|
| committer | ailurux <ailuruxx@gmail.com> | 2023-07-08 12:58:07 +1000 |
| commit | 3de310f6e4c170c4c4bfb789cb07ca10e5ab17b8 (patch) | |
| tree | 0d13d6efa758b8c029a35c73405529dcadde3788 /src/system_fsm | |
| parent | daa3013836d619d920db3a9dc1f9cc988047a4b4 (diff) | |
| parent | 8f8bc1f088b389a683735d626cbce9adb1f6dc17 (diff) | |
| download | tangara-fw-3de310f6e4c170c4c4bfb789cb07ca10e5ab17b8.tar.gz | |
Merge branch 'main' of git.sr.ht:~jacqueline/tangara-fw
Diffstat (limited to 'src/system_fsm')
| -rw-r--r-- | src/system_fsm/booting.cpp | 7 | ||||
| -rw-r--r-- | src/system_fsm/include/system_fsm.hpp | 3 | ||||
| -rw-r--r-- | src/system_fsm/system_fsm.cpp | 3 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/system_fsm/booting.cpp b/src/system_fsm/booting.cpp index dcfefbab..48b027d2 100644 --- a/src/system_fsm/booting.cpp +++ b/src/system_fsm/booting.cpp @@ -17,6 +17,7 @@ #include "spi.hpp" #include "system_events.hpp" #include "system_fsm.hpp" +#include "track_queue.hpp" #include "ui_fsm.hpp" #include "i2c.hpp" @@ -48,8 +49,9 @@ auto Booting::entry() -> void { sGpios->set_listener(&sGpiosCallback); // Start bringing up LVGL now, since we have all of its prerequisites. + sTrackQueue.reset(new audio::TrackQueue()); ESP_LOGI(kTag, "starting ui"); - if (!ui::UiState::Init(sGpios.get())) { + if (!ui::UiState::Init(sGpios.get(), sTrackQueue.get())) { events::Dispatch<FatalError, SystemState, ui::UiState, audio::AudioState>( FatalError()); return; @@ -70,7 +72,7 @@ auto Booting::entry() -> void { // state machines and inform them that the system is ready. ESP_LOGI(kTag, "starting audio"); - if (!audio::AudioState::Init(sGpios.get(), sDatabase)) { + if (!audio::AudioState::Init(sGpios.get(), sDatabase, sTrackQueue.get())) { events::Dispatch<FatalError, SystemState, ui::UiState, audio::AudioState>( FatalError()); return; @@ -83,6 +85,7 @@ auto Booting::entry() -> void { auto Booting::exit() -> void { // TODO(jacqueline): Gate this on something. Debug flag? Flashing mode? sAppConsole = new console::AppConsole(); + sAppConsole->sTrackQueue = sTrackQueue.get(); sAppConsole->Launch(); } diff --git a/src/system_fsm/include/system_fsm.hpp b/src/system_fsm/include/system_fsm.hpp index f6a52019..3c3169d1 100644 --- a/src/system_fsm/include/system_fsm.hpp +++ b/src/system_fsm/include/system_fsm.hpp @@ -20,6 +20,7 @@ #include "touchwheel.hpp" #include "system_events.hpp" +#include "track_queue.hpp" namespace system_fsm { @@ -58,6 +59,8 @@ class SystemState : public tinyfsm::Fsm<SystemState> { static std::shared_ptr<drivers::Display> sDisplay; static std::shared_ptr<database::Database> sDatabase; + static std::shared_ptr<audio::TrackQueue> sTrackQueue; + static console::AppConsole* sAppConsole; }; diff --git a/src/system_fsm/system_fsm.cpp b/src/system_fsm/system_fsm.cpp index 1b3aab51..769d5e4a 100644 --- a/src/system_fsm/system_fsm.cpp +++ b/src/system_fsm/system_fsm.cpp @@ -9,6 +9,7 @@ #include "event_queue.hpp" #include "relative_wheel.hpp" #include "system_events.hpp" +#include "track_queue.hpp" namespace system_fsm { @@ -22,6 +23,8 @@ std::shared_ptr<drivers::SdStorage> SystemState::sStorage; std::shared_ptr<drivers::Display> SystemState::sDisplay; std::shared_ptr<database::Database> SystemState::sDatabase; +std::shared_ptr<audio::TrackQueue> SystemState::sTrackQueue; + console::AppConsole* SystemState::sAppConsole; void SystemState::react(const FatalError& err) { |
