forked from pool/alsa-utils
41 lines
1.1 KiB
Diff
41 lines
1.1 KiB
Diff
|
From cd26f244e7f2648a63411741552c658ca67334e9 Mon Sep 17 00:00:00 2001
|
||
|
From: Raymond Yau <superquad.vortex2@gmail.com>
|
||
|
Date: Mon, 28 Feb 2011 15:36:36 +0100
|
||
|
Subject: [PATCH 01/16] alsamixer: fix display of active/inactive controls
|
||
|
|
||
|
Signed-off-by: Raymond Yau <superquad.vortex2@gmail.com>
|
||
|
Signed-off-by: Clemens Ladisch <clemens@ladisch.de>
|
||
|
---
|
||
|
alsamixer/mixer_widget.c | 11 +++++++++++
|
||
|
1 files changed, 11 insertions(+), 0 deletions(-)
|
||
|
|
||
|
diff --git a/alsamixer/mixer_widget.c b/alsamixer/mixer_widget.c
|
||
|
index fb352d3..caaf777 100644
|
||
|
--- a/alsamixer/mixer_widget.c
|
||
|
+++ b/alsamixer/mixer_widget.c
|
||
|
@@ -59,10 +59,21 @@ enum channel_mask {
|
||
|
|
||
|
static int elem_callback(snd_mixer_elem_t *elem, unsigned int mask)
|
||
|
{
|
||
|
+ unsigned int i;
|
||
|
+
|
||
|
if (mask & (SND_CTL_EVENT_MASK_REMOVE |
|
||
|
SND_CTL_EVENT_MASK_INFO |
|
||
|
SND_CTL_EVENT_MASK_VALUE))
|
||
|
controls_changed = TRUE;
|
||
|
+
|
||
|
+ if (mask & SND_CTL_EVENT_MASK_INFO)
|
||
|
+ for (i = 0; i < controls_count; ++i)
|
||
|
+ if (controls[i].elem == elem) {
|
||
|
+ controls[i].flags &= ~IS_ACTIVE;
|
||
|
+ if (snd_mixer_selem_is_active(controls[i].elem))
|
||
|
+ controls[i].flags |= IS_ACTIVE;
|
||
|
+ }
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
--
|
||
|
1.7.5.3
|
||
|
|