[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