diff options
| author | jacqueline <me@jacqueline.id.au> | 2024-04-12 15:11:56 +1000 |
|---|---|---|
| committer | jacqueline <me@jacqueline.id.au> | 2024-04-12 15:11:56 +1000 |
| commit | 166e8feb3cbd84fb849d4e4376ae329a6221529a (patch) | |
| tree | 0e17ca54b035fc4743359c47cdefdbd9c7823053 /src/audio/bt_audio_output.cpp | |
| parent | ade00945951ff49481a161479f7d9798cc4c564f (diff) | |
| download | tangara-fw-166e8feb3cbd84fb849d4e4376ae329a6221529a.tar.gz | |
copy audacious' math it looks good
Diffstat (limited to 'src/audio/bt_audio_output.cpp')
| -rw-r--r-- | src/audio/bt_audio_output.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
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<uint16_t>(v, 0, 100); bg_worker_.Dispatch<void>([&]() { - float factor = volume_ / 100.; + float factor = + pow(10, static_cast<double>(kVolumeRange) * (volume_ - 100) / 100 / 20); bluetooth_.SetVolumeFactor(factor); }); } |
