[alsa-devel] Strange bug in .asoundrc ??

Dominique Larchey-Wendling Dominique.Larchey-Wendling at loria.fr
Mon Nov 19 16:06:13 CET 2007

 > It appears this behaviour is by design.

Ok so this is not a bug but a feature ;-)
However, it is not specified in the doc that alsa-lib makes a semantic 
distinction between the types of objects in the alisp language.

What is strange is that the same function is called in alsa-lib to
expand hw:0 whether it is prefixed with "ctl" or "pcm" :

snd_config_search_definition(root, "ctl", name, &ctl_conf);


snd_config_search_definition(root, "pcm", name, &pcm_conf);


Of course there is the workaround

ctl.tata { type hw card 0 }

but my question was more why is it designed this way ? Perhaps I do not
see some tricky problem but it should not be difficult to modify 
alsa-lib so that the behavior is coherent between the "ctl" and "pcm" 
contexts ?



> Dominique Larchey-Wendling wrote:
>> It seems that neither the current ctl.hw function nor the following
>> simplified function ctl.!hw work correctly when the argument CARD is
>> given to the function. It works however when no argument is given as the
>> following test examples show it.
>> Is this a know bug of alsa-lib ? It is strange because this bug does not
>>    show up with pcm.hw for example.
>> ctl.rha  "hw"
>> ctl.tata "hw:0"
>> rha % amixer -D rha info
>> Card rha 'Intel'/'HDA Intel at 0xfebfc000 irq 16'
>> ...
>> rha % amixer -D tata info
>> ALSA lib control.c:781:(snd_ctl_open_conf) Invalid type for CTL tata definition
> Using a string with parameters works only with PCM devices; the code in
> alsa-lib that handles other device types doesn't bother to try to look
> the string up.
> It appears this behaviour is by design.
> To get your own definition, write something like this:
>   ctl.tata { type hw card 0 }
> Regards,
> Clemens

More information about the Alsa-devel mailing list