From 6147f0b2fe272cdce45785de1efcd323084d5ac7 Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
Date: Wed, 7 Oct 2015 19:31:53 -0600
Subject: dsound: Add stub support for DSPROPSETID_EAX20_BufferProperties.

---
 dlls/dsound/dsound_eax.h | 20 ++++++++++++++++++++
 dlls/dsound/eax.c        | 16 ++++++++++++++++
 2 files changed, 36 insertions(+)

diff --git a/dlls/dsound/dsound_eax.h b/dlls/dsound/dsound_eax.h
index fe85179..09563a0 100644
--- a/dlls/dsound/dsound_eax.h
+++ b/dlls/dsound/dsound_eax.h
@@ -29,6 +29,7 @@ extern "C" {
 DEFINE_GUID(DSPROPSETID_EAX_ReverbProperties, 0x4a4e6fc1, 0xc341, 0x11d1, 0xb7, 0x3a, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
 DEFINE_GUID(DSPROPSETID_EAXBUFFER_ReverbProperties, 0x4a4e6fc0, 0xc341, 0x11d1, 0xb7, 0x3a, 0x44, 0x45, 0x53, 0x54, 0x00, 0x00);
 DEFINE_GUID(DSPROPSETID_EAX20_ListenerProperties, 0x306a6a8, 0xb224, 0x11d2, 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22);
+DEFINE_GUID(DSPROPSETID_EAX20_BufferProperties, 0x306a6a7, 0xb224, 0x11d2, 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22);
 
 typedef enum {
     DSPROPERTY_EAX_ALL,
@@ -104,6 +105,25 @@ typedef enum
     DSPROPERTY_EAX20LISTENER_FLAGS
 } DSPROPERTY_EAX20_LISTENERPROPERTY;
 
+typedef enum
+{
+    DSPROPERTY_EAX20BUFFER_NONE,
+    DSPROPERTY_EAX20BUFFER_ALLPARAMETERS,
+    DSPROPERTY_EAX20BUFFER_DIRECT,
+    DSPROPERTY_EAX20BUFFER_DIRECTHF,
+    DSPROPERTY_EAX20BUFFER_ROOM,
+    DSPROPERTY_EAX20BUFFER_ROOMHF,
+    DSPROPERTY_EAX20BUFFER_ROOMROLLOFFFACTOR,
+    DSPROPERTY_EAX20BUFFER_OBSTRUCTION,
+    DSPROPERTY_EAX20BUFFER_OBSTRUCTIONLFRATIO,
+    DSPROPERTY_EAX20BUFFER_OCCLUSION,
+    DSPROPERTY_EAX20BUFFER_OCCLUSIONLFRATIO,
+    DSPROPERTY_EAX20BUFFER_OCCLUSIONROOMRATIO,
+    DSPROPERTY_EAX20BUFFER_OUTSIDEVOLUMEHF,
+    DSPROPERTY_EAX20BUFFER_AIRABSORPTIONFACTOR,
+    DSPROPERTY_EAX20BUFFER_FLAGS
+} DSPROPERTY_EAX20_BUFFERPROPERTY;
+
 #define EAX_REVERBMIX_USEDISTANCE -1.0f
 
 #define AL_EAXREVERB_MAX_REFLECTIONS_DELAY       (0.3f)
diff --git a/dlls/dsound/eax.c b/dlls/dsound/eax.c
index 297d444..12c290a 100644
--- a/dlls/dsound/eax.c
+++ b/dlls/dsound/eax.c
@@ -831,8 +831,14 @@ BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSu
             *pTypeSupport = KSPROPERTY_SUPPORT_GET | KSPROPERTY_SUPPORT_SET;
             return TRUE;
         }
+    } else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
+        if (dwPropID <= DSPROPERTY_EAX20BUFFER_FLAGS) {
+            *pTypeSupport = KSPROPERTY_SUPPORT_GET | KSPROPERTY_SUPPORT_SET;
+            return TRUE;
+        }
     }
 
+    FIXME("(%s,%d,%p)\n", debugstr_guid(guidPropSet), dwPropID, pTypeSupport);
     return FALSE;
 }
 
@@ -941,8 +947,13 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
     } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
         FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
         return E_PROP_ID_UNSUPPORTED;
+    } else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
+        FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d\n", dwPropID);
+        return E_PROP_ID_UNSUPPORTED;
     }
 
+    FIXME("(buf=%p,guidPropSet=%s,dwPropID=%d,pInstanceData=%p,cbInstanceData=%d,pPropData=%p,cbPropData=%d,pcbReturned=%p)\n",
+        buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData, pcbReturned);
     return E_PROP_ID_UNSUPPORTED;
 }
 
@@ -1073,7 +1084,12 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
     } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
         FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
         return E_PROP_ID_UNSUPPORTED;
+    } else if (IsEqualGUID(&DSPROPSETID_EAX20_BufferProperties, guidPropSet)) {
+        FIXME("Unsupported DSPROPSETID_EAX20_BufferProperties: %d\n", dwPropID);
+        return E_PROP_ID_UNSUPPORTED;
     }
 
+    FIXME("(%p,%s,%d,%p,%d,%p,%d)\n",
+        buf, debugstr_guid(guidPropSet), dwPropID, pInstanceData, cbInstanceData, pPropData, cbPropData);
     return E_PROP_ID_UNSUPPORTED;
 }
-- 
2.6.0

