Eduard Permyakov : dsound: Correctly report hardware audio buffers as unsupported.
Module: wine Branch: master Commit: 6806954251d0c8c37a5aa9f749b918aa0da98c8d URL: https://source.winehq.org/git/wine.git/?a=commit;h=6806954251d0c8c37a5aa9f74... Author: Eduard Permyakov <epermyakov(a)codeweavers.com> Date: Wed Nov 17 15:48:52 2021 +0300 dsound: Correctly report hardware audio buffers as unsupported. Signed-off-by: Eduard Permyakov <epermyakov(a)codeweavers.com> Signed-off-by: Andrew Eikum <aeikum(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- dlls/dsound/dsound.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/dlls/dsound/dsound.c b/dlls/dsound/dsound.c index 3085d86e5b5..bcff0d8642a 100644 --- a/dlls/dsound/dsound.c +++ b/dlls/dsound/dsound.c @@ -373,12 +373,12 @@ static HRESULT DirectSoundDevice_Initialize(DirectSoundDevice ** ppDevice, LPCGU device->drvcaps.dwPrimaryBuffers = 1; device->drvcaps.dwMinSecondarySampleRate = DSBFREQUENCY_MIN; device->drvcaps.dwMaxSecondarySampleRate = DSBFREQUENCY_MAX; - device->drvcaps.dwMaxHwMixingAllBuffers = 16; + device->drvcaps.dwMaxHwMixingAllBuffers = 1; device->drvcaps.dwMaxHwMixingStaticBuffers = device->drvcaps.dwMaxHwMixingAllBuffers; device->drvcaps.dwMaxHwMixingStreamingBuffers = device->drvcaps.dwMaxHwMixingAllBuffers; - device->drvcaps.dwFreeHwMixingAllBuffers = device->drvcaps.dwMaxHwMixingAllBuffers; - device->drvcaps.dwFreeHwMixingStaticBuffers = device->drvcaps.dwMaxHwMixingStaticBuffers; - device->drvcaps.dwFreeHwMixingStreamingBuffers = device->drvcaps.dwMaxHwMixingStreamingBuffers; + device->drvcaps.dwFreeHwMixingAllBuffers = 0; + device->drvcaps.dwFreeHwMixingStaticBuffers = 0; + device->drvcaps.dwFreeHwMixingStreamingBuffers = 0; ZeroMemory(&device->volpan, sizeof(device->volpan)); @@ -435,11 +435,10 @@ static HRESULT DirectSoundDevice_CreateSoundBuffer( } if (!(dsbd->dwFlags & DSBCAPS_PRIMARYBUFFER) && - dsbd->dwFlags & DSBCAPS_LOCHARDWARE && - device->drvcaps.dwFreeHwMixingAllBuffers == 0) + dsbd->dwFlags & DSBCAPS_LOCHARDWARE) { - WARN("ran out of emulated hardware buffers\n"); - return DSERR_ALLOCATED; + WARN("unable to create hardware buffer\n"); + return DSERR_UNSUPPORTED; } if (dsbd->dwFlags & DSBCAPS_PRIMARYBUFFER) {
participants (1)
-
Alexandre Julliard