[alsa-devel] [PATCH] alsa-lib: if card driver name is empty string, use card name instead

Takashi Iwai tiwai at suse.de
Tue Sep 20 08:24:52 CEST 2011


At Tue, 20 Sep 2011 13:15:44 -0400,
Scott Jiang wrote:
> 
> Some drivers don't have a card driver name, but they have a nice card name containing enough info.
> So we can use card name to search card config if we found driver name is not valid.
> 
> Signed-off-by: Scott Jiang <scott.jiang.linux at gmail.com>

It's rather a bug of driver, no?
I don't think we need to work around it.


thanks,

Takashi

> ---
>  src/confmisc.c |    8 +++++++-
>  1 files changed, 7 insertions(+), 1 deletions(-)
> 
> diff --git a/src/confmisc.c b/src/confmisc.c
> index 80b0027..3c4b5aa 100644
> --- a/src/confmisc.c
> +++ b/src/confmisc.c
> @@ -666,6 +666,7 @@ int snd_determine_driver(int card, char **driver)
>  	snd_ctl_t *ctl = NULL;
>  	snd_ctl_card_info_t *info;
>  	char *res = NULL;
> +	const char *name = NULL;
>  	int err;
>  
>  	assert(card >= 0 && card <= 32);
> @@ -680,7 +681,12 @@ int snd_determine_driver(int card, char **driver)
>  		SNDERR("snd_ctl_card_info error: %s", snd_strerror(err));
>  		goto __error;
>  	}
> -	res = strdup(snd_ctl_card_info_get_driver(info));
> +	name = snd_ctl_card_info_get_driver(info);
> +	/* if card driver name is empty string, try to use card name */
> +	if (name[0] == '\0')
> +		name = snd_ctl_card_info_get_name(info);
> +
> +	res = strdup(name);
>  	if (res == NULL)
>  		err = -ENOMEM;
>  	else {
> -- 
> 1.7.0.4
> 
> 


More information about the Alsa-devel mailing list