Mercurial > foo_out_sdl
diff foosdk/sdk/foobar2000/helpers/VolumeMap.cpp @ 1:20d02a178406 default tip
*: check in everything else
yay
| author | Paper <paper@tflc.us> |
|---|---|
| date | Mon, 05 Jan 2026 02:15:46 -0500 |
| parents | |
| children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/foosdk/sdk/foobar2000/helpers/VolumeMap.cpp Mon Jan 05 02:15:46 2026 -0500 @@ -0,0 +1,22 @@ +#include "StdAfx.h" +#include "VolumeMap.h" + +static constexpr double powval = 2.0; +static constexpr double silence = -100.0; + +double VolumeMap::SliderToDB2(double slider) { + double v = SliderToDB(slider); + v = floor(v * 2.0 + 0.5) * 0.5; + return v; +} + +double VolumeMap::SliderToDB(double slider) { + if (slider > 0) { + return pfc::max_t<double>(silence,10.0 * log(slider) / log(powval)); + } else { + return silence; + } +} +double VolumeMap::DBToSlider(double volumeDB) { + return pfc::clip_t<double>(pow(powval,volumeDB / 10.0), 0, 1); +}
