[PATCH] xaudio2_9: Add xaudio2_9
Andrew Eikum
aeikum at codeweavers.com
Tue Jan 19 12:29:29 CST 2016
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
---
configure.ac | 2 ++
dlls/xaudio2_7/compat.c | 8 ++++++++
dlls/xaudio2_7/xaudio_dll.c | 1 +
dlls/xaudio2_9/Makefile.in | 13 +++++++++++++
dlls/xaudio2_9/xaudio2_9.spec | 6 ++++++
include/xaudio2.idl | 7 +++++--
6 files changed, 35 insertions(+), 2 deletions(-)
create mode 100644 dlls/xaudio2_9/Makefile.in
create mode 100644 dlls/xaudio2_9/xaudio2_9.spec
diff --git a/configure.ac b/configure.ac
index d2eac29..23fee7b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1685,6 +1685,7 @@ then
enable_xaudio2_6=${enable_xaudio2_6:-no}
enable_xaudio2_7=${enable_xaudio2_7:-no}
enable_xaudio2_8=${enable_xaudio2_8:-no}
+ enable_xaudio2_9=${enable_xaudio2_9:-no}
fi
dnl **** Check for libkstat ****
@@ -3401,6 +3402,7 @@ WINE_CONFIG_DLL(xaudio2_6,,[clean])
WINE_CONFIG_DLL(xaudio2_7,,[clean])
WINE_CONFIG_TEST(dlls/xaudio2_7/tests)
WINE_CONFIG_DLL(xaudio2_8,,[clean])
+WINE_CONFIG_DLL(xaudio2_9,,[clean])
WINE_CONFIG_DLL(xinput1_1)
WINE_CONFIG_DLL(xinput1_2)
WINE_CONFIG_DLL(xinput1_3,,[implib],[xinput])
diff --git a/dlls/xaudio2_7/compat.c b/dlls/xaudio2_7/compat.c
index 9488529..f2f7cd8 100644
--- a/dlls/xaudio2_7/compat.c
+++ b/dlls/xaudio2_7/compat.c
@@ -78,6 +78,14 @@
* Change parameter of IXAudio2::CreateMasteringVoice
* Add Flags parameter to IXAudio2SourceVoice::GetState
* Add IXAudio2MasteringVoice::GetChannelMask
+ * Add DisableLateField member to XAUDIO2FX_REVERB_PARAMETERS
+ *
+ * 2.9
+ * Change IID_IXAudio2
+ * New flags: XAUDIO2_STOP_ENGINE_WHEN_IDLE, XAUDIO2_1024_QUANTUM,
+ * XAUDIO2_NO_VIRTUAL_AUDIO_CLIENT
+ * ABI break:
+ * Add SideDelay member to XAUDIO2FX_REVERB_PARAMETERS
*/
#include "config.h"
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index ac1b2fe..4f0a11f 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -1192,6 +1192,7 @@ static HRESULT WINAPI IXAudio2Impl_QueryInterface(IXAudio2 *iface, REFIID riid,
TRACE("(%p)->(%s, %p)\n", This, debugstr_guid(riid), ppvObject);
if(IsEqualGUID(riid, &IID_IUnknown) ||
+ IsEqualGUID(riid, &IID_IXAudio28) ||
IsEqualGUID(riid, &IID_IXAudio2))
*ppvObject = &This->IXAudio2_iface;
else if(IsEqualGUID(riid, &IID_IXAudio27)){
diff --git a/dlls/xaudio2_9/Makefile.in b/dlls/xaudio2_9/Makefile.in
new file mode 100644
index 0000000..ceb2216
--- /dev/null
+++ b/dlls/xaudio2_9/Makefile.in
@@ -0,0 +1,13 @@
+EXTRADEFS = -DXAUDIO2_VER=9
+MODULE = xaudio2_9.dll
+IMPORTS = advapi32 ole32 user32 uuid
+EXTRALIBS = $(OPENAL_LIBS)
+PARENTSRC = ../xaudio2_7
+
+C_SRCS = \
+ compat.c \
+ x3daudio.c \
+ xapofx.c \
+ xaudio_dll.c
+
+IDL_SRCS = xaudio_classes.idl
diff --git a/dlls/xaudio2_9/xaudio2_9.spec b/dlls/xaudio2_9/xaudio2_9.spec
new file mode 100644
index 0000000..0b9f238
--- /dev/null
+++ b/dlls/xaudio2_9/xaudio2_9.spec
@@ -0,0 +1,6 @@
+@ stdcall XAudio2Create(ptr long long)
+@ stdcall CreateAudioVolumeMeter(ptr)
+@ stdcall CreateAudioReverb(ptr)
+@ cdecl CreateFX(ptr ptr ptr long)
+@ cdecl X3DAudioCalculate(ptr ptr ptr long ptr)
+@ cdecl X3DAudioInitialize(long float ptr)
diff --git a/include/xaudio2.idl b/include/xaudio2.idl
index 58cbe0a..9d8ace2 100644
--- a/include/xaudio2.idl
+++ b/include/xaudio2.idl
@@ -1001,11 +1001,14 @@ interface IXAudio27 : IUnknown
[in, defaultvalue(NULL)] void* pReserved);
}
+/* XAudio2 2.8's IXAudio2 is identical to 2.9's */
+cpp_quote("DEFINE_GUID(IID_IXAudio28, 0x60d8dac8, 0x5aa1, 0x4e8e, 0xb5, 0x97, 0x2f, 0x5e, 0x28, 0x83, 0xd4, 0x84);")
+
[
object,
- uuid(60d8dac8-5aa1-4e8e-b597-2f5e2883d484),
+ uuid(2b02e3cf-2e0b-4ec3-be45-1b2a3fe7210d)
]
-/* XAudio2 2.8's IXAudio2 interface. */
+/* XAudio2 2.9's IXAudio2 interface. */
interface IXAudio2 : IUnknown
{
HRESULT RegisterForCallbacks([in] IXAudio2EngineCallback* pCallback);
--
2.7.0
More information about the wine-patches
mailing list