mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-31 22:25:33 -04:00
alsa-mixer: round, not truncate, in to_alsa_dB
to_alsa_dB() returns a result rounded to two decimal places (instead of
using integer truncation) to avoid small errors when converting between
dB and volume.
Consider playback at -22 dB (which is supported by ALSA) but results in
the higher level of -21 dB plus software attenuation.
pa_sw_volume_from_dB(-22) = 28172
pa_sw_volume_to_dB(28172) = -21.9997351
to_alsa_dB(-21.9997351) = -2199
ALSA value 106 = -2200
ALSA value 107 = -2100
...
rounding = +1 /* "accurate or first above" */
snd_mixer_selem_ask_playback_dB_vol(me, -2199, rounding, &alsa_val)
alsa_val = -2100
Signed-off-by: Ian Ray <ian.ray@ge.com>
This commit is contained in:
parent
f0dfddead3
commit
739a4b3d23
1 changed files with 1 additions and 1 deletions
|
|
@ -700,7 +700,7 @@ void pa_alsa_path_set_free(pa_alsa_path_set *ps) {
|
|||
}
|
||||
|
||||
static long to_alsa_dB(pa_volume_t v) {
|
||||
return (long) (pa_sw_volume_to_dB(v) * 100.0);
|
||||
return lround(pa_sw_volume_to_dB(v) * 100.0);
|
||||
}
|
||||
|
||||
static pa_volume_t from_alsa_dB(long v) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue