dsound-EAX: Added patch to implement DSPROPSETID_EAX20_BufferProperties stub.

This commit is contained in:
Sebastian Lackner 2015-10-08 03:53:27 +02:00
parent 48c78157ae
commit 55379f6926
4 changed files with 102 additions and 1 deletions

2
debian/changelog vendored
View File

@ -2,6 +2,8 @@ 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.
* Added patch to show windows version when collecting system info in winedbg.
* Added patch to implement DSPROPSETID_EAX20_ListenerProperties stub.
* Added patch to implement DSPROPSETID_EAX20_BufferProperties stub.
* Removed patch to mark RegOpenKeyExA, RegCloseKey and RegQueryValueExA as
hotpatchable (accepted upstream).
* Removed patch to mark BitBlt and StretchDIBits as hotpatchable (accepted

View File

@ -16,7 +16,7 @@ index a555a75..21450e8 100644
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_ListenerProperties, 0x306a6a8, 0xb224, 0x11d2, 0x99, 0xe5, 0x0, 0x0, 0xe8, 0xd8, 0xc7, 0x22);
typedef enum {
DSPROPERTY_EAX_ALL,

View File

@ -0,0 +1,97 @@
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

View File

@ -2912,6 +2912,7 @@ if test "$enable_dsound_EAX" -eq 1; then
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
patch_apply dsound-EAX/0021-dsound-Add-stub-support-for-DSPROPSETID_EAX20_Buffer.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 },';
@ -2933,6 +2934,7 @@ if test "$enable_dsound_EAX" -eq 1; then
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 },';
echo '+ { "Erich E. Hoover", "dsound: Add stub support for DSPROPSETID_EAX20_BufferProperties.", 1 },';
) >> "$patchlist"
fi