On Monday, February 13, 2012 6:12:00 PM Нискородов Серёжа wrote:
Here is another trouble with snd_ctl_open. Not all devices in alsa configuration files have a predefined ctl. Especially defined by user, for example I don't always define a ctls for all my devices in .asoundconf
You can use the "hw:" prefix for snd_ctl_open. All you need it for is to get the card info and the available device indices, which doesn't rely on a custom prefix.
It's Ok for hardware devices, but what about software devices?
As long as you can set a custom prefix for the snd_pcm_open call, any device that can accept CARD and DEV parameters will work, whether it's hardware ("hw:", "plughw:"), software ("dmix:", "plug:dmix:"), or whatever.
For devices that can't, you'd explicitly list them in the registry. Since you've already gone through the trouble of writing up a custom ALSA device in .asoundrc, is it that much of a problem to also explicitly tell Wine about it? It's not something normal users do, but for "power users" I don't see a problem with asking them to tell Wine about it.
Though I wouldn't be opposed to having a driver-specific configuration GUI where this could be written too, to avoid regedit.
Here is one small thing... You can not predict what devices are configured for me or someone else.
Nor can you predict how much junk snd_device_name_hint will give. Since snd_device_name_hint requires the user to go out of their way to be useful (i.e., edit .asoundrc to get their device defined and listed, and delist unwanted devices), I don't think it's that useful to have for normal users.