bzero(pcm, sizeof(struct pcm));
pcm->no = device;
pcm->info.device = device;
+ pcm->info.stream = -1;
+ pcm->info.subdevice = -1;
if ((err = snd_ctl_pcm_info(handle, &pcm->info)) < 0) {
snd_ctl_close(handle);
error("PCM info error: %s", snd_strerror(err));
}
for (dev = 0; dev < info.pcmdevs; dev++) {
pcminfo.device = dev;
- pcminfo.stream = stream;
+ pcminfo.stream = -stream - 1;
pcminfo.subdevice = -1;
if ((err = snd_ctl_pcm_info(handle, &pcminfo)) < 0) {
fprintf(stderr, "Error: control digital audio info (%i): %s\n", card, snd_strerror(err));
continue;
}
+ if (pcminfo.stream != stream)
+ continue;
fprintf(stderr, "%s: %i [%s] / #%i: %s\n",
info.name,
card + 1,