From ee5271ee57c0cdad8a341d0de554a076026914b4 Mon Sep 17 00:00:00 2001 From: Sebastian Lackner Date: Wed, 7 Oct 2015 02:57:45 +0200 Subject: [PATCH] Added patch to implement stub for DSPROPSETID_EAX20_ListenerProperties. --- debian/changelog | 1 + ...support-for-DSPROPSETID_EAX20_Listen.patch | 88 +++++++++++++++++++ patches/patchinstall.sh | 2 + 3 files changed, 91 insertions(+) create mode 100644 patches/dsound-EAX/0020-dsound-Add-stub-support-for-DSPROPSETID_EAX20_Listen.patch diff --git a/debian/changelog b/debian/changelog index 7c836b9c..e1fc6eca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,6 @@ wine-staging (1.7.53) UNRELEASED; urgency=low * Added patch to implement support for msiexec /passive command line option. + * Added patch to implement stub for DSPROPSETID_EAX20_ListenerProperties. * Removed patch to mark RegOpenKeyExA, RegCloseKey and RegQueryValueExA as hotpatchable (accepted upstream). * Removed patch to mark BitBlt and StretchDIBits as hotpatchable (accepted diff --git a/patches/dsound-EAX/0020-dsound-Add-stub-support-for-DSPROPSETID_EAX20_Listen.patch b/patches/dsound-EAX/0020-dsound-Add-stub-support-for-DSPROPSETID_EAX20_Listen.patch new file mode 100644 index 00000000..839e2f3d --- /dev/null +++ b/patches/dsound-EAX/0020-dsound-Add-stub-support-for-DSPROPSETID_EAX20_Listen.patch @@ -0,0 +1,88 @@ +From f2c56d857f9e30ba7d15e31c67e20c0698b3df9f Mon Sep 17 00:00:00 2001 +From: "Erich E. Hoover" +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 + diff --git a/patches/patchinstall.sh b/patches/patchinstall.sh index 02aa2525..c418d065 100755 --- a/patches/patchinstall.sh +++ b/patches/patchinstall.sh @@ -2911,6 +2911,7 @@ if test "$enable_dsound_EAX" -eq 1; then patch_apply dsound-EAX/0017-dsound-Implement-EAX-late-all-pass-filter.patch patch_apply dsound-EAX/0018-dsound-Various-improvements-to-EAX-support.patch patch_apply dsound-EAX/0019-dsound-Allow-disabling-of-EAX-support-in-the-registr.patch + patch_apply dsound-EAX/0020-dsound-Add-stub-support-for-DSPROPSETID_EAX20_Listen.patch ( echo '+ { "Sebastian Lackner", "dsound: Apply filters before sound is multiplied to speakers.", 1 },'; echo '+ { "Mark Harmstone", "dsound: Add EAX v1 constants and structs.", 1 },'; @@ -2931,6 +2932,7 @@ if test "$enable_dsound_EAX" -eq 1; then echo '+ { "Mark Harmstone", "dsound: Implement EAX late all-pass filter.", 1 },'; echo '+ { "Sebastian Lackner", "dsound: Various improvements to EAX support.", 1 },'; echo '+ { "Sebastian Lackner", "dsound: Allow disabling of EAX support in the registry.", 1 },'; + echo '+ { "Erich E. Hoover", "dsound: Add stub support for DSPROPSETID_EAX20_ListenerProperties.", 1 },'; ) >> "$patchlist" fi