From 938ba62f57ed2c002bae4aec236eeaeb200e4cba Mon Sep 17 00:00:00 2001 From: jacqueline Date: Thu, 4 Jan 2024 15:57:58 +1100 Subject: refactor handling of volume steps; improve controls --- src/audio/include/audio_sink.hpp | 10 ++++++++-- src/audio/include/bt_audio_output.hpp | 10 ++++++++-- src/audio/include/i2s_audio_output.hpp | 13 +++++++++---- 3 files changed, 25 insertions(+), 8 deletions(-) (limited to 'src/audio/include') diff --git a/src/audio/include/audio_sink.hpp b/src/audio/include/audio_sink.hpp index c37e51fb..eba55eb5 100644 --- a/src/audio/include/audio_sink.hpp +++ b/src/audio/include/audio_sink.hpp @@ -44,8 +44,14 @@ class IAudioOutput { virtual auto SetMode(Modes) -> void = 0; virtual auto SetVolumeImbalance(int_fast8_t balance) -> void = 0; - virtual auto SetVolume(uint_fast8_t percent) -> void = 0; - virtual auto GetVolume() -> uint_fast8_t = 0; + + virtual auto SetVolume(uint16_t) -> void = 0; + + virtual auto GetVolume() -> uint16_t = 0; + + virtual auto GetVolumePct() -> uint_fast8_t = 0; + virtual auto GetVolumeDb() -> int_fast16_t = 0; + virtual auto AdjustVolumeUp() -> bool = 0; virtual auto AdjustVolumeDown() -> bool = 0; diff --git a/src/audio/include/bt_audio_output.hpp b/src/audio/include/bt_audio_output.hpp index 6e5d0720..f23ccd6a 100644 --- a/src/audio/include/bt_audio_output.hpp +++ b/src/audio/include/bt_audio_output.hpp @@ -27,8 +27,14 @@ class BluetoothAudioOutput : public IAudioOutput { auto SetMode(Modes) -> void override; auto SetVolumeImbalance(int_fast8_t balance) -> void override; - auto SetVolume(uint_fast8_t percent) -> void override; - auto GetVolume() -> uint_fast8_t override; + + auto SetVolume(uint16_t) -> void override; + + auto GetVolume() -> uint16_t override; + + auto GetVolumePct() -> uint_fast8_t override; + auto GetVolumeDb() -> int_fast16_t override; + auto AdjustVolumeUp() -> bool override; auto AdjustVolumeDown() -> bool override; diff --git a/src/audio/include/i2s_audio_output.hpp b/src/audio/include/i2s_audio_output.hpp index e5395ade..7c297106 100644 --- a/src/audio/include/i2s_audio_output.hpp +++ b/src/audio/include/i2s_audio_output.hpp @@ -20,8 +20,7 @@ namespace audio { class I2SAudioOutput : public IAudioOutput { public: - I2SAudioOutput(StreamBufferHandle_t, - drivers::IGpios& expander); + I2SAudioOutput(StreamBufferHandle_t, drivers::IGpios& expander); ~I2SAudioOutput(); auto SetMode(Modes) -> void override; @@ -30,8 +29,14 @@ class I2SAudioOutput : public IAudioOutput { auto SetVolumeDb(uint16_t) -> void; auto SetVolumeImbalance(int_fast8_t balance) -> void override; - auto SetVolume(uint_fast8_t percent) -> void override; - auto GetVolume() -> uint_fast8_t override; + + auto SetVolume(uint16_t) -> void override; + + auto GetVolume() -> uint16_t override; + + auto GetVolumePct() -> uint_fast8_t override; + auto GetVolumeDb() -> int_fast16_t override; + auto AdjustVolumeUp() -> bool override; auto AdjustVolumeDown() -> bool override; -- cgit v1.2.3