|
|
|
@ -1,6 +1,235 @@
|
|
|
|
|
diff -uhNr wine-1.5.22/dlls/winepulse.drv/Makefile.in wine-1.5.22-multimedia/dlls/winepulse.drv/Makefile.in
|
|
|
|
|
--- wine-1.5.22/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100
|
|
|
|
|
+++ wine-1.5.22-multimedia/dlls/winepulse.drv/Makefile.in 2013-01-19 19:44:17.113421704 +0100
|
|
|
|
|
--- wine-1.5.31/configure 2013-05-24 20:20:05.000000000 +0200
|
|
|
|
|
+++ wine-1.5.31-multimedia/configure 2013-05-30 07:55:57.501493755 +0200
|
|
|
|
|
@@ -649,6 +649,8 @@
|
|
|
|
|
ALSALIBS
|
|
|
|
|
GSTREAMER_LIBS
|
|
|
|
|
GSTREAMER_CFLAGS
|
|
|
|
|
+PULSEINCL
|
|
|
|
|
+PULSELIBS
|
|
|
|
|
LIBGETTEXTPO
|
|
|
|
|
ZLIB
|
|
|
|
|
FREETYPE_LIBS
|
|
|
|
|
@@ -830,6 +832,7 @@
|
|
|
|
|
with_oss
|
|
|
|
|
with_png
|
|
|
|
|
with_pthread
|
|
|
|
|
+with_pulse
|
|
|
|
|
with_sane
|
|
|
|
|
with_tiff
|
|
|
|
|
with_v4l
|
|
|
|
|
@@ -1543,6 +1546,7 @@
|
|
|
|
|
--without-oss do not use the OSS sound support
|
|
|
|
|
--without-png do not use PNG
|
|
|
|
|
--without-pthread do not use the pthread library
|
|
|
|
|
+ --without-pulse do not use PulseAudio sound support
|
|
|
|
|
--without-sane do not use SANE (scanner support)
|
|
|
|
|
--without-tiff do not use TIFF
|
|
|
|
|
--without-v4l do not use v4l1 (v4l support)
|
|
|
|
|
@@ -2761,6 +2765,12 @@
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+# Check whether --with-pulse was given.
|
|
|
|
|
+if test "${with_pulse+set}" = set; then :
|
|
|
|
|
+ withval=$with_pulse;
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
# Check whether --with-sane was given.
|
|
|
|
|
if test "${with_sane+set}" = set; then :
|
|
|
|
|
withval=$with_sane;
|
|
|
|
|
@@ -11164,6 +11174,87 @@
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
+PULSELIBS=""
|
|
|
|
|
+
|
|
|
|
|
+PULSEINCL=""
|
|
|
|
|
+
|
|
|
|
|
+if test "x$with_pulse" != "xno";
|
|
|
|
|
+then
|
|
|
|
|
+ ac_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
|
+ if test "$PKG_CONFIG" != "false";
|
|
|
|
|
+ then
|
|
|
|
|
+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`"
|
|
|
|
|
+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`"
|
|
|
|
|
+
|
|
|
|
|
+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags"
|
|
|
|
|
+ for ac_header in pulse/pulseaudio.h
|
|
|
|
|
+do :
|
|
|
|
|
+ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default"
|
|
|
|
|
+if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then :
|
|
|
|
|
+ cat >>confdefs.h <<_ACEOF
|
|
|
|
|
+#define HAVE_PULSE_PULSEAUDIO_H 1
|
|
|
|
|
+_ACEOF
|
|
|
|
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5
|
|
|
|
|
+$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; }
|
|
|
|
|
+if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then :
|
|
|
|
|
+ $as_echo_n "(cached) " >&6
|
|
|
|
|
+else
|
|
|
|
|
+ ac_check_lib_save_LIBS=$LIBS
|
|
|
|
|
+LIBS="-lpulse $ac_pulse_libs $LIBS"
|
|
|
|
|
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
|
|
|
+/* end confdefs.h. */
|
|
|
|
|
+
|
|
|
|
|
+/* Override any GCC internal prototype to avoid an error.
|
|
|
|
|
+ Use char because int might match the return type of a GCC
|
|
|
|
|
+ builtin and then its argument prototype would still apply. */
|
|
|
|
|
+#ifdef __cplusplus
|
|
|
|
|
+extern "C"
|
|
|
|
|
+#endif
|
|
|
|
|
+char pa_stream_is_corked ();
|
|
|
|
|
+int
|
|
|
|
|
+main ()
|
|
|
|
|
+{
|
|
|
|
|
+return pa_stream_is_corked ();
|
|
|
|
|
+ ;
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+_ACEOF
|
|
|
|
|
+if ac_fn_c_try_link "$LINENO"; then :
|
|
|
|
|
+ ac_cv_lib_pulse_pa_stream_is_corked=yes
|
|
|
|
|
+else
|
|
|
|
|
+ ac_cv_lib_pulse_pa_stream_is_corked=no
|
|
|
|
|
+fi
|
|
|
|
|
+rm -f core conftest.err conftest.$ac_objext \
|
|
|
|
|
+ conftest$ac_exeext conftest.$ac_ext
|
|
|
|
|
+LIBS=$ac_check_lib_save_LIBS
|
|
|
|
|
+fi
|
|
|
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5
|
|
|
|
|
+$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; }
|
|
|
|
|
+if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then :
|
|
|
|
|
+
|
|
|
|
|
+$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h
|
|
|
|
|
+
|
|
|
|
|
+ PULSELIBS="$ac_pulse_libs"
|
|
|
|
|
+ PULSEINCL="$ac_pulse_cflags"
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+done
|
|
|
|
|
+
|
|
|
|
|
+ fi
|
|
|
|
|
+ CPPFLAGS="$ac_save_CPPFLAGS"
|
|
|
|
|
+fi
|
|
|
|
|
+if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then :
|
|
|
|
|
+ case "x$with_pulse" in
|
|
|
|
|
+ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;;
|
|
|
|
|
+ xno) ;;
|
|
|
|
|
+ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.
|
|
|
|
|
+This is an error since --with-pulse was requested." "$LINENO" 5 ;;
|
|
|
|
|
+esac
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
if test "x$with_gstreamer" != "xno"
|
|
|
|
|
then
|
|
|
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
|
@@ -12244,12 +12335,13 @@
|
|
|
|
|
|
|
|
|
|
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
|
|
|
|
|
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
|
|
|
|
|
+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no}
|
|
|
|
|
test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no}
|
|
|
|
|
test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no}
|
|
|
|
|
|
|
|
|
|
-if test "x$ALSALIBS$COREAUDIO" = "x" -a \
|
|
|
|
|
+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \
|
|
|
|
|
"x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \
|
|
|
|
|
- "x$with_alsa$with_coreaudio$with_oss" != xnonono
|
|
|
|
|
+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono
|
|
|
|
|
then
|
|
|
|
|
as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent."
|
|
|
|
|
fi
|
|
|
|
|
@@ -16292,6 +16384,7 @@
|
|
|
|
|
wine_fn_config_dll wineoss.drv enable_wineoss_drv
|
|
|
|
|
wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po
|
|
|
|
|
wine_fn_config_dll wineps16.drv16 enable_win16
|
|
|
|
|
+wine_fn_config_dll winepulse.drv enable_winepulse_drv
|
|
|
|
|
wine_fn_config_dll wineqtdecoder enable_wineqtdecoder
|
|
|
|
|
wine_fn_config_dll winex11.drv enable_winex11_drv
|
|
|
|
|
wine_fn_config_dll wing.dll16 enable_win16
|
|
|
|
|
--- wine-1.5.31/configure.ac 2013-05-24 20:20:05.000000000 +0200
|
|
|
|
|
+++ wine-1.5.31-multimedia/configure.ac 2013-05-30 07:55:57.726498855 +0200
|
|
|
|
|
@@ -70,6 +70,7 @@
|
|
|
|
|
AC_ARG_WITH(png, AS_HELP_STRING([--without-png],[do not use PNG]))
|
|
|
|
|
AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]),
|
|
|
|
|
[if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi])
|
|
|
|
|
+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support]))
|
|
|
|
|
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
|
|
|
|
|
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]),
|
|
|
|
|
[if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi])
|
|
|
|
|
@@ -1544,6 +1545,30 @@
|
|
|
|
|
[GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
+dnl **** Check for PulseAudio ****
|
|
|
|
|
+AC_SUBST(PULSELIBS,"")
|
|
|
|
|
+AC_SUBST(PULSEINCL,"")
|
|
|
|
|
+if test "x$with_pulse" != "xno";
|
|
|
|
|
+then
|
|
|
|
|
+ ac_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
|
+ if test "$PKG_CONFIG" != "false";
|
|
|
|
|
+ then
|
|
|
|
|
+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`"
|
|
|
|
|
+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`"
|
|
|
|
|
+
|
|
|
|
|
+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags"
|
|
|
|
|
+ AC_CHECK_HEADERS(pulse/pulseaudio.h,
|
|
|
|
|
+ [AC_CHECK_LIB(pulse, pa_stream_is_corked,
|
|
|
|
|
+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio])
|
|
|
|
|
+ PULSELIBS="$ac_pulse_libs"
|
|
|
|
|
+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs)
|
|
|
|
|
+ ])
|
|
|
|
|
+ fi
|
|
|
|
|
+ CPPFLAGS="$ac_save_CPPFLAGS"
|
|
|
|
|
+fi
|
|
|
|
|
+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"],
|
|
|
|
|
+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.])
|
|
|
|
|
+
|
|
|
|
|
dnl **** Check for gstreamer ****
|
|
|
|
|
if test "x$with_gstreamer" != "xno"
|
|
|
|
|
then
|
|
|
|
|
@@ -1733,13 +1758,14 @@
|
|
|
|
|
dnl **** Disable unsupported winmm drivers ****
|
|
|
|
|
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
|
|
|
|
|
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
|
|
|
|
|
+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no}
|
|
|
|
|
test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no}
|
|
|
|
|
test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no}
|
|
|
|
|
|
|
|
|
|
dnl **** Check for any sound system ****
|
|
|
|
|
-if test "x$ALSALIBS$COREAUDIO" = "x" -a \
|
|
|
|
|
+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \
|
|
|
|
|
"x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \
|
|
|
|
|
- "x$with_alsa$with_coreaudio$with_oss" != xnonono
|
|
|
|
|
+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono
|
|
|
|
|
then
|
|
|
|
|
WINE_WARNING([No sound system was found. Windows applications will be silent.])
|
|
|
|
|
fi
|
|
|
|
|
@@ -3116,6 +3142,7 @@
|
|
|
|
|
WINE_CONFIG_DLL(wineoss.drv)
|
|
|
|
|
WINE_CONFIG_DLL(wineps.drv,,[install-lib,po])
|
|
|
|
|
WINE_CONFIG_DLL(wineps16.drv16,enable_win16)
|
|
|
|
|
+WINE_CONFIG_DLL(winepulse.drv)
|
|
|
|
|
WINE_CONFIG_DLL(wineqtdecoder)
|
|
|
|
|
WINE_CONFIG_DLL(winex11.drv)
|
|
|
|
|
WINE_CONFIG_DLL(wing.dll16,enable_win16)
|
|
|
|
|
--- wine-1.5.31/dlls/mmdevapi/main.c 2013-05-24 20:20:05.000000000 +0200
|
|
|
|
|
+++ wine-1.5.31-multimedia/dlls/mmdevapi/main.c 2013-05-30 07:55:57.600495999 +0200
|
|
|
|
|
@@ -110,7 +110,7 @@
|
|
|
|
|
{
|
|
|
|
|
static const WCHAR drv_value[] = {'A','u','d','i','o',0};
|
|
|
|
|
|
|
|
|
|
- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',',
|
|
|
|
|
+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',',
|
|
|
|
|
'c','o','r','e','a','u','d','i','o',0};
|
|
|
|
|
|
|
|
|
|
DriverFuncs driver;
|
|
|
|
|
diff -uhNr wine-1.5.31/dlls/winepulse.drv/Makefile.in wine-1.5.31-multimedia/dlls/winepulse.drv/Makefile.in
|
|
|
|
|
--- wine-1.5.31/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100
|
|
|
|
|
+++ wine-1.5.31-multimedia/dlls/winepulse.drv/Makefile.in 2013-05-30 07:55:57.646497041 +0200
|
|
|
|
|
@@ -0,0 +1,9 @@
|
|
|
|
|
+MODULE = winepulse.drv
|
|
|
|
|
+IMPORTS = dxguid uuid winmm user32 advapi32 ole32
|
|
|
|
@ -11,10 +240,10 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/Makefile.in wine-1.5.22-multimedia/dll
|
|
|
|
|
+ mmdevdrv.c
|
|
|
|
|
+
|
|
|
|
|
+@MAKE_DLL_RULES@
|
|
|
|
|
diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls/winepulse.drv/mmdevdrv.c
|
|
|
|
|
--- wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100
|
|
|
|
|
+++ wine-1.5.22-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-01-19 19:44:17.113421704 +0100
|
|
|
|
|
@@ -0,0 +1,3171 @@
|
|
|
|
|
diff -uhNr wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c wine-1.5.31-multimedia/dlls/winepulse.drv/mmdevdrv.c
|
|
|
|
|
--- wine-1.5.31/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100
|
|
|
|
|
+++ wine-1.5.31-multimedia/dlls/winepulse.drv/mmdevdrv.c 2013-05-30 07:55:57.646497041 +0200
|
|
|
|
|
@@ -0,0 +1,3190 @@
|
|
|
|
|
+/*
|
|
|
|
|
+ * Copyright 2011-2012 Maarten Lankhorst
|
|
|
|
|
+ * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers
|
|
|
|
@ -39,6 +268,8 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+
|
|
|
|
|
+#define NONAMELESSUNION
|
|
|
|
|
+#define COBJMACROS
|
|
|
|
|
+#define _GNU_SOURCE
|
|
|
|
|
+
|
|
|
|
|
+#include "config.h"
|
|
|
|
|
+#include <poll.h>
|
|
|
|
|
+#include <pthread.h>
|
|
|
|
@ -47,6 +278,7 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+#include <unistd.h>
|
|
|
|
|
+#include <math.h>
|
|
|
|
|
+#include <stdio.h>
|
|
|
|
|
+#include <errno.h>
|
|
|
|
|
+
|
|
|
|
|
+#include <pulse/pulseaudio.h>
|
|
|
|
|
+
|
|
|
|
@ -85,7 +317,7 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+static pa_mainloop *pulse_ml;
|
|
|
|
|
+
|
|
|
|
|
+static HANDLE pulse_thread;
|
|
|
|
|
+static pthread_mutex_t pulse_lock = PTHREAD_MUTEX_INITIALIZER;
|
|
|
|
|
+static pthread_mutex_t pulse_lock;
|
|
|
|
|
+static pthread_cond_t pulse_cond = PTHREAD_COND_INITIALIZER;
|
|
|
|
|
+static struct list g_sessions = LIST_INIT(g_sessions);
|
|
|
|
|
+
|
|
|
|
@ -110,6 +342,8 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+{
|
|
|
|
|
+ if (reason == DLL_PROCESS_ATTACH) {
|
|
|
|
|
+ HKEY key;
|
|
|
|
|
+ pthread_mutexattr_t attr;
|
|
|
|
|
+
|
|
|
|
|
+ if (RegOpenKeyW(HKEY_CURRENT_USER, pulse_keyW, &key) == ERROR_SUCCESS) {
|
|
|
|
|
+ DWORD size = sizeof(pulse_stream_volume);
|
|
|
|
|
+ RegQueryValueExW(key, pulse_streamW, 0, NULL,
|
|
|
|
@ -117,6 +351,12 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+ RegCloseKey(key);
|
|
|
|
|
+ }
|
|
|
|
|
+ DisableThreadLibraryCalls(dll);
|
|
|
|
|
+
|
|
|
|
|
+ pthread_mutexattr_init(&attr);
|
|
|
|
|
+ pthread_mutexattr_setprotocol(&attr, PTHREAD_PRIO_INHERIT);
|
|
|
|
|
+
|
|
|
|
|
+ if (pthread_mutex_init(&pulse_lock, &attr) != 0)
|
|
|
|
|
+ pthread_mutex_init(&pulse_lock, NULL);
|
|
|
|
|
+ } else if (reason == DLL_PROCESS_DETACH) {
|
|
|
|
|
+ if (pulse_thread)
|
|
|
|
|
+ SetThreadPriority(pulse_thread, 0);
|
|
|
|
@ -743,6 +983,8 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+ UINT *num, UINT *def_index)
|
|
|
|
|
+{
|
|
|
|
|
+ HRESULT hr = S_OK;
|
|
|
|
|
+ WCHAR *id;
|
|
|
|
|
+
|
|
|
|
|
+ TRACE("%d %p %p %p\n", flow, ids, num, def_index);
|
|
|
|
|
+
|
|
|
|
|
+ pthread_mutex_lock(&pulse_lock);
|
|
|
|
@ -754,16 +996,22 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+ *def_index = 0;
|
|
|
|
|
+
|
|
|
|
|
+ *ids = HeapAlloc(GetProcessHeap(), 0, sizeof(**ids));
|
|
|
|
|
+ *keys = NULL;
|
|
|
|
|
+ if (!*ids)
|
|
|
|
|
+ return E_OUTOFMEMORY;
|
|
|
|
|
+ (*ids)[0] = defaultW;
|
|
|
|
|
+
|
|
|
|
|
+ (*ids)[0] = id = HeapAlloc(GetProcessHeap(), 0, sizeof(defaultW));
|
|
|
|
|
+ *keys = HeapAlloc(GetProcessHeap(), 0, sizeof(**keys));
|
|
|
|
|
+ if (!*keys) {
|
|
|
|
|
+ if (!*keys || !id) {
|
|
|
|
|
+ HeapFree(GetProcessHeap(), 0, id);
|
|
|
|
|
+ HeapFree(GetProcessHeap(), 0, *keys);
|
|
|
|
|
+ HeapFree(GetProcessHeap(), 0, *ids);
|
|
|
|
|
+ *ids = NULL;
|
|
|
|
|
+ *keys = NULL;
|
|
|
|
|
+ return E_OUTOFMEMORY;
|
|
|
|
|
+ }
|
|
|
|
|
+ memcpy(id, defaultW, sizeof(defaultW));
|
|
|
|
|
+
|
|
|
|
|
+ if (flow == eRender)
|
|
|
|
|
+ (*keys)[0] = pulse_render_guid;
|
|
|
|
|
+ else
|
|
|
|
@ -3186,241 +3434,12 @@ diff -uhNr wine-1.5.22/dlls/winepulse.drv/mmdevdrv.c wine-1.5.22-multimedia/dlls
|
|
|
|
|
+ *out = &This->IAudioSessionManager2_iface;
|
|
|
|
|
+ return S_OK;
|
|
|
|
|
+}
|
|
|
|
|
diff -uhNr wine-1.5.22/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.22-multimedia/dlls/winepulse.drv/winepulse.drv.spec
|
|
|
|
|
--- wine-1.5.22/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100
|
|
|
|
|
+++ wine-1.5.22-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-01-19 19:44:17.113421704 +0100
|
|
|
|
|
diff -uhNr wine-1.5.31/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.31-multimedia/dlls/winepulse.drv/winepulse.drv.spec
|
|
|
|
|
--- wine-1.5.31/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100
|
|
|
|
|
+++ wine-1.5.31-multimedia/dlls/winepulse.drv/winepulse.drv.spec 2013-05-30 07:55:57.646497041 +0200
|
|
|
|
|
@@ -0,0 +1,5 @@
|
|
|
|
|
+# MMDevAPI driver functions
|
|
|
|
|
+@ stdcall -private GetPriority() AUDDRV_GetPriority
|
|
|
|
|
+@ stdcall -private GetEndpointIDs(long ptr ptr ptr ptr) AUDDRV_GetEndpointIDs
|
|
|
|
|
+@ stdcall -private GetAudioEndpoint(ptr ptr ptr) AUDDRV_GetAudioEndpoint
|
|
|
|
|
+@ stdcall -private GetAudioSessionManager(ptr ptr) AUDDRV_GetAudioSessionManager
|
|
|
|
|
--- wine-1.5.22/configure 2013-01-18 21:44:53.000000000 +0100
|
|
|
|
|
+++ wine-1.5.22-multimedia/configure 2013-01-19 19:44:16.998422193 +0100
|
|
|
|
|
@@ -649,6 +649,8 @@
|
|
|
|
|
ALSALIBS
|
|
|
|
|
GSTREAMER_INCL
|
|
|
|
|
GSTREAMER_LIBS
|
|
|
|
|
+PULSEINCL
|
|
|
|
|
+PULSELIBS
|
|
|
|
|
LIBGETTEXTPO
|
|
|
|
|
ZLIB
|
|
|
|
|
FREETYPEINCL
|
|
|
|
|
@@ -828,6 +830,7 @@
|
|
|
|
|
with_oss
|
|
|
|
|
with_png
|
|
|
|
|
with_pthread
|
|
|
|
|
+with_pulse
|
|
|
|
|
with_sane
|
|
|
|
|
with_tiff
|
|
|
|
|
with_v4l
|
|
|
|
|
@@ -1518,6 +1521,7 @@
|
|
|
|
|
--without-oss do not use the OSS sound support
|
|
|
|
|
--without-png do not use PNG
|
|
|
|
|
--without-pthread do not use the pthread library
|
|
|
|
|
+ --without-pulse do not use PulseAudio sound support
|
|
|
|
|
--without-sane do not use SANE (scanner support)
|
|
|
|
|
--without-tiff do not use TIFF
|
|
|
|
|
--without-v4l do not use v4l1 (v4l support)
|
|
|
|
|
@@ -2709,6 +2713,12 @@
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+# Check whether --with-pulse was given.
|
|
|
|
|
+if test "${with_pulse+set}" = set; then :
|
|
|
|
|
+ withval=$with_pulse;
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
# Check whether --with-sane was given.
|
|
|
|
|
if test "${with_sane+set}" = set; then :
|
|
|
|
|
withval=$with_sane;
|
|
|
|
|
@@ -10917,6 +10927,87 @@
|
|
|
|
|
fi
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
+PULSELIBS=""
|
|
|
|
|
+
|
|
|
|
|
+PULSEINCL=""
|
|
|
|
|
+
|
|
|
|
|
+if test "x$with_pulse" != "xno";
|
|
|
|
|
+then
|
|
|
|
|
+ ac_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
|
+ if test "$PKG_CONFIG" != "false";
|
|
|
|
|
+ then
|
|
|
|
|
+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`"
|
|
|
|
|
+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`"
|
|
|
|
|
+
|
|
|
|
|
+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags"
|
|
|
|
|
+ for ac_header in pulse/pulseaudio.h
|
|
|
|
|
+do :
|
|
|
|
|
+ ac_fn_c_check_header_mongrel "$LINENO" "pulse/pulseaudio.h" "ac_cv_header_pulse_pulseaudio_h" "$ac_includes_default"
|
|
|
|
|
+if test "x$ac_cv_header_pulse_pulseaudio_h" = xyes; then :
|
|
|
|
|
+ cat >>confdefs.h <<_ACEOF
|
|
|
|
|
+#define HAVE_PULSE_PULSEAUDIO_H 1
|
|
|
|
|
+_ACEOF
|
|
|
|
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pa_stream_is_corked in -lpulse" >&5
|
|
|
|
|
+$as_echo_n "checking for pa_stream_is_corked in -lpulse... " >&6; }
|
|
|
|
|
+if ${ac_cv_lib_pulse_pa_stream_is_corked+:} false; then :
|
|
|
|
|
+ $as_echo_n "(cached) " >&6
|
|
|
|
|
+else
|
|
|
|
|
+ ac_check_lib_save_LIBS=$LIBS
|
|
|
|
|
+LIBS="-lpulse $ac_pulse_libs $LIBS"
|
|
|
|
|
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
|
|
|
+/* end confdefs.h. */
|
|
|
|
|
+
|
|
|
|
|
+/* Override any GCC internal prototype to avoid an error.
|
|
|
|
|
+ Use char because int might match the return type of a GCC
|
|
|
|
|
+ builtin and then its argument prototype would still apply. */
|
|
|
|
|
+#ifdef __cplusplus
|
|
|
|
|
+extern "C"
|
|
|
|
|
+#endif
|
|
|
|
|
+char pa_stream_is_corked ();
|
|
|
|
|
+int
|
|
|
|
|
+main ()
|
|
|
|
|
+{
|
|
|
|
|
+return pa_stream_is_corked ();
|
|
|
|
|
+ ;
|
|
|
|
|
+ return 0;
|
|
|
|
|
+}
|
|
|
|
|
+_ACEOF
|
|
|
|
|
+if ac_fn_c_try_link "$LINENO"; then :
|
|
|
|
|
+ ac_cv_lib_pulse_pa_stream_is_corked=yes
|
|
|
|
|
+else
|
|
|
|
|
+ ac_cv_lib_pulse_pa_stream_is_corked=no
|
|
|
|
|
+fi
|
|
|
|
|
+rm -f core conftest.err conftest.$ac_objext \
|
|
|
|
|
+ conftest$ac_exeext conftest.$ac_ext
|
|
|
|
|
+LIBS=$ac_check_lib_save_LIBS
|
|
|
|
|
+fi
|
|
|
|
|
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pulse_pa_stream_is_corked" >&5
|
|
|
|
|
+$as_echo "$ac_cv_lib_pulse_pa_stream_is_corked" >&6; }
|
|
|
|
|
+if test "x$ac_cv_lib_pulse_pa_stream_is_corked" = xyes; then :
|
|
|
|
|
+
|
|
|
|
|
+$as_echo "#define HAVE_PULSEAUDIO 1" >>confdefs.h
|
|
|
|
|
+
|
|
|
|
|
+ PULSELIBS="$ac_pulse_libs"
|
|
|
|
|
+ PULSEINCL="$ac_pulse_cflags"
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
+done
|
|
|
|
|
+
|
|
|
|
|
+ fi
|
|
|
|
|
+ CPPFLAGS="$ac_save_CPPFLAGS"
|
|
|
|
|
+fi
|
|
|
|
|
+if test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"; then :
|
|
|
|
|
+ case "x$with_pulse" in
|
|
|
|
|
+ x) as_fn_append wine_warnings "|libpulse ${notice_platform}development files not found or too old, Pulse won't be supported." ;;
|
|
|
|
|
+ xno) ;;
|
|
|
|
|
+ *) as_fn_error $? "libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.
|
|
|
|
|
+This is an error since --with-pulse was requested." "$LINENO" 5 ;;
|
|
|
|
|
+esac
|
|
|
|
|
+fi
|
|
|
|
|
+
|
|
|
|
|
if test "x$with_gstreamer" != "xno"
|
|
|
|
|
then
|
|
|
|
|
ac_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
|
@@ -12215,12 +12306,13 @@
|
|
|
|
|
|
|
|
|
|
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
|
|
|
|
|
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
|
|
|
|
|
+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no}
|
|
|
|
|
test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no}
|
|
|
|
|
test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no}
|
|
|
|
|
|
|
|
|
|
-if test "x$ALSALIBS$COREAUDIO" = "x" -a \
|
|
|
|
|
+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \
|
|
|
|
|
"x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \
|
|
|
|
|
- "x$with_alsa$with_coreaudio$with_oss" != xnonono
|
|
|
|
|
+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono
|
|
|
|
|
then
|
|
|
|
|
as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent."
|
|
|
|
|
fi
|
|
|
|
|
@@ -16106,6 +16198,7 @@
|
|
|
|
|
wine_fn_config_dll wineoss.drv enable_wineoss_drv
|
|
|
|
|
wine_fn_config_dll wineps.drv enable_wineps_drv install-lib,po
|
|
|
|
|
wine_fn_config_dll wineps16.drv16 enable_win16
|
|
|
|
|
+wine_fn_config_dll winepulse.drv enable_winepulse_drv
|
|
|
|
|
wine_fn_config_dll wineqtdecoder enable_wineqtdecoder
|
|
|
|
|
wine_fn_config_dll winex11.drv enable_winex11_drv
|
|
|
|
|
wine_fn_config_dll wing.dll16 enable_win16
|
|
|
|
|
--- wine-1.5.22/configure.ac 2013-01-18 21:44:53.000000000 +0100
|
|
|
|
|
+++ wine-1.5.22-multimedia/configure.ac 2013-01-19 19:44:17.175421440 +0100
|
|
|
|
|
@@ -74,6 +74,7 @@
|
|
|
|
|
[if test "x$withval" = "xno"; then ac_cv_header_png_h=no; fi])
|
|
|
|
|
AC_ARG_WITH(pthread, AS_HELP_STRING([--without-pthread],[do not use the pthread library]),
|
|
|
|
|
[if test "x$withval" = "xno"; then ac_cv_header_pthread_h=no; fi])
|
|
|
|
|
+AC_ARG_WITH(pulse, AC_HELP_STRING([--without-pulse],[do not use PulseAudio sound support]))
|
|
|
|
|
AC_ARG_WITH(sane, AS_HELP_STRING([--without-sane],[do not use SANE (scanner support)]))
|
|
|
|
|
AC_ARG_WITH(tiff, AS_HELP_STRING([--without-tiff],[do not use TIFF]),
|
|
|
|
|
[if test "x$withval" = "xno"; then ac_cv_header_tiffio_h=no; fi])
|
|
|
|
|
@@ -1491,6 +1492,30 @@
|
|
|
|
|
[GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.])
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
+dnl **** Check for PulseAudio ****
|
|
|
|
|
+AC_SUBST(PULSELIBS,"")
|
|
|
|
|
+AC_SUBST(PULSEINCL,"")
|
|
|
|
|
+if test "x$with_pulse" != "xno";
|
|
|
|
|
+then
|
|
|
|
|
+ ac_save_CPPFLAGS="$CPPFLAGS"
|
|
|
|
|
+ if test "$PKG_CONFIG" != "false";
|
|
|
|
|
+ then
|
|
|
|
|
+ ac_pulse_libs="`$PKG_CONFIG --libs libpulse 2>/dev/null`"
|
|
|
|
|
+ ac_pulse_cflags="`$PKG_CONFIG --cflags-only-I libpulse 2>/dev/null`"
|
|
|
|
|
+
|
|
|
|
|
+ CPPFLAGS="$CPPFLAGS $ac_pulse_cflags"
|
|
|
|
|
+ AC_CHECK_HEADERS(pulse/pulseaudio.h,
|
|
|
|
|
+ [AC_CHECK_LIB(pulse, pa_stream_is_corked,
|
|
|
|
|
+ [AC_DEFINE(HAVE_PULSEAUDIO, 1, [Define if you have pulseaudio])
|
|
|
|
|
+ PULSELIBS="$ac_pulse_libs"
|
|
|
|
|
+ PULSEINCL="$ac_pulse_cflags"],,$ac_pulse_libs)
|
|
|
|
|
+ ])
|
|
|
|
|
+ fi
|
|
|
|
|
+ CPPFLAGS="$ac_save_CPPFLAGS"
|
|
|
|
|
+fi
|
|
|
|
|
+WINE_WARNING_WITH(pulse, [test "$ac_cv_lib_pulse_pa_stream_is_corked" != "yes"],
|
|
|
|
|
+ [libpulse ${notice_platform}development files not found or too old, Pulse won't be supported.])
|
|
|
|
|
+
|
|
|
|
|
dnl **** Check for gstreamer ****
|
|
|
|
|
if test "x$with_gstreamer" != "xno"
|
|
|
|
|
then
|
|
|
|
|
@@ -1697,13 +1722,14 @@
|
|
|
|
|
dnl **** Disable unsupported winmm drivers ****
|
|
|
|
|
test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no}
|
|
|
|
|
test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no}
|
|
|
|
|
+test -n "$PULSELIBS" || enable_winepulse_drv=${enable_winepulse_drv:-no}
|
|
|
|
|
test "x$ac_cv_member_oss_sysinfo_numaudioengines" = xyes || enable_wineoss_drv=${enable_wineoss_drv:-no}
|
|
|
|
|
test "$ac_cv_header_linux_joystick_h" = "yes" || enable_winejoystick_drv=${enable_winejoystick_drv:-no}
|
|
|
|
|
|
|
|
|
|
dnl **** Check for any sound system ****
|
|
|
|
|
-if test "x$ALSALIBS$COREAUDIO" = "x" -a \
|
|
|
|
|
+if test "x$ALSALIBS$COREAUDIO$PULSELIBS" = "x" -a \
|
|
|
|
|
"x$ac_cv_member_oss_sysinfo_numaudioengines" != xyes -a \
|
|
|
|
|
- "x$with_alsa$with_coreaudio$with_oss" != xnonono
|
|
|
|
|
+ "x$with_alsa$with_coreaudio$with_oss$with_pulse" != xnononono
|
|
|
|
|
then
|
|
|
|
|
WINE_WARNING([No sound system was found. Windows applications will be silent.])
|
|
|
|
|
fi
|
|
|
|
|
@@ -3072,6 +3098,7 @@
|
|
|
|
|
WINE_CONFIG_DLL(wineoss.drv)
|
|
|
|
|
WINE_CONFIG_DLL(wineps.drv,,[install-lib,po])
|
|
|
|
|
WINE_CONFIG_DLL(wineps16.drv16,enable_win16)
|
|
|
|
|
+WINE_CONFIG_DLL(winepulse.drv)
|
|
|
|
|
WINE_CONFIG_DLL(wineqtdecoder)
|
|
|
|
|
WINE_CONFIG_DLL(winex11.drv)
|
|
|
|
|
WINE_CONFIG_DLL(wing.dll16,enable_win16)
|
|
|
|
|
--- wine-1.5.22/dlls/mmdevapi/main.c 2013-01-18 21:44:53.000000000 +0100
|
|
|
|
|
+++ wine-1.5.22-multimedia/dlls/mmdevapi/main.c 2013-01-19 19:44:17.071421883 +0100
|
|
|
|
|
@@ -110,7 +110,7 @@
|
|
|
|
|
{
|
|
|
|
|
static const WCHAR drv_value[] = {'A','u','d','i','o',0};
|
|
|
|
|
|
|
|
|
|
- static WCHAR default_list[] = {'a','l','s','a',',','o','s','s',',',
|
|
|
|
|
+ static WCHAR default_list[] = {'p','u','l','s','e',',','a','l','s','a',',','o','s','s',',',
|
|
|
|
|
'c','o','r','e','a','u','d','i','o',0};
|
|
|
|
|
|
|
|
|
|
DriverFuncs driver;
|