when calculating volume from dB use ceil()

This commit is contained in:
Lennart Poettering 2009-04-08 03:47:48 +02:00
parent 4ff41ecbb0
commit 14e89d4ecd

View file

@ -126,7 +126,7 @@ pa_volume_t pa_sw_volume_from_dB(double dB) {
if (isinf(dB) < 0 || dB <= -USER_DECIBEL_RANGE) if (isinf(dB) < 0 || dB <= -USER_DECIBEL_RANGE)
return PA_VOLUME_MUTED; return PA_VOLUME_MUTED;
return (pa_volume_t) lrint((dB/USER_DECIBEL_RANGE+1)*PA_VOLUME_NORM); return (pa_volume_t) lrint(ceil((dB/USER_DECIBEL_RANGE+1.0)*PA_VOLUME_NORM));
} }
double pa_sw_volume_to_dB(pa_volume_t v) { double pa_sw_volume_to_dB(pa_volume_t v) {
@ -144,7 +144,7 @@ pa_volume_t pa_sw_volume_from_linear(double v) {
if (v > .999 && v < 1.001) if (v > .999 && v < 1.001)
return PA_VOLUME_NORM; return PA_VOLUME_NORM;
return pa_sw_volume_from_dB(20*log10(v)); return pa_sw_volume_from_dB(20.0*log10(v));
} }
double pa_sw_volume_to_linear(pa_volume_t v) { double pa_sw_volume_to_linear(pa_volume_t v) {