From 121a69e028b98b5b976c972e10bcb1f1c90dd770 Mon Sep 17 00:00:00 2001 From: Andrew Eikum Date: Tue, 19 Jan 2016 12:29:29 -0600 Subject: [PATCH] xaudio2_9: Add xaudio2_9. Signed-off-by: Andrew Eikum Signed-off-by: Alexandre Julliard --- configure | 3 +++ 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 +++++-- 7 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 dlls/xaudio2_9/Makefile.in create mode 100644 dlls/xaudio2_9/xaudio2_9.spec diff --git a/configure b/configure index d82731ecee3..a17ad55a7ce 100755 --- a/configure +++ b/configure @@ -1408,6 +1408,7 @@ enable_xaudio2_5 enable_xaudio2_6 enable_xaudio2_7 enable_xaudio2_8 +enable_xaudio2_9 enable_xinput1_1 enable_xinput1_2 enable_xinput1_3 @@ -13720,6 +13721,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 if test "$ac_cv_header_kstat_h" = "yes" @@ -18035,6 +18037,7 @@ wine_fn_config_dll xaudio2_6 enable_xaudio2_6 clean wine_fn_config_dll xaudio2_7 enable_xaudio2_7 clean wine_fn_config_test dlls/xaudio2_7/tests xaudio2_7_test wine_fn_config_dll xaudio2_8 enable_xaudio2_8 clean +wine_fn_config_dll xaudio2_9 enable_xaudio2_9 clean wine_fn_config_dll xinput1_1 enable_xinput1_1 wine_fn_config_dll xinput1_2 enable_xinput1_2 wine_fn_config_dll xinput1_3 enable_xinput1_3 implib xinput diff --git a/configure.ac b/configure.ac index d2eac296f8e..23fee7b7b54 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 9488529a8d5..f2f7cd8530c 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 ac1b2fe8db9..4f0a11fabc4 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 00000000000..ceb2216f5a2 --- /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 00000000000..0b9f23866b3 --- /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 58cbe0af344..9d8ace2395b 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);