mirror of
https://github.com/alsa-project/alsa-lib.git
synced 2025-10-29 05:40:25 -04:00
Fix the return value of snd_card_load()
Fix the return value of snd_card_load() to follow the document, 0 = not present, 1 = preset. The other parts calling snd_card_load() are fixed, too.
This commit is contained in:
parent
a12f75afb9
commit
0350a615b7
1 changed files with 8 additions and 7 deletions
|
|
@ -61,9 +61,9 @@ int snd_card_load(int card)
|
|||
#endif
|
||||
if (open_dev >= 0) {
|
||||
close (open_dev);
|
||||
return 0;
|
||||
return 1;
|
||||
}
|
||||
return open_dev ? 1 : 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -85,7 +85,7 @@ int snd_card_next(int *rcard)
|
|||
card = *rcard;
|
||||
card = card < 0 ? 0 : card + 1;
|
||||
for (; card < 32; card++) {
|
||||
if (!snd_card_load(card)) {
|
||||
if (snd_card_load(card)) {
|
||||
*rcard = card;
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -112,15 +112,16 @@ int snd_card_get_index(const char *string)
|
|||
return -EINVAL;
|
||||
if ((isdigit(*string) && *(string + 1) == 0) ||
|
||||
(isdigit(*string) && isdigit(*(string + 1)) && *(string + 2) == 0)) {
|
||||
sscanf(string, "%i", &card);
|
||||
if (sscanf(string, "%i", &card) != 1)
|
||||
return -EINVAL;
|
||||
if (card < 0 || card > 31)
|
||||
return -EINVAL;
|
||||
if (snd_card_load(card) >= 0)
|
||||
if (snd_card_load(card))
|
||||
return card;
|
||||
return -EINVAL;
|
||||
return -ENODEV;
|
||||
}
|
||||
for (card = 0; card < 32; card++) {
|
||||
if (snd_card_load(card) < 0)
|
||||
if (! snd_card_load(card))
|
||||
continue;
|
||||
if (snd_ctl_hw_open(&handle, NULL, card, 0) < 0)
|
||||
continue;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue