Eduard Permyakov : dsound: Correctly report hardware audio buffers as unsupported.

Alexandre Julliard julliard at winehq.org
Wed Nov 17 16:27:59 CST 2021


Module: wine
Branch: master
Commit: 6806954251d0c8c37a5aa9f749b918aa0da98c8d
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=6806954251d0c8c37a5aa9f749b918aa0da98c8d

Author: Eduard Permyakov <epermyakov at 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 at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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) {




More information about the wine-cvs mailing list