From f2c56d857f9e30ba7d15e31c67e20c0698b3df9f Mon Sep 17 00:00:00 2001
From: "Erich E. Hoover" <erich.e.hoover@wine-staging.com>
Date: Mon, 5 Oct 2015 21:56:15 -0600
Subject: dsound: Add stub support for DSPROPSETID_EAX20_ListenerProperties.

---
 dlls/dsound/dsound_eax.h | 21 +++++++++++++++++++++
 dlls/dsound/eax.c        | 11 +++++++++++
 2 files changed, 32 insertions(+)

diff --git a/dlls/dsound/dsound_eax.h b/dlls/dsound/dsound_eax.h
index a555a75..21450e8 100644
--- a/dlls/dsound/dsound_eax.h
+++ b/dlls/dsound/dsound_eax.h
@@ -28,6 +28,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);
 
 typedef enum {
     DSPROPERTY_EAX_ALL,
@@ -83,6 +84,26 @@ typedef struct {
     float fMix;
 } EAXBUFFER_REVERBPROPERTIES;
 
+typedef enum
+{
+    DSPROPERTY_EAX20LISTENER_NONE,
+    DSPROPERTY_EAX20LISTENER_ALLPARAMETERS,
+    DSPROPERTY_EAX20LISTENER_ROOM,
+    DSPROPERTY_EAX20LISTENER_ROOMHF,
+    DSPROPERTY_EAX20LISTENER_ROOMROLLOFFFACTOR,
+    DSPROPERTY_EAX20LISTENER_DECAYTIME,
+    DSPROPERTY_EAX20LISTENER_DECAYHFRATIO,
+    DSPROPERTY_EAX20LISTENER_REFLECTIONS,
+    DSPROPERTY_EAX20LISTENER_REFLECTIONSDELAY,
+    DSPROPERTY_EAX20LISTENER_REVERB,
+    DSPROPERTY_EAX20LISTENER_REVERBDELAY,
+    DSPROPERTY_EAX20LISTENER_ENVIRONMENT,
+    DSPROPERTY_EAX20LISTENER_ENVIRONMENTSIZE,
+    DSPROPERTY_EAX20LISTENER_ENVIRONMENTDIFFUSION,
+    DSPROPERTY_EAX20LISTENER_AIRABSORPTIONHF,
+    DSPROPERTY_EAX20LISTENER_FLAGS
+} DSPROPERTY_EAX20_LISTENERPROPERTY;
+
 #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 857f924..297d444 100644
--- a/dlls/dsound/eax.c
+++ b/dlls/dsound/eax.c
@@ -826,6 +826,11 @@ BOOL WINAPI EAX_QuerySupport(REFGUID guidPropSet, ULONG dwPropID, ULONG *pTypeSu
             *pTypeSupport = KSPROPERTY_SUPPORT_GET | KSPROPERTY_SUPPORT_SET;
             return TRUE;
         }
+    } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
+        if (dwPropID <= DSPROPERTY_EAX20LISTENER_FLAGS) {
+            *pTypeSupport = KSPROPERTY_SUPPORT_GET | KSPROPERTY_SUPPORT_SET;
+            return TRUE;
+        }
     }
 
     return FALSE;
@@ -933,6 +938,9 @@ HRESULT WINAPI EAX_Get(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
         }
 
         return S_OK;
+    } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
+        FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
+        return E_PROP_ID_UNSUPPORTED;
     }
 
     return E_PROP_ID_UNSUPPORTED;
@@ -1062,6 +1070,9 @@ HRESULT WINAPI EAX_Set(IDirectSoundBufferImpl *buf, REFGUID guidPropSet,
         }
 
         return S_OK;
+    } else if (IsEqualGUID(&DSPROPSETID_EAX20_ListenerProperties, guidPropSet)) {
+        FIXME("Unsupported DSPROPSETID_EAX20_ListenerProperties: %d\n", dwPropID);
+        return E_PROP_ID_UNSUPPORTED;
     }
 
     return E_PROP_ID_UNSUPPORTED;
-- 
2.6.0

