Robert Reif reif@earthlink.net writes:
Programs that are written specifically for 2000 and xp don't bother to set the primary buffer format because it's a noop. However wine is patterned after win9x and DirectX 7 or earlier which has a real primary buffer and expects the program to change the primary buffer format if necessary.
This patch provides a way to change the primary buffer format from 22050x8 to an application specific value or a system wide value for programs that don't.
Shouldn't we make it work the win2k way then, instead of requiring users to configure things manually?
Alexandre Julliard wrote:
Robert Reif reif@earthlink.net writes:
Programs that are written specifically for 2000 and xp don't bother to set the primary buffer format because it's a noop. However wine is patterned after win9x and DirectX 7 or earlier which has a real primary buffer and expects the program to change the primary buffer format if necessary.
This patch provides a way to change the primary buffer format from 22050x8 to an application specific value or a system wide value for programs that don't.
Shouldn't we make it work the win2k way then, instead of requiring users to configure things manually?
We could but we would have to do what Microsoft did, do a total rewrite from scratch. When Microsoft switched from VxD to WDM drivers they essentially moved the direct sound primary mixing buffer into the kernel. That way all direct sound requests for a buffer in any format would always succeed because kmixer would do all the fix ups necessary to get the data to real hardware.
It wouldn't hurt wine to totally redo the sound system top to bottom but I'm not volunteering. Until someone does that, this quick workaround will get 2k/xp only programs working better.