[PATCHv2] xaudio2: Use new features from FAudio 19.06 (but keep compatibility for <=19.05)
elee at codeweavers.com
elee at codeweavers.com
Thu May 23 12:01:31 CDT 2019
From: Ethan Lee <elee at codeweavers.com>
Signed-off-by: Ethan Lee <elee at codeweavers.com>
---
configure.ac | 4 ++++
dlls/xaudio2_7/x3daudio.c | 6 ++++++
dlls/xaudio2_7/xaudio_dll.c | 6 +++++-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index ae8e85b356..c477796caf 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1690,6 +1690,10 @@ then
WINE_PACKAGE_FLAGS(FAUDIO,[faudio],[-lFAudio],,,
[AC_CHECK_HEADERS([FAudio.h],
[WINE_CHECK_SONAME(FAudio,FAudioCreate,,,[$FAUDIO_LIBS],[[libFAudio*]])])])
+ WINE_CHECK_LIB_FUNCS(\
+ FAudio_CommitOperationSet \
+ F3DAudioInitialize8,
+ [$FAUDIO_LIBS])
fi
WINE_NOTICE_WITH(faudio,[test "x$ac_cv_lib_soname_FAudio" = "x"],
[libFAudio ${notice_platform}development files not found, XAudio2 won't be supported.])
diff --git a/dlls/xaudio2_7/x3daudio.c b/dlls/xaudio2_7/x3daudio.c
index ee3367e092..5bc7c8473c 100644
--- a/dlls/xaudio2_7/x3daudio.c
+++ b/dlls/xaudio2_7/x3daudio.c
@@ -17,6 +17,8 @@
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
+#include "config.h"
+
#include <stdarg.h>
#include "windef.h"
@@ -51,8 +53,12 @@ HRESULT CDECL X3DAudioInitialize(UINT32 chanmask, float speedofsound,
X3DAUDIO_HANDLE handle)
{
TRACE("0x%x, %f, %p\n", chanmask, speedofsound, handle);
+#ifdef HAVE_F3DAUDIOINITIALIZE8
+ return F3DAudioInitialize8(chanmask, speedofsound, handle);
+#else
F3DAudioInitialize(chanmask, speedofsound, handle);
return S_OK;
+#endif
}
#endif /* XAUDIO2_VER >= 8 */
diff --git a/dlls/xaudio2_7/xaudio_dll.c b/dlls/xaudio2_7/xaudio_dll.c
index da21cc0353..70889176a4 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -1796,9 +1796,13 @@ static HRESULT WINAPI IXAudio2Impl_CommitChanges(IXAudio2 *iface,
{
IXAudio2Impl *This = impl_from_IXAudio2(iface);
- TRACE("(%p)->(0x%x): stub!\n", This, operationSet);
+ TRACE("(%p)->(0x%x)\n", This, operationSet);
+#ifdef HAVE_FAUDIO_COMMITOPERATIONSET
+ return FAudio_CommitOperationSet(This->faudio, operationSet);
+#else
return FAudio_CommitChanges(This->faudio);
+#endif
}
static void WINAPI IXAudio2Impl_GetPerformanceData(IXAudio2 *iface,
--
2.21.0
More information about the wine-devel
mailing list