From b0828653c9e67650e49a9ac9854c6614b58183ba Mon Sep 17 00:00:00 2001 From: Takashi Iwai Date: Mon, 17 Dec 2007 11:49:00 +0100 Subject: [PATCH] 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 --- alsactl/state.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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);