summaryrefslogtreecommitdiff
path: root/src/system_fsm
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2023-08-15 13:53:30 +1000
committerjacqueline <me@jacqueline.id.au>2023-08-15 13:53:30 +1000
commitd6b83fcf4a1a3039c06e0b1d1a1f7e2af2351efb (patch)
tree03c6a534931736a2755aacef86e271ecc5b8e87c /src/system_fsm
parent205e3053506191fab69d01e7523e733dccc09d77 (diff)
downloadtangara-fw-d6b83fcf4a1a3039c06e0b1d1a1f7e2af2351efb.tar.gz
Flesh out basic bluetooth support
No ui yet, and performance isn't great. It kinda works though!!
Diffstat (limited to 'src/system_fsm')
-rw-r--r--src/system_fsm/booting.cpp7
-rw-r--r--src/system_fsm/include/system_fsm.hpp2
-rw-r--r--src/system_fsm/system_fsm.cpp1
3 files changed, 9 insertions, 1 deletions
diff --git a/src/system_fsm/booting.cpp b/src/system_fsm/booting.cpp
index 3d6c6a46..7bd5f890 100644
--- a/src/system_fsm/booting.cpp
+++ b/src/system_fsm/booting.cpp
@@ -6,6 +6,7 @@
#include "assert.h"
#include "audio_fsm.hpp"
+#include "bluetooth.hpp"
#include "core/lv_obj.h"
#include "display_init.hpp"
#include "esp_err.h"
@@ -60,12 +61,15 @@ auto Booting::entry() -> void {
return;
}
+ ESP_LOGI(kTag, "starting bluetooth");
+ sBluetooth.reset(new drivers::Bluetooth());
+
// At this point we've done all of the essential boot tasks. Start remaining
// state machines and inform them that the system is ready.
ESP_LOGI(kTag, "starting audio");
if (!audio::AudioState::Init(sGpios.get(), sDatabase, sTagParser,
- sTrackQueue.get())) {
+ sBluetooth.get(), sTrackQueue.get())) {
events::System().Dispatch(FatalError{});
events::Ui().Dispatch(FatalError{});
return;
@@ -80,6 +84,7 @@ auto Booting::exit() -> void {
// TODO(jacqueline): Gate this on something. Debug flag? Flashing mode?
sAppConsole = new console::AppConsole();
sAppConsole->sTrackQueue = sTrackQueue.get();
+ sAppConsole->sBluetooth = sBluetooth.get();
sAppConsole->Launch();
}
diff --git a/src/system_fsm/include/system_fsm.hpp b/src/system_fsm/include/system_fsm.hpp
index d30a712c..3d513666 100644
--- a/src/system_fsm/include/system_fsm.hpp
+++ b/src/system_fsm/include/system_fsm.hpp
@@ -10,6 +10,7 @@
#include "app_console.hpp"
#include "battery.hpp"
+#include "bluetooth.hpp"
#include "database.hpp"
#include "display.hpp"
#include "gpios.hpp"
@@ -62,6 +63,7 @@ class SystemState : public tinyfsm::Fsm<SystemState> {
static std::shared_ptr<drivers::Battery> sBattery;
static std::shared_ptr<drivers::SdStorage> sStorage;
static std::shared_ptr<drivers::Display> sDisplay;
+ static std::shared_ptr<drivers::Bluetooth> sBluetooth;
static std::shared_ptr<database::Database> sDatabase;
static std::shared_ptr<database::TagParserImpl> sTagParser;
diff --git a/src/system_fsm/system_fsm.cpp b/src/system_fsm/system_fsm.cpp
index 527a8770..96e806f4 100644
--- a/src/system_fsm/system_fsm.cpp
+++ b/src/system_fsm/system_fsm.cpp
@@ -24,6 +24,7 @@ std::shared_ptr<drivers::RelativeWheel> SystemState::sRelativeTouch;
std::shared_ptr<drivers::Battery> SystemState::sBattery;
std::shared_ptr<drivers::SdStorage> SystemState::sStorage;
std::shared_ptr<drivers::Display> SystemState::sDisplay;
+std::shared_ptr<drivers::Bluetooth> SystemState::sBluetooth;
std::shared_ptr<database::Database> SystemState::sDatabase;
std::shared_ptr<database::TagParserImpl> SystemState::sTagParser;