forked from pool/alsa-utils
Takashi Iwai
8dd50c6d0c
- Fix DB_RANGE TLV type handling in amixer OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa-utils?expand=0&rev=35
51 lines
1.5 KiB
Diff
51 lines
1.5 KiB
Diff
From 8709ffe841e6f33094f7a547ee86591b29a40cf4 Mon Sep 17 00:00:00 2001
|
|
From: Lars-Peter Clausen <lars@metafoo.de>
|
|
Date: Thu, 16 Jun 2011 14:19:18 +0200
|
|
Subject: [PATCH] alsa-utils: amixer: Fix SND_CTL_TLVT_DB_RANGE handling
|
|
|
|
Current support for handling SND_CTL_TLVT_DB_RANGE in amixer is completely
|
|
broken. This patch fixes it.
|
|
|
|
Reported-by: Daniel Mack <zonque@gmail.com>
|
|
Signed-off-by: Lars-Peter Clausen <lars@metafoo.de>
|
|
Signed-off-by: Takashi Iwai <tiwai@suse.de>
|
|
---
|
|
amixer/amixer.c | 14 +++++++-------
|
|
1 files changed, 7 insertions(+), 7 deletions(-)
|
|
|
|
diff --git a/amixer/amixer.c b/amixer/amixer.c
|
|
index a177288..9d2855d 100644
|
|
--- a/amixer/amixer.c
|
|
+++ b/amixer/amixer.c
|
|
@@ -517,20 +517,20 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
|
|
#ifdef SND_CTL_TLVT_DB_RANGE
|
|
case SND_CTL_TLVT_DB_RANGE:
|
|
printf("dBrange-\n");
|
|
- if ((size / (6 * sizeof(unsigned int))) != 0) {
|
|
+ if ((size % (6 * sizeof(unsigned int))) != 0) {
|
|
while (size > 0) {
|
|
printf("0x%08x,", tlv[idx++]);
|
|
size -= sizeof(unsigned int);
|
|
}
|
|
break;
|
|
}
|
|
- idx = 0;
|
|
- while (idx < size) {
|
|
+ while (size > 0) {
|
|
print_spaces(spaces + 2);
|
|
- printf("rangemin=%i,", tlv[0]);
|
|
- printf(",rangemax=%i\n", tlv[1]);
|
|
- decode_tlv(spaces + 4, tlv + 2, 6 * sizeof(unsigned int));
|
|
- idx += 6 * sizeof(unsigned int);
|
|
+ printf("rangemin=%i,", tlv[idx++]);
|
|
+ printf(",rangemax=%i\n", tlv[idx++]);
|
|
+ decode_tlv(spaces + 4, tlv + idx, 4 * sizeof(unsigned int));
|
|
+ idx += 4;
|
|
+ size -= 6 * sizeof(unsigned int);
|
|
}
|
|
break;
|
|
#endif
|
|
--
|
|
1.7.6
|
|
|