summaryrefslogtreecommitdiff
path: root/src/system_fsm
diff options
context:
space:
mode:
Diffstat (limited to 'src/system_fsm')
-rw-r--r--src/system_fsm/booting.cpp7
-rw-r--r--src/system_fsm/include/system_fsm.hpp3
-rw-r--r--src/system_fsm/system_fsm.cpp3
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) {