[alsa-devel] [PATCH] amixer: Fix convert_prange1 not rounding correctly
Josef Gajdusek
atx at atx.name
Sun Jul 6 20:25:10 CEST 2014
The convert_prange1 macro was not the exact inverse of convert_prange.
This was causing the volume percentage set by 'amixer set' to differ from the
one displayed by 'amixer get'.
Signed-off-by: Josef Gajdusek <atx at atx.name>
---
amixer/amixer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/amixer/amixer.c b/amixer/amixer.c
index cf82892..577a2ca 100644
--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -201,7 +201,7 @@ static int convert_prange(long val, long min, long max)
/* Function to convert from percentage to volume. val = percentage */
#define convert_prange1(val, min, max) \
- ceil((val) * ((max) - (min)) * 0.01 + (min))
+ rint((val) * ((max) - (min)) * 0.01 + (min))
struct volume_ops {
int (*get_range)(snd_mixer_elem_t *elem, long *min, long *max);
--
1.8.5.5
More information about the Alsa-devel
mailing list