From: Takashi Iwai Date: Mon, 17 Dec 2007 10:49:00 +0000 (+0100) Subject: alsactl: skip inactive controls X-Git-Tag: v1.0.16rc1~4 X-Git-Url: https://git.alsa-project.org/?a=commitdiff_plain;h=b0828653c9e67650e49a9ac9854c6614b58183ba;p=alsa-utils.git alsactl: skip inactive controls When using alsactl to save or restore the card settings, it currently skips over controls that don't have the appropriate read/write permissions. It should also skip over inactive controls, otherwise it will get an error when it tries to access that control, and will fail to save the card state (or fully restore it.) From: Dave Dillow --- diff --git a/alsactl/state.c b/alsactl/state.c index 1a2a368..70fa4a5 100644 --- a/alsactl/state.c +++ b/alsactl/state.c @@ -250,7 +250,8 @@ static int get_control(snd_ctl_t *handle, snd_ctl_elem_id_t *id, snd_config_t *t return err; } - if (!snd_ctl_elem_info_is_readable(info)) + if (snd_ctl_elem_info_is_inactive(info) || + !snd_ctl_elem_info_is_readable(info)) return 0; snd_ctl_elem_value_set_id(ctl, id); err = snd_ctl_elem_read(handle, ctl); @@ -1306,7 +1307,8 @@ static int set_control(snd_ctl_t *handle, snd_config_t *control) } } - if (!snd_ctl_elem_info_is_writable(info)) + if (snd_ctl_elem_info_is_inactive(info) || + !snd_ctl_elem_info_is_writable(info)) return 0; snd_ctl_elem_value_set_numid(ctl, numid1);