Maarten,
what does the patch fix?
I did leave nChannels equal to what GetMixFormat returns based on the following reasoning:
- It'll probably suggest a mono format on an old machine that handles mono only, so leave as is.
- It may suggest 6 channels on a 5:1 card (we had a few such reports on test.winehq.org), so presumably, exclusive mode on such machines would accept 6 channels too, so keep it.
Why do you force 2 channels?
There's one fix that I envision: the old WAVE_FORMAT_PCM should only be used with mono or stereo, says MSDN. I used it to avoid having to deal with a channel mask. So for 5:1, it would be preferable to keep WAVE_FORMAT_EXTENSIBLE and simply switch pwfx to linear 16bit PCM instead of FLOAT. IIRC, MSDN advises to try out exclusive mode with both WAVE_FORMAT_PCM and FORMAT_EX, arguing that some devices recognize one but not the other format... (what a mess!)
Thank you, Jörg Höhle