summaryrefslogtreecommitdiff
path: root/src/drivers/include/bluetooth.hpp
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-01-17 11:48:40 +1100
committerjacqueline <me@jacqueline.id.au>2024-01-17 11:48:40 +1100
commit71b46730394979ea528d152dbe884cc35c368759 (patch)
tree516b3af32f8822a5f900ea10fd6ffba2e3de1ebb /src/drivers/include/bluetooth.hpp
parent7cdcd44e0ca10ebdc796638190ed1d9b45d99ef0 (diff)
downloadtangara-fw-71b46730394979ea528d152dbe884cc35c368759.tar.gz
all screens basically working, but bluetooth is rough
Diffstat (limited to 'src/drivers/include/bluetooth.hpp')
-rw-r--r--src/drivers/include/bluetooth.hpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/drivers/include/bluetooth.hpp b/src/drivers/include/bluetooth.hpp
index f3623fb8..4aefbc42 100644
--- a/src/drivers/include/bluetooth.hpp
+++ b/src/drivers/include/bluetooth.hpp
@@ -32,14 +32,20 @@ class Bluetooth {
auto Disable() -> void;
auto IsEnabled() -> bool;
+ auto IsConnected() -> bool;
+ auto ConnectedDevice() -> std::optional<bluetooth::Device>;
+
/*
* Sets whether or not the bluetooth stack is allowed to actively scan for
* new devices.
*/
auto SetDeviceDiscovery(bool) -> void;
+ auto IsDiscovering() -> bool;
auto KnownDevices() -> std::vector<bluetooth::Device>;
+
auto SetPreferredDevice(const bluetooth::mac_addr_t& mac) -> void;
+ auto PreferredDevice() -> std::optional<bluetooth::mac_addr_t>;
auto SetSource(StreamBufferHandle_t) -> void;
auto SetEventHandler(std::function<void(bluetooth::Event)> cb) -> void;
@@ -100,9 +106,11 @@ class BluetoothState : public tinyfsm::Fsm<BluetoothState> {
static auto Init(NvsStorage& storage) -> void;
static auto devices() -> std::vector<Device>;
+
static auto preferred_device() -> std::optional<mac_addr_t>;
static auto preferred_device(std::optional<mac_addr_t>) -> void;
+ static auto scanning() -> bool;
static auto discovery() -> bool;
static auto discovery(bool) -> void;
@@ -135,7 +143,7 @@ class BluetoothState : public tinyfsm::Fsm<BluetoothState> {
static std::mutex sDevicesMutex_;
static std::map<mac_addr_t, Device> sDevices_;
static std::optional<mac_addr_t> sPreferredDevice_;
- static mac_addr_t sCurrentDevice_;
+ static std::optional<Device> sCurrentDevice_;
static bool sIsDiscoveryAllowed_;
static std::atomic<StreamBufferHandle_t> sSource_;