From 8de07fe8fac23d508ae64dfd6ffb332f568f4e45 Mon Sep 17 00:00:00 2001 From: ailurux Date: Thu, 6 Jun 2024 04:52:00 +0000 Subject: daniel/bluetooth-avrc (#80) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Have a squizzy and lemme know if any issues @cooljqln 🐝 Reviewed-on: https://codeberg.org/cool-tech-zone/tangara-fw/pulls/80 Co-authored-by: ailurux Co-committed-by: ailurux --- src/drivers/include/drivers/bluetooth.hpp | 6 ++++++ src/drivers/include/drivers/bluetooth_types.hpp | 19 ++++++++++++++++++- 2 files changed, 24 insertions(+), 1 deletion(-) (limited to 'src/drivers/include') diff --git a/src/drivers/include/drivers/bluetooth.hpp b/src/drivers/include/drivers/bluetooth.hpp index 6deeca05..94a85263 100644 --- a/src/drivers/include/drivers/bluetooth.hpp +++ b/src/drivers/include/drivers/bluetooth.hpp @@ -75,6 +75,10 @@ struct Avrc : public tinyfsm::Event { esp_avrc_ct_cb_event_t type; esp_avrc_ct_cb_param_t param; }; +struct Avrctg : public tinyfsm::Event { + esp_avrc_tg_cb_event_t type; + esp_avrc_tg_cb_param_t param; +}; } // namespace internal } // namespace events @@ -135,6 +139,7 @@ class BluetoothState : public tinyfsm::Fsm { virtual void react(events::internal::Gap ev) = 0; virtual void react(events::internal::A2dp ev){}; virtual void react(events::internal::Avrc ev){}; + virtual void react(events::internal::Avrctg ev){}; protected: static NvsStorage* sStorage_; @@ -206,6 +211,7 @@ class Connected : public BluetoothState { void react(events::internal::Gap ev) override; void react(events::internal::A2dp ev) override; void react(events::internal::Avrc ev) override; + void react(const events::internal::Avrctg ev) override; using BluetoothState::react; diff --git a/src/drivers/include/drivers/bluetooth_types.hpp b/src/drivers/include/drivers/bluetooth_types.hpp index 7cfb236f..d2e55ee5 100644 --- a/src/drivers/include/drivers/bluetooth_types.hpp +++ b/src/drivers/include/drivers/bluetooth_types.hpp @@ -5,6 +5,7 @@ #include #include "memory_resource.hpp" +#include namespace drivers { namespace bluetooth { @@ -25,11 +26,27 @@ struct Device { int8_t signal_strength; }; -enum class Event { +enum class SimpleEvent { kKnownDevicesChanged, kConnectionStateChanged, kPreferredDeviceChanged, + // Passthrough events + kPlayPause, + kStop, + kMute, + kVolUp, + kVolDown, + kForward, + kBackward, + kRewind, + kFastForward, }; +struct RemoteVolumeChanged { + uint8_t new_vol; +}; + +using Event = std::variant; + } // namespace bluetooth } // namespace drivers -- cgit v1.2.3