We were looking to find the substream index in the userspace for the device opened (in case we support multiple substreams and mix them).
http://www.alsa-project.org/alsa-doc/alsa-lib/group___p_c_m___info.html
snd_pcm_info_get_subdevice() - Get subdevice from a PCM info container
snd_pcm_info_get_subdevice_name() - Get subdevice name from a PCM info container
snd_pcm_info_get_subdevice_count() - Get subdevices count from a PCM info container
snd_pcm_info_get_subdevice_avail() - Get avail subdevices count from a PCM info container
snd_pcm_info_set_subdevice - Set wanted subdevice inside a PCM info container
Since we also wanted to have some specific alsa controls for each substream the problem of not knowing substream in usermode make stuff interesting!
The subdevices of a device need to same format , rate , channels, period and buffer constraints
http://git.alsa-project.org/?p=alsa-tools.git;a=tree;f=hwmixvolume