From 166e8feb3cbd84fb849d4e4376ae329a6221529a Mon Sep 17 00:00:00 2001 From: jacqueline Date: Fri, 12 Apr 2024 15:11:56 +1000 Subject: [PATCH] copy audacious' math it looks good --- src/audio/bt_audio_output.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/audio/bt_audio_output.cpp b/src/audio/bt_audio_output.cpp index 1b8866c1..8f2b8cf3 100644 --- a/src/audio/bt_audio_output.cpp +++ b/src/audio/bt_audio_output.cpp @@ -29,6 +29,8 @@ namespace audio { +static constexpr uint16_t kVolumeRange = 60; + BluetoothAudioOutput::BluetoothAudioOutput(StreamBufferHandle_t s, drivers::Bluetooth& bt, tasks::WorkerPool& p) @@ -51,7 +53,8 @@ auto BluetoothAudioOutput::SetVolumeImbalance(int_fast8_t balance) -> void { auto BluetoothAudioOutput::SetVolume(uint16_t v) -> void { volume_ = std::clamp(v, 0, 100); bg_worker_.Dispatch([&]() { - float factor = volume_ / 100.; + float factor = + pow(10, static_cast(kVolumeRange) * (volume_ - 100) / 100 / 20); bluetooth_.SetVolumeFactor(factor); }); }