summaryrefslogtreecommitdiff
path: root/src/drivers/include
diff options
context:
space:
mode:
Diffstat (limited to 'src/drivers/include')
-rw-r--r--src/drivers/include/drivers/bluetooth.hpp6
-rw-r--r--src/drivers/include/drivers/bluetooth_types.hpp19
2 files changed, 24 insertions, 1 deletions
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<BluetoothState> {
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 <string>
#include "memory_resource.hpp"
+#include <variant>
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<SimpleEvent, RemoteVolumeChanged>;
+
} // namespace bluetooth
} // namespace drivers