OK, I'm convinced alsa is the way to go. How about using the already implemented HardwareAcceleration for setting the level of acceleration. Use Basic for a full plugin version, Standard for hw access and Full for real hardware acceleration when that becomes available. Emulation is already used for wave interface.
When set to Basic, opening a primary or secondary buffer will succeed at the requested parameters regardless of hardware capabilities and all controls will be available. This would be for the typical non game user on low end hardware.
Standard will open the hw device and return what format the hardware supports for the primary buffer and fail for secondary buffers if the format is not supported in hardware and only support controls available in hardware. This would be for the typical game user on game quality hardware
Full will support the yet to be defined hardware acceleration interface
Mike Hearn wrote:
On Mon, 29 Mar 2004 18:56:46 -0500, Robert Reif wrote:
If usability rather than performance (as in multiple applications) is important, then higher level drivers like jack or arts should be used.
Apart from JACK which is used in pro-audio situations, sound servers are probably going to be phased out on Linux within the next 12-24 months as people migrate to the 2.6 kernel with ALSA and the dmix/asym plugins.
So, I still think the best way to solve this problem is simply to have a winecfg check box that says "Use hardware accelerated audio" which people who desire better performance can tick: they incur extra CPU overhead and the benefit is that they can use all their apps together. For many uses of Wine audio support is simply required for the bling!bling! sounds programs sometimes make.
This is probably easier on the user than asking them to change their backend Wine audio driver.
thanks -mike