Alexandre Julliard wrote: [...]
I don't think we want to add yet another driver just for autodetection. Each driver should simply refuse to load if its hardware isn't present, then winmm can load each of them in turn until one succeeds.
Note that this pretty much works already. To try it out, edit your configuration file (yes I'm old fashioned, I still have a configuration file<g>) as follows:
[WinMM] "Drivers" = "winearts.drv;winealsa.drv;wineoss.drv"
Then on a system with no aRts and no Alsa, Wine will automatically load the wineoss driver. A system with aRts plus Alsa plus OSS emulation, will see devices for all three drivers, i.e. it should look as if we had three sound cards. We might want to change that so winmm stops as soon as it finds a driver that works but I'm not sure that would be better: we could conceivably have two sound cards, one accessible through Alsa and the other through OSS.
What needs fixing is that: * winearts seems to be causing some problems with threading. * if more than one driver is loaded DirectSound tends to get confused * some drivers may still need fixing to return the correct value if the underlying sound system is not available (wineaudioio, winejack, winenas)
Basically it all needs more testing and a bit of debugging.