summaryrefslogtreecommitdiff
path: root/src/drivers/include
diff options
context:
space:
mode:
authorjacqueline <me@jacqueline.id.au>2024-06-03 19:59:18 +1000
committerjacqueline <me@jacqueline.id.au>2024-06-03 19:59:18 +1000
commit4afe9d9b5c75bb25746b8e213b83e6785b5c0672 (patch)
tree1e5b22ed4618fe522161855ce6ff3148dc0a26c7 /src/drivers/include
parent41d15a831b149ca7b51a138bd4b306d52ba5a7a8 (diff)
downloadtangara-fw-4afe9d9b5c75bb25746b8e213b83e6785b5c0672.tar.gz
move a bunch of bt callbacks to background tasks
we should avoid doing bt state machine stuff from these callbacks, since espressif calls us whilst holding a lock. ideally we should move all of them to background threads, but we need to do a deep copy to safely move a few of them
Diffstat (limited to 'src/drivers/include')
-rw-r--r--src/drivers/include/drivers/bluetooth.hpp26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/drivers/include/drivers/bluetooth.hpp b/src/drivers/include/drivers/bluetooth.hpp
index 030907d9..6deeca05 100644
--- a/src/drivers/include/drivers/bluetooth.hpp
+++ b/src/drivers/include/drivers/bluetooth.hpp
@@ -65,11 +65,11 @@ struct DeviceDiscovered : public tinyfsm::Event {
namespace internal {
struct Gap : public tinyfsm::Event {
esp_bt_gap_cb_event_t type;
- esp_bt_gap_cb_param_t* param;
+ esp_bt_gap_cb_param_t param;
};
struct A2dp : public tinyfsm::Event {
esp_a2d_cb_event_t type;
- esp_a2d_cb_param_t* param;
+ esp_a2d_cb_param_t param;
};
struct Avrc : public tinyfsm::Event {
esp_avrc_ct_cb_event_t type;
@@ -132,9 +132,9 @@ class BluetoothState : public tinyfsm::Fsm<BluetoothState> {
virtual void react(const events::DeviceDiscovered&);
- virtual void react(const events::internal::Gap& ev) = 0;
- virtual void react(const events::internal::A2dp& ev){};
- virtual void react(const events::internal::Avrc& ev){};
+ virtual void react(events::internal::Gap ev) = 0;
+ virtual void react(events::internal::A2dp ev){};
+ virtual void react(events::internal::Avrc ev){};
protected:
static NvsStorage* sStorage_;
@@ -160,8 +160,8 @@ class Disabled : public BluetoothState {
void react(const events::Enable& ev) override;
void react(const events::Disable& ev) override{};
- void react(const events::internal::Gap& ev) override {}
- void react(const events::internal::A2dp& ev) override {}
+ void react(events::internal::Gap ev) override {}
+ void react(events::internal::A2dp ev) override {}
using BluetoothState::react;
};
@@ -174,7 +174,7 @@ class Idle : public BluetoothState {
void react(const events::Disable& ev) override;
void react(const events::PreferredDeviceChanged& ev) override;
- void react(const events::internal::Gap& ev) override;
+ void react(events::internal::Gap ev) override;
using BluetoothState::react;
};
@@ -188,8 +188,8 @@ class Connecting : public BluetoothState {
void react(const events::ConnectTimedOut& ev) override;
void react(const events::Disable& ev) override;
- void react(const events::internal::Gap& ev) override;
- void react(const events::internal::A2dp& ev) override;
+ void react(events::internal::Gap ev) override;
+ void react(events::internal::A2dp ev) override;
using BluetoothState::react;
};
@@ -203,9 +203,9 @@ class Connected : public BluetoothState {
void react(const events::SourceChanged& ev) override;
void react(const events::Disable& ev) override;
- void react(const events::internal::Gap& ev) override;
- void react(const events::internal::A2dp& ev) override;
- void react(const events::internal::Avrc& ev) override;
+ void react(events::internal::Gap ev) override;
+ void react(events::internal::A2dp ev) override;
+ void react(events::internal::Avrc ev) override;
using BluetoothState::react;