latest SDK
This commit is contained in:
22
foobar2000/helpers/VolumeMap.cpp
Normal file
22
foobar2000/helpers/VolumeMap.cpp
Normal file
@@ -0,0 +1,22 @@
|
||||
#include "stdafx.h"
|
||||
#include "VolumeMap.h"
|
||||
|
||||
static const double powval = 2.0;
|
||||
static const 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);
|
||||
}
|
||||
Reference in New Issue
Block a user