[alsa-devel] [PATCHv4] alsa-lib: ucm: allow values to be read from devices

Takashi Iwai tiwai at suse.de
Fri Mar 18 18:36:46 CET 2011


At Fri, 18 Mar 2011 11:26:22 -0600,
Margarita Olaya wrote:
> 
> This allows devices value to be read using the get_value().
> Also fix a little formatting.
> 
> Signed-off-by: Margarita Olaya Cabrera <magi at slimlogic.co.uk>
> Acked-by: Liam Girdwood <lrg at ti.com>

Committed now.  Thanks.


Takashi

> ---
>  src/ucm/main.c |   21 ++++++++++++++-------
>  1 files changed, 14 insertions(+), 7 deletions(-)
> 
> diff --git a/src/ucm/main.c b/src/ucm/main.c
> index 42fd373..88f8bf6 100644
> --- a/src/ucm/main.c
> +++ b/src/ucm/main.c
> @@ -1059,24 +1059,31 @@ static int get_value3(const char **value,
>   * \param uc_mgr Use case manager
>   * \param identifier Value identifier (string)
>   * \param value Returned value string
> - * \param modifier modifier name (string)
> + * \param item Modifier or Device name (string)
>   * \return Zero on success (value is filled), otherwise a negative error code
>   */
>  static int get_value(snd_use_case_mgr_t *uc_mgr,
> -                     const char *identifier,
> -                     const char **value,
> -                     const char *modifier)
> +			const char *identifier,
> +			const char **value,
> +			const char *item)
>  {
> -        struct use_case_modifier *mod;
> +	struct use_case_modifier *mod;
> +	struct use_case_device *dev;
>  	int err;
> 
> -	if (modifier != NULL) {
> -	        mod = find_modifier(uc_mgr, modifier);
> +	if (item != NULL) {
> +		mod = find_modifier(uc_mgr, item);
>  		if (mod != NULL) {
>  			err = get_value1(value, &mod->value_list, identifier);
>  			if (err >= 0 || err != -ENOENT)
>  				return err;
>  		}
> +		dev = find_device(uc_mgr->active_verb, item);
> +		if (dev != NULL) {
> +			err = get_value1(value, &dev->value_list, identifier);
> +			if (err >= 0 || err != -ENOENT)
> +				return err;
> +		}
>  	}
>  	err = get_value1(value, &uc_mgr->active_verb->value_list, identifier);
>  	if (err >= 0 || err != -ENOENT)
> -- 
> 1.7.0.4
> 


More information about the Alsa-devel mailing list