#endif
if (open_dev >= 0) {
close (open_dev);
- return 0;
+ return 1;
}
- return open_dev ? 1 : 0;
+ return 0;
}
/**
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;
}
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;