Ethan Lee : xaudio2: Use new features from FAudio 19.06 ( but keep compatibility for <=19.05).
Alexandre Julliard
julliard at winehq.org
Thu May 23 16:04:39 CDT 2019
Module: wine
Branch: master
Commit: d341efeff071532801fdc224062eb9e60dc5aea0
URL: https://source.winehq.org/git/wine.git/?a=commit;h=d341efeff071532801fdc224062eb9e60dc5aea0
Author: Ethan Lee <elee at codeweavers.com>
Date: Thu May 23 13:01:31 2019 -0400
xaudio2: Use new features from FAudio 19.06 (but keep compatibility for <=19.05).
Signed-off-by: Ethan Lee <elee at codeweavers.com>
Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
configure | 17 +++++++++++++++++
configure.ac | 4 ++++
dlls/xaudio2_7/x3daudio.c | 6 ++++++
dlls/xaudio2_7/xaudio_dll.c | 6 +++++-
include/config.h.in | 6 ++++++
5 files changed, 38 insertions(+), 1 deletion(-)
diff --git a/configure b/configure
index c206e8d..2ad2639 100755
--- a/configure
+++ b/configure
@@ -14966,6 +14966,23 @@ CPPFLAGS=$ac_save_CPPFLAGS
test -z "$FAUDIO_CFLAGS" || FAUDIO_CFLAGS=`echo " $FAUDIO_CFLAGS" | sed 's/ -I\([^/]\)/ -I\$(top_builddir)\/\1/g'`
test -z "$FAUDIO_LIBS" || FAUDIO_LIBS=`echo " $FAUDIO_LIBS" | sed 's/ -L\([^/]\)/ -L\$(top_builddir)\/\1/g'`
+ ac_wine_check_funcs_save_LIBS="$LIBS"
+LIBS="$LIBS $FAUDIO_LIBS"
+for ac_func in \
+ FAudio_CommitOperationSet \
+ F3DAudioInitialize8
+do :
+ as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`
+ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var"
+if eval test \"x\$"$as_ac_var"\" = x"yes"; then :
+ cat >>confdefs.h <<_ACEOF
+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1
+_ACEOF
+
+fi
+done
+
+LIBS="$ac_wine_check_funcs_save_LIBS"
fi
if test "x$ac_cv_lib_soname_FAudio" = "x"; then :
case "x$with_faudio" in
diff --git a/configure.ac b/configure.ac
index 83a8181..f548e3e 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 ee3367e..5bc7c84 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 70ba243..f135642 100644
--- a/dlls/xaudio2_7/xaudio_dll.c
+++ b/dlls/xaudio2_7/xaudio_dll.c
@@ -1797,9 +1797,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,
diff --git a/include/config.h.in b/include/config.h.in
index 774e9ee..ce5c157 100644
--- a/include/config.h.in
+++ b/include/config.h.in
@@ -146,9 +146,15 @@
/* Define to 1 if you have the `expm1f' function. */
#undef HAVE_EXPM1F
+/* Define to 1 if you have the `F3DAudioInitialize8' function. */
+#undef HAVE_F3DAUDIOINITIALIZE8
+
/* Define to 1 if you have the `fallocate' function. */
#undef HAVE_FALLOCATE
+/* Define to 1 if you have the `FAudio_CommitOperationSet' function. */
+#undef HAVE_FAUDIO_COMMITOPERATIONSET
+
/* Define to 1 if you have the <FAudio.h> header file. */
#undef HAVE_FAUDIO_H
More information about the wine-cvs
mailing list