[alsa-devel] Salsa-lib : doesn't handle multiple device

Matthieu CASTET matthieu.castet at parrot.com
Tue Sep 30 14:11:30 CEST 2008


it seems there is a bug in card parsing (snd_card_get_index).

If the device name is "hw:0,1", then in _snd_dev_get_device,
snd_card_get_index will be called with "0,1".

But snd_card_get_index expect to be called with only the card string
number or name : it first check that the string is a number [1], and
then try for each card to compare with the card name [2]

I don't know what suppose to do snd_card_get_index, but I thing a easy
way to fix it is to pass to snd_card_get_index only the string before
the first comma.


(isdigit(*string) && *(string + 1) == 0) ||
        (isdigit(*string) && isdigit(*(string + 1)) && *(string + 2) == 0
if (!strcmp((const char *)info.id, string))

More information about the Alsa-devel mailing list