[alsa-devel] [RFC PATCH] alsactl: skip inactive controls
Takashi Iwai
tiwai at suse.de
Mon Dec 17 10:24:41 CET 2007
At Sat, 15 Dec 2007 14:13:41 -0500,
Dave Dillow wrote:
>
> 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.)
> ---
> I noticed this while adding surround support to SiS7019. I think the
> problem affects other cards, as I am following the pattern used by
> trident, rme*, cmipci, emu10k1 and others.
>
> This is only for discussion, since I've not tested this (nor even
> compiled it) but I think it will fix the issue.
This is obviously a right fix. I applied it to HG tree now.
Thanks.
Takashi
>
> diff -r d3ba62cd2776 alsactl/state.c
> --- a/alsactl/state.c Fri Dec 14 15:29:51 2007 +0100
> +++ b/alsactl/state.c Sat Dec 15 14:06:35 2007 -0500
> @@ -250,7 +250,8 @@ static int get_control(snd_ctl_t *handle
> 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
> }
> }
>
> - 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);
>
>
> _______________________________________________
> Alsa-devel mailing list
> Alsa-devel at alsa-project.org
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
>
More information about the Alsa-devel
mailing list