[alsa-devel] Get sound card available channels
Hi,
We have a need for our process to poll/monitor the sound cards. This process needs to provide a unique id for the sound card (e.g. some concat of name+hardware address) which we can get using snd_ctl_t handle.
However, we also need to provide the number or rx/tx channels each sound card provides. Doing this using the pcm hw_params after snd_pcm_open won't work as the device may be in use.
Is there a way for this process to get the number of rx/tx channels without needing to 'open' the device, e.g. using the snd_ctl_t handle?
One observation I have made is that there is a proc file ( cat /proc/asound/card1/stream0) that seems to only be populated by the USB soundcards I have and not the Intel builtin. This has all the information I require but if it isn't a standard file we can't rely on it.
Thanks
Dan Hordern wrote:
We have a need for our process to poll/monitor the sound cards.
Something like libudev would help with monitoring /dev/snd/controlC* devices.
This process needs to provide a unique id for the sound card (e.g. some concat of name+hardware address) which we can get using snd_ctl_t handle.
snd_ctl_card_info_get_id()
However, we also need to provide the number or rx/tx channels each sound card provides. Doing this using the pcm hw_params after snd_pcm_open won't work as the device may be in use.
Is there a way for this process to get the number of rx/tx channels without needing to 'open' the device, e.g. using the snd_ctl_t handle?
No. The number of channels might depend on the current configuration and on other resources.
What do you need these numbers for?
Regards, Clemens
participants (2)
-
Clemens Ladisch
-
Dan Hordern