Attached is a fairly sizable patch that revamps the way Alsa initialization is done.
With this patch, Wine now does the following: scan all cards given by Alsa (not brute force 0-5), respect alsa defaults and environment variable overrides, probe to see if a reported Alsa device is useful (e.g. strip my Modem from the list of reported sound cards), and provide a mechanism for an end user to explicitly configure Wine to use Alsa.
The default configuration values should 'just work' in most cases, but the following registry values are permitted to provide finer control:
** [Software\Wine\Wine\Config\ALSA] ** AutoScanCards Whether or not to scan all known sound cards ** and add them to Wine's list (default yes) ** AutoScanDevices Whether or not to scan all known PCM devices ** on each card (default no) ** UsePlugDevice Whether or not to use the plug:hw device, ** which automagically handles rate conversion (def yes) ** DeviceCount If present, specifies the number of hard coded ** Alsa devices to add to Wine's list; default 0 ** DevicePCMn Specifies the Alsa PCM devices to open for ** Device n (where n goes from 1 to DeviceCount) ** DeviceCTLn Specifies the Alsa control devices to open for ** Device n (where n goes from 1 to DeviceCount) ** ** Using AutoScanCards no, and then Devicexxx info ** is a way to exactly specify the devices used by Wine.
I'd appreciate anyone passionately interested in Alsa (Kevin? Robert?) taking the time to try this patch.
I've tried to 'do no harm', but this is a material enough change that I'm not yet comfortable submitting it to wine-patches.
fwiw, there is a (fairly thin) thread on the alsa dev lists regerading this here: http://sourceforge.net/mailarchive/forum.php?thread_id=7452725&forum_id=...
Cheers,
Jeremy