From cd26f244e7f2648a63411741552c658ca67334e9 Mon Sep 17 00:00:00 2001 From: Raymond Yau Date: Mon, 28 Feb 2011 15:36:36 +0100 Subject: [PATCH] alsamixer: fix display of active/inactive controls Signed-off-by: Raymond Yau Signed-off-by: Clemens Ladisch --- 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.6.4 From 3bea722b3bfdbec2e26218aca66e55b019a24436 Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Fri, 3 Jun 2011 14:28:28 +0200 Subject: [PATCH] alsamixer: Fix 64bit issues lrint() returns a long int. Signed-off-by: Takashi Iwai --- alsamixer/mixer_display.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/alsamixer/mixer_display.c b/alsamixer/mixer_display.c index 51a1546..8ba396a 100644 --- a/alsamixer/mixer_display.c +++ b/alsamixer/mixer_display.c @@ -486,17 +486,17 @@ static void display_control(unsigned int control_index) if (control->flags & IS_ACTIVE) wattrset(mixer_widget.window, attr_mixer_active); if (!(control->flags & HAS_VOLUME_1)) { - sprintf(buf, "%d", lrint(volumes[0] * 100)); + sprintf(buf, "%d", (int)lrint(volumes[0] * 100)); display_string_in_field(values_y, frame_left - 2, buf, 8, ALIGN_CENTER); } else { mvwprintw(mixer_widget.window, values_y, frame_left - 2, - "%3d", lrint(volumes[0] * 100)); + "%3d", (int)lrint(volumes[0] * 100)); if (control->flags & IS_ACTIVE) wattrset(mixer_widget.window, attr_ctl_frame); waddstr(mixer_widget.window, "<>"); if (control->flags & IS_ACTIVE) wattrset(mixer_widget.window, attr_mixer_active); - wprintw(mixer_widget.window, "%-3d", lrint(volumes[1] * 100)); + wprintw(mixer_widget.window, "%-3d", (int)lrint(volumes[1] * 100)); } } -- 1.7.6.4