mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2025-10-31 22:25:34 -04:00
Add auto-probing of ice1712 cards
The ice1712 card is probed automatically when no option is given.
This commit is contained in:
parent
7ffb186591
commit
a41170e153
1 changed files with 35 additions and 12 deletions
|
|
@ -1972,7 +1972,7 @@ int main(int argc, char **argv)
|
||||||
/* Go through gtk initialization */
|
/* Go through gtk initialization */
|
||||||
gtk_init(&argc, &argv);
|
gtk_init(&argc, &argv);
|
||||||
|
|
||||||
name = "hw:0";
|
name = NULL; /* probe */
|
||||||
card_number = 0;
|
card_number = 0;
|
||||||
input_channels = MAX_INPUT_CHANNELS;
|
input_channels = MAX_INPUT_CHANNELS;
|
||||||
output_channels = MAX_OUTPUT_CHANNELS;
|
output_channels = MAX_OUTPUT_CHANNELS;
|
||||||
|
|
@ -2055,17 +2055,40 @@ int main(int argc, char **argv)
|
||||||
default_profile = argv[optind];
|
default_profile = argv[optind];
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((err = snd_ctl_open(&ctl, name, 0)) < 0) {
|
if (! name) {
|
||||||
fprintf(stderr, "snd_ctl_open: %s\n", snd_strerror(err));
|
/* probe cards */
|
||||||
exit(EXIT_FAILURE);
|
static char cardname[8];
|
||||||
}
|
/* FIXME: hardcoded max number of cards */
|
||||||
if ((err = snd_ctl_card_info(ctl, hw_info)) < 0) {
|
for (card_number = 0; card_number < 8; card_number++) {
|
||||||
fprintf(stderr, "snd_ctl_card_info: %s\n", snd_strerror(err));
|
sprintf(cardname, "hw:%d", card_number);
|
||||||
exit(EXIT_FAILURE);
|
if (snd_ctl_open(&ctl, cardname, 0) < 0)
|
||||||
}
|
continue;
|
||||||
if (strcmp(snd_ctl_card_info_get_driver(hw_info), "ICE1712")) {
|
if (snd_ctl_card_info(ctl, hw_info) < 0 ||
|
||||||
fprintf(stderr, "invalid card type (driver is %s)\n", snd_ctl_card_info_get_driver(hw_info));
|
strcmp(snd_ctl_card_info_get_driver(hw_info), "ICE1712")) {
|
||||||
exit(EXIT_FAILURE);
|
snd_ctl_close(ctl);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
/* found */
|
||||||
|
name = cardname;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if (! name) {
|
||||||
|
fprintf(stderr, "No ICE1712 cards found\n");
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if ((err = snd_ctl_open(&ctl, name, 0)) < 0) {
|
||||||
|
fprintf(stderr, "snd_ctl_open: %s\n", snd_strerror(err));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
if ((err = snd_ctl_card_info(ctl, hw_info)) < 0) {
|
||||||
|
fprintf(stderr, "snd_ctl_card_info: %s\n", snd_strerror(err));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
|
if (strcmp(snd_ctl_card_info_get_driver(hw_info), "ICE1712")) {
|
||||||
|
fprintf(stderr, "invalid card type (driver is %s)\n", snd_ctl_card_info_get_driver(hw_info));
|
||||||
|
exit(EXIT_FAILURE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_CARD);
|
snd_ctl_elem_value_set_interface(val, SND_CTL_ELEM_IFACE_CARD);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue