Hi all,
I am writing a program that aims to auto-discover the microphone device that the user is speaking into. I started off by querying device hints and collected all devices with the IO types of null, since I have not found any devices with the type of Input. I am puzzled how it is possible that there is no Input, where a microphone device should not be able to emit sound. This is the list on my particular machine:
Name of device: sysdefault:CARD=SB Description of device: HDA ATI SB, ALC892 Analog Default Audio Device I/O type of device: (null)
Name of device: front:CARD=SB,DEV=0 Description of device: HDA ATI SB, ALC892 Analog Front speakers I/O type of device: (null)
Name of device: surround21:CARD=SB,DEV=0 Description of device: HDA ATI SB, ALC892 Analog 2.1 Surround output to Front and Subwoofer speakers I/O type of device: Output
Name of device: surround41:CARD=SB,DEV=0 Description of device: HDA ATI SB, ALC892 Analog 4.1 Surround output to Front, Rear and Subwoofer speakers I/O type of device: Output
Name of device: surround50:CARD=SB,DEV=0 Description of device: HDA ATI SB, ALC892 Analog 5.0 Surround output to Front, Center and Rear speakers I/O type of device: Output
Name of device: surround71:CARD=SB,DEV=0 Description of device: HDA ATI SB, ALC892 Analog 7.1 Surround output to Front, Center, Side, Rear and Woofer speakers I/O type of device: Output
Name of device: sysdefault:CARD=SB Description of device: HDA ATI SB, ALC892 Analog Default Audio Device I/O type of device: (null)
Name of device: front:CARD=SB,DEV=0 Description of device: HDA ATI SB, ALC892 Analog Front speakers I/O type of device: (null)
Now, I am more puzzled, because none of them is a microphone device explicitly. How can my program determine which of them is actually a microphone?
Also, why are devices are duplicated in the output from snd_device_name_hint()? The very first device is also repeated as the 2nd last one...
Regards, Alex