Re: [RFC PATCH] alsactl: skip inactive controls

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxxxxxxxx
> http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> 
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel

[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux