summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorailurux <ailuruxx@gmail.com>2024-04-02 11:11:44 +1100
committerailurux <ailuruxx@gmail.com>2024-04-02 11:11:44 +1100
commita750af35aa6afda40aadca8f7cf8db75f41a43b2 (patch)
tree3f136e1520449ef77da51fd200a501150f90cf49
parent6586819171b635e3b17effb3bfab096da695a0e9 (diff)
downloadtangara-fw-a750af35aa6afda40aadca8f7cf8db75f41a43b2.tar.gz
Added bluetooth db impl
-rw-r--r--src/audio/bt_audio_output.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/audio/bt_audio_output.cpp b/src/audio/bt_audio_output.cpp
index 6deb1f71..f431a49b 100644
--- a/src/audio/bt_audio_output.cpp
+++ b/src/audio/bt_audio_output.cpp
@@ -9,6 +9,7 @@
#include <algorithm>
#include <cstddef>
#include <cstdint>
+#include <cmath>
#include <memory>
#include <variant>
@@ -58,19 +59,22 @@ auto BluetoothAudioOutput::GetVolumePct() -> uint_fast8_t {
}
auto BluetoothAudioOutput::SetVolumePct(uint_fast8_t val) -> bool {
- // TODO
- ESP_LOGE(kTag, "Not implemented");
- return false;
+ if (val < 100) {
+ return false;
+ }
+ SetVolume(val / 100 * 0x7f);
+ return true;
}
auto BluetoothAudioOutput::GetVolumeDb() -> int_fast16_t {
- return 0;
+ return log(GetVolumePct()/100) * 20;
}
-auto BluetoothAudioOutput::SetVolumeDb(int_fast16_t) -> bool {
- // TODO
- ESP_LOGE(kTag, "Not implemented");
- return false;
+auto BluetoothAudioOutput::SetVolumeDb(int_fast16_t val) -> bool {
+ auto pct = pow(2, val / 20.0) * 100;
+ ESP_LOGI("Audio", "Bluetooth audio pct: %d", (int)pct);
+ SetVolumePct(pct);
+ return true;
}
auto BluetoothAudioOutput::AdjustVolumeUp() -> bool {