Commit 20fff3d1 authored by Robert Reif's avatar Robert Reif Committed by Alexandre Julliard

Enable hardware secondary buffer support on cards that support it (SB

live and audigy).
parent 61cb0178
...@@ -673,6 +673,29 @@ static BOOL OSS_WaveOutInit(OSS_DEVICE* ossdev) ...@@ -673,6 +673,29 @@ static BOOL OSS_WaveOutInit(OSS_DEVICE* ossdev)
} else { } else {
ossdev->ds_caps.dwFlags |= DSCAPS_EMULDRIVER; ossdev->ds_caps.dwFlags |= DSCAPS_EMULDRIVER;
} }
#ifdef DSP_CAP_MULTI /* not every oss has this */
/* check for hardware secondary buffer support (multi open) */
if ((arg & DSP_CAP_MULTI) &&
(ossdev->out_caps.dwSupport & WAVECAPS_DIRECTSOUND)) {
TRACE("hardware secondary buffer support available\n");
if (ossdev->ds_caps.dwFlags & DSCAPS_PRIMARY8BIT)
ossdev->ds_caps.dwFlags |= DSCAPS_SECONDARY8BIT;
if (ossdev->ds_caps.dwFlags & DSCAPS_PRIMARY16BIT)
ossdev->ds_caps.dwFlags |= DSCAPS_SECONDARY16BIT;
if (ossdev->ds_caps.dwFlags & DSCAPS_PRIMARYMONO)
ossdev->ds_caps.dwFlags |= DSCAPS_SECONDARYMONO;
if (ossdev->ds_caps.dwFlags & DSCAPS_PRIMARYSTEREO)
ossdev->ds_caps.dwFlags |= DSCAPS_SECONDARYSTEREO;
ossdev->ds_caps.dwMaxHwMixingAllBuffers = 16;
ossdev->ds_caps.dwMaxHwMixingStaticBuffers = 0;
ossdev->ds_caps.dwMaxHwMixingStreamingBuffers = 16;
ossdev->ds_caps.dwFreeHwMixingAllBuffers = 16;
ossdev->ds_caps.dwFreeHwMixingStaticBuffers = 0;
ossdev->ds_caps.dwFreeHwMixingStreamingBuffers = 16;
}
#endif
} }
OSS_CloseDevice(ossdev); OSS_CloseDevice(ossdev);
TRACE("out dwFormats = %08lX, dwSupport = %08lX\n", TRACE("out dwFormats = %08lX, dwSupport = %08lX\n",
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment