rpms/wine/devel adding-pulseaudio-to-winecfg-0.3.patch, NONE, 1.1 winepulse-0.29-configure.ac.patch, NONE, 1.1 winepulse-0.29.patch, NONE, 1.1 .cvsignore, 1.76, 1.77 sources, 1.77, 1.78 wine.spec, 1.109, 1.110 adding-pulseaudio-to-winecfg.patch, 1.2, NONE winepulse-0.17-configure.ac.patch, 1.1, NONE winepulse-0.28.patch, 1.1, NONE

Andreas Bierfert awjb at fedoraproject.org
Sun Jul 19 10:48:19 UTC 2009


Author: awjb

Update of /cvs/pkgs/rpms/wine/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv2207/devel

Modified Files:
	.cvsignore sources wine.spec 
Added Files:
	adding-pulseaudio-to-winecfg-0.3.patch 
	winepulse-0.29-configure.ac.patch winepulse-0.29.patch 
Removed Files:
	adding-pulseaudio-to-winecfg.patch 
	winepulse-0.17-configure.ac.patch winepulse-0.28.patch 
Log Message:
- 1.1.26-1
- version upgrade
- WinePulse 0.29
- require Xrender isa for x86_64 (#510947)


adding-pulseaudio-to-winecfg-0.3.patch:
 Bg.rc       |    1 +
 Cs.rc       |    1 +
 Da.rc       |    1 +
 De.rc       |    1 +
 En.rc       |    1 +
 Es.rc       |    1 +
 Fi.rc       |    1 +
 Fr.rc       |    1 +
 Hu.rc       |    1 +
 Ja.rc       |    1 +
 Ko.rc       |    1 +
 Nl.rc       |    1 +
 No.rc       |    1 +
 Pl.rc       |    1 +
 Pt.rc       |    1 +
 Ro.rc       |    1 +
 Ru.rc       |    1 +
 Si.rc       |    1 +
 Sv.rc       |    1 +
 Tr.rc       |    1 +
 Zh.rc       |    1 +
 audio.c     |    1 +
 libraries.c |    1 +
 resource.h  |    2 +-
 24 files changed, 24 insertions(+), 1 deletion(-)

--- NEW FILE adding-pulseaudio-to-winecfg-0.3.patch ---
diff --git a/programs/winecfg/Bg.rc b/programs/winecfg/Bg.rc
index 00cfbe8..ce2c8c7 100644
--- a/programs/winecfg/Bg.rc
+++ b/programs/winecfg/Bg.rc
@@ -277,6 +277,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Basic"
     IDS_ACCEL_EMULATION         "Emulation"
+    IDS_DRIVER_PULSE             "PulseAudio Driver"
     IDS_DRIVER_ALSA             "ALSA Driver"
     IDS_DRIVER_ESOUND           "EsounD Driver"
     IDS_DRIVER_OSS              "OSS Driver"
diff --git a/programs/winecfg/Cs.rc b/programs/winecfg/Cs.rc
index b34dd06..348153c 100644
--- a/programs/winecfg/Cs.rc
+++ b/programs/winecfg/Cs.rc
@@ -277,6 +277,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standardní"
     IDS_ACCEL_BASIC             "Základní"
     IDS_ACCEL_EMULATION         "Emulace"
+    IDS_DRIVER_PULSE             "Ovladaè PulseAudio"
     IDS_DRIVER_ALSA             "Ovladaè ALSA"
     IDS_DRIVER_ESOUND           "Ovladaè EsounD"
     IDS_DRIVER_OSS              "Ovladaè OSS"
diff --git a/programs/winecfg/Da.rc b/programs/winecfg/Da.rc
index 62b781b..a604ea3 100644
--- a/programs/winecfg/Da.rc
+++ b/programs/winecfg/Da.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Grundlæggende"
     IDS_ACCEL_EMULATION         "Emuléring"
+    IDS_DRIVER_PULSE             "PulseAudio-driver"
     IDS_DRIVER_ALSA             "ALSA-driver"
     IDS_DRIVER_ESOUND           "EsounD-driver"
     IDS_DRIVER_OSS              "OSS-driver"
diff --git a/programs/winecfg/De.rc b/programs/winecfg/De.rc
index 53c412c..8f70399 100644
--- a/programs/winecfg/De.rc
+++ b/programs/winecfg/De.rc
@@ -273,6 +273,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Einfach"
     IDS_ACCEL_EMULATION         "Emulation"
+    IDS_DRIVER_PULSE             "PulseAudio-Treiber"
     IDS_DRIVER_ALSA             "ALSA-Treiber"
     IDS_DRIVER_ESOUND           "EsounD-Treiber"
     IDS_DRIVER_OSS              "OSS-Treiber"
diff --git a/programs/winecfg/En.rc b/programs/winecfg/En.rc
index a69b4d9..2d3dc5c 100644
--- a/programs/winecfg/En.rc
+++ b/programs/winecfg/En.rc
@@ -273,6 +273,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Basic"
     IDS_ACCEL_EMULATION         "Emulation"
+    IDS_DRIVER_PULSE             "PulseAudio Driver"
     IDS_DRIVER_ALSA             "ALSA Driver"
     IDS_DRIVER_ESOUND           "EsounD Driver"
     IDS_DRIVER_OSS              "OSS Driver"
diff --git a/programs/winecfg/Es.rc b/programs/winecfg/Es.rc
index 2ddce6c..ececfe2 100644
--- a/programs/winecfg/Es.rc
+++ b/programs/winecfg/Es.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Estándar"
     IDS_ACCEL_BASIC             "Básica"
     IDS_ACCEL_EMULATION         "Emulación"
+    IDS_DRIVER_PULSE             "Manejador PulseAudio"
     IDS_DRIVER_ALSA             "Manejador ALSA"
     IDS_DRIVER_ESOUND           "Manejador EsounD"
     IDS_DRIVER_OSS              "Manejador OSS"
diff --git a/programs/winecfg/Fi.rc b/programs/winecfg/Fi.rc
index f6fb85c..ed24bf6 100644
--- a/programs/winecfg/Fi.rc
+++ b/programs/winecfg/Fi.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Basic"
     IDS_ACCEL_EMULATION         "Emulation"
+    IDS_DRIVER_PULSE             "PulseAudio Driver"
     IDS_DRIVER_ALSA             "ALSA Driver"
     IDS_DRIVER_ESOUND           "EsounD Driver"
     IDS_DRIVER_OSS              "OSS Driver"
diff --git a/programs/winecfg/Fr.rc b/programs/winecfg/Fr.rc
index b63adb1..414f440 100644
--- a/programs/winecfg/Fr.rc
+++ b/programs/winecfg/Fr.rc
@@ -275,6 +275,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Basique"
     IDS_ACCEL_EMULATION         "Émulation"
+    IDS_DRIVER_PULSE            "Pilote PulseAudio"
     IDS_DRIVER_ALSA             "Pilote ALSA"
     IDS_DRIVER_ESOUND           "Pilote EsounD"
     IDS_DRIVER_OSS              "Pilote OSS"
diff --git a/programs/winecfg/Hu.rc b/programs/winecfg/Hu.rc
index 0445c77..7756d2b 100644
--- a/programs/winecfg/Hu.rc
+++ b/programs/winecfg/Hu.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Basic"
     IDS_ACCEL_EMULATION         "Emulation"
+    IDS_DRIVER_PULSE             "PulseAudio Driver"
     IDS_DRIVER_ALSA             "ALSA Driver"
     IDS_DRIVER_ESOUND           "EsounD Driver"
     IDS_DRIVER_OSS              "OSS Driver"
diff --git a/programs/winecfg/Ja.rc b/programs/winecfg/Ja.rc
index a25a953..d690f7f 100644
--- a/programs/winecfg/Ja.rc
+++ b/programs/winecfg/Ja.rc
@@ -276,6 +276,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "標準"
     IDS_ACCEL_BASIC             "基本"
     IDS_ACCEL_EMULATION         "エミュレーション"
+    IDS_DRIVER_PULSE             "PulseAudio Driver"
     IDS_DRIVER_ALSA             "ALSA Driver"
     IDS_DRIVER_ESOUND           "EsounD Driver"
     IDS_DRIVER_OSS              "OSS Driver"
diff --git a/programs/winecfg/Ko.rc b/programs/winecfg/Ko.rc
index c01b841..5c500d5 100644
--- a/programs/winecfg/Ko.rc
+++ b/programs/winecfg/Ko.rc
@@ -275,6 +275,7 @@ BEGIN
    IDS_ACCEL_STANDARD          "Ç¥ÁØ"
    IDS_ACCEL_BASIC             "񃧯"
    IDS_ACCEL_EMULATION         "¾Ö¹Ä·¹À̼Ç"
+    IDS_DRIVER_PULSE             "PulseAudio µå¶óÀ̹ö"
    IDS_DRIVER_ALSA             "ALSA µå¶óÀ̹ö"
    IDS_DRIVER_ESOUND           "EsounD µå¶óÀ̹ö"
    IDS_DRIVER_OSS              "OSS µå¶óÀ̹ö"
diff --git a/programs/winecfg/Nl.rc b/programs/winecfg/Nl.rc
index 99062cf..2683a82 100644
--- a/programs/winecfg/Nl.rc
+++ b/programs/winecfg/Nl.rc
@@ -273,6 +273,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standaard"
     IDS_ACCEL_BASIC             "Eenvoudig"
     IDS_ACCEL_EMULATION         "Emulatie"
+    IDS_DRIVER_PULSE             "PulseAudio Stuurprogramma"
     IDS_DRIVER_ALSA             "ALSA Stuurprogramma"
     IDS_DRIVER_ESOUND           "EsounD Stuurprogramma"
     IDS_DRIVER_OSS              "OSS Stuurprogramma"
diff --git a/programs/winecfg/No.rc b/programs/winecfg/No.rc
index 357539e..b2a5eae 100644
--- a/programs/winecfg/No.rc
+++ b/programs/winecfg/No.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Grunnleggende"
     IDS_ACCEL_EMULATION         "Emulering"
+    IDS_DRIVER_PULSE             "PulseAudio-driver"
     IDS_DRIVER_ALSA             "ALSA-driver"
     IDS_DRIVER_ESOUND           "EsounD-driver"
     IDS_DRIVER_OSS              "OSS-driver"
diff --git a/programs/winecfg/Pl.rc b/programs/winecfg/Pl.rc
index 8e1d9a2..bd968de 100644
--- a/programs/winecfg/Pl.rc
+++ b/programs/winecfg/Pl.rc
@@ -274,6 +274,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standardowe"
     IDS_ACCEL_BASIC             "Podstawowe"
     IDS_ACCEL_EMULATION         "Emulacja"
+    IDS_DRIVER_PULSE             "Sterownik PulseAudio"
     IDS_DRIVER_ALSA             "Sterownik ALSA"
     IDS_DRIVER_ESOUND           "Sterownik EsounD"
     IDS_DRIVER_OSS              "Sterownik OSS"
diff --git a/programs/winecfg/Pt.rc b/programs/winecfg/Pt.rc
index e3b02a1..be5acb0 100644
--- a/programs/winecfg/Pt.rc
+++ b/programs/winecfg/Pt.rc
@@ -471,6 +471,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Padrão"
     IDS_ACCEL_BASIC             "Básico"
     IDS_ACCEL_EMULATION         "Emulação"
+    IDS_DRIVER_PULSE            "Controlador PulseAudio"
     IDS_DRIVER_ALSA             "Controlador ALSA"
     IDS_DRIVER_ESOUND           "Controlador EsounD"
     IDS_DRIVER_OSS              "Controlador OSS"
diff --git a/programs/winecfg/Ro.rc b/programs/winecfg/Ro.rc
index c836d60..50317bf 100644
--- a/programs/winecfg/Ro.rc
+++ b/programs/winecfg/Ro.rc
@@ -273,6 +273,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "De bază"
     IDS_ACCEL_EMULATION         "Emulare"
+    IDS_DRIVER_PULSE             "Driver PulseAudio"
     IDS_DRIVER_ALSA             "Driver ALSA"
     IDS_DRIVER_ESOUND           "Driver Esound"
     IDS_DRIVER_OSS              "Driver OSS"
diff --git a/programs/winecfg/Ru.rc b/programs/winecfg/Ru.rc
index 8d61413..7962c98 100644
--- a/programs/winecfg/Ru.rc
+++ b/programs/winecfg/Ru.rc
@@ -275,6 +275,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Ñòàíäàðòíîå"
     IDS_ACCEL_BASIC             "Ìèíèìàëüíîå"
     IDS_ACCEL_EMULATION         "Ýìóëÿöèÿ"
+    IDS_DRIVER_PULSE             "PulseAudio äðàéâåð"
     IDS_DRIVER_ALSA             "ALSA äðàéâåð"
     IDS_DRIVER_ESOUND           "EsounD äðàéâåð"
     IDS_DRIVER_OSS              "OSS äðàéâåð"
diff --git a/programs/winecfg/Si.rc b/programs/winecfg/Si.rc
index 87cd239..73544bb 100644
--- a/programs/winecfg/Si.rc
+++ b/programs/winecfg/Si.rc
@@ -273,6 +273,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standardno"
     IDS_ACCEL_BASIC             "Osnovno"
     IDS_ACCEL_EMULATION         "Emulacija"
+    IDS_DRIVER_PULSE             "PulseAudio gonilnik"
     IDS_DRIVER_ALSA             "ALSA gonilnik"
     IDS_DRIVER_ESOUND           "EsounD gonilnik"
     IDS_DRIVER_OSS              "OSS gonilnik"
diff --git a/programs/winecfg/Sv.rc b/programs/winecfg/Sv.rc
index 113603c..dde6ed5 100644
--- a/programs/winecfg/Sv.rc
+++ b/programs/winecfg/Sv.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standard"
     IDS_ACCEL_BASIC             "Grundläggande"
     IDS_ACCEL_EMULATION         "Emulering"
+    IDS_DRIVER_PULSE             "PulseAudio-drivrutin"
     IDS_DRIVER_ALSA             "ALSA-drivrutin"
     IDS_DRIVER_ESOUND           "EsounD-drivrutin"
     IDS_DRIVER_OSS              "OSS-drivrutin"
diff --git a/programs/winecfg/Tr.rc b/programs/winecfg/Tr.rc
index 883c0f3..4f6ecb3 100644
--- a/programs/winecfg/Tr.rc
+++ b/programs/winecfg/Tr.rc
@@ -271,6 +271,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "Standart"
     IDS_ACCEL_BASIC             "Temel"
     IDS_ACCEL_EMULATION         "Taklit"
+    IDS_DRIVER_PULSE             "PulseAudio Sürücüsü"
     IDS_DRIVER_ALSA             "ALSA Sürücüsü"
     IDS_DRIVER_ESOUND           "EsounD Sürücüsü"
     IDS_DRIVER_OSS              "OSS Sürücüsü"
diff --git a/programs/winecfg/Zh.rc b/programs/winecfg/Zh.rc
index b483cfe..8617049 100644
--- a/programs/winecfg/Zh.rc
+++ b/programs/winecfg/Zh.rc
@@ -274,6 +274,7 @@ BEGIN
     IDS_ACCEL_STANDARD          "标准"
     IDS_ACCEL_BASIC             "基本"
     IDS_ACCEL_EMULATION         "软件模拟"
+    IDS_DRIVER_PULSE             "PulseAudio 驱动"
     IDS_DRIVER_ALSA             "ALSA 驱动"
     IDS_DRIVER_ESOUND           "EsounD 驱动"
     IDS_DRIVER_OSS              "OSS 驱动"
diff --git a/programs/winecfg/audio.c b/programs/winecfg/audio.c
index 79e62f0..b9a310c 100644
--- a/programs/winecfg/audio.c
+++ b/programs/winecfg/audio.c
@@ -88,6 +88,7 @@ typedef struct
 } AUDIO_DRIVER;
 
 static const AUDIO_DRIVER sAudioDrivers[] = {
+  {IDS_DRIVER_PULSE,      "pulse"},
   {IDS_DRIVER_ALSA,      "alsa"},
   {IDS_DRIVER_OSS,       "oss"},
   {IDS_DRIVER_COREAUDIO, "coreaudio"},
diff --git a/programs/winecfg/libraries.c b/programs/winecfg/libraries.c
index 37cc12b..7c13fad 100644
--- a/programs/winecfg/libraries.c
+++ b/programs/winecfg/libraries.c
@@ -81,6 +81,7 @@ static const char * const builtin_only[] =
     "wineoss.drv",
     "wineps",
     "wineps.drv",
+    "winepulse.drv",
     "winex11.drv",
     "winmm",
     "wintab32",
diff --git a/programs/winecfg/resource.h b/programs/winecfg/resource.h
index 88c9e64..05a13de 100644
--- a/programs/winecfg/resource.h
+++ b/programs/winecfg/resource.h
@@ -186,7 +186,7 @@
 #define IDS_ACCEL_BASIC                 8302
 #define IDS_ACCEL_EMULATION             8303
 #define IDS_DRIVER_ALSA                 8304
-
+#define IDS_DRIVER_PULSE                 8305
 #define IDS_DRIVER_ESOUND               8306
 #define IDS_DRIVER_OSS                  8307
 #define IDS_DRIVER_JACK                 8308

winepulse-0.29-configure.ac.patch:
 configure.ac |   22 +++++++++++++++++++++-
 1 file changed, 21 insertions(+), 1 deletion(-)

--- NEW FILE winepulse-0.29-configure.ac.patch ---
diff --git a/configure.ac b/configure.ac
index 3b805fe..4c2b822 100644
--- a/configure.ac
+++ b/configure.ac
@@ -58,6 +58,7 @@ AC_ARG_WITH(png,       AS_HELP_STRING([--without-png],[do not use PNG]),
             [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(xcomposite,AS_HELP_STRING([--without-xcomposite],[do not use the Xcomposite extension]),
             [if test "x$withval" = "xno"; then ac_cv_header_X11_extensions_Xcomposite_h=no; fi])
@@ -1253,6 +1254,24 @@ then
     CFLAGS="$save_CFLAGS"
 fi
 
+dnl **** Check for PulseAudio ****
+if test "x$with_pulse" != "xno"; then
+    if test "$PKG_CONFIG" != "false"; then
+	AC_MSG_CHECKING([for pulseaudio >= 0.9.15])
+	if "$PKG_CONFIG" --atleast-version=0.9.15 libpulse; then
+	    have_pulseaudio="yes"
+        else
+	    have_pulseaudio="no"
+	fi
+	AC_MSG_RESULT([$have_pulseaudio])
+	if test x"$have_pulseaudio" = xyes; then
+	    ac_pulse_libs=`$PKG_CONFIG --libs libpulse`
+	    AC_DEFINE([HAVE_PULSEAUDIO], 1, [define this if you have pulseaudio])
+	    AC_SUBST(PULSELIBS, "$ac_pulse_libs")
+	fi
+    fi
+fi
+
 dnl **** Check for ALSA 1.x ****
 AC_SUBST(ALSALIBS,"")
 if test "$ac_cv_header_sys_asoundlib_h" = "yes" -o "$ac_cv_header_alsa_asoundlib_h" = "yes"
@@ -1379,7 +1398,7 @@ dnl **** Check for libodbc ****
 WINE_CHECK_SONAME(odbc,SQLConnect,,[AC_DEFINE_UNQUOTED(SONAME_LIBODBC,["libodbc.$LIBEXT"])])
 
 dnl **** Check for any sound system ****
-if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$ac_cv_lib_soname_jack" = "x" -a \
+if test "x$ALSALIBS$AUDIOIOLIBS$COREAUDIO$NASLIBS$ESDLIBS$PULSELIBS$ac_cv_lib_soname_jack" = "x" -a \
         "$ac_cv_header_sys_soundcard_h" != "yes" -a \
         "$ac_cv_header_machine_soundcard_h" != "yes" -a \
         "$ac_cv_header_soundcard_h" != "yes" -a \
@@ -2415,6 +2434,7 @@ WINE_CONFIG_MAKEFILE([dlls/winemp3.acm/Makefile],[dlls/Makedll.rules],[dlls],[AL
 WINE_CONFIG_MAKEFILE([dlls/winenas.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/wineoss.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/wineps.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
+WINE_CONFIG_MAKEFILE([dlls/winepulse.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/winequartz.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/winex11.drv/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])
 WINE_CONFIG_MAKEFILE([dlls/wing32/Makefile],[dlls/Makedll.rules],[dlls],[ALL_DLL_DIRS])

winepulse-0.29.patch:
 Makefile.in        |   15 
 pulse.c            |  788 ++++++++++++++++++++++++++++++++++++++
 wavein.c           |  595 +++++++++++++++++++++++++++++
 waveout.c          | 1075 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 winepulse.drv.spec |    3 
 winepulse.h        |  196 +++++++++
 6 files changed, 2672 insertions(+)

--- NEW FILE winepulse-0.29.patch ---
diff --git a/dlls/winepulse.drv/Makefile.in b/dlls/winepulse.drv/Makefile.in
new file mode 100644
index 0000000..c99c1da
--- /dev/null
+++ b/dlls/winepulse.drv/Makefile.in
@@ -0,0 +1,15 @@
+TOPSRCDIR = @top_srcdir@
+TOPOBJDIR = ../..
+SRCDIR    = @srcdir@
+VPATH     = @srcdir@
+MODULE    = winepulse.drv
+IMPORTS   = winmm user32 kernel32
+EXTRALIBS = @PULSELIBS@
+
+C_SRCS = waveout.c \
+         wavein.c \
+         pulse.c
+
+ at MAKE_DLL_RULES@
+
+ at DEPENDENCIES@  # everything below this line is overwritten by make depend
diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c
new file mode 100644
index 0000000..3dcb086
--- /dev/null
+++ b/dlls/winepulse.drv/pulse.c
@@ -0,0 +1,788 @@
+/*
+ * Wine Driver for PulseAudio
+ * http://pulseaudio.org/
+ *
+ * Copyright    2009 Arthur Taylor <theycallhimart at gmail.com>
+ *
+ * Contains code from other wine sound drivers.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#include "config.h"
+
+#include <stdarg.h>
+#include <stdio.h>
+
+#include "windef.h"
+#include "winbase.h"
+#include "wingdi.h"
+#include "winuser.h"
+#include "winreg.h"
+#include "mmddk.h"
+#include "ks.h"
+#include "ksguid.h"
+#include "ksmedia.h"
+
+#ifdef HAVE_UNISTD_H
+# include <unistd.h>
+#endif
+#include <poll.h>
+
+#ifdef HAVE_PULSEAUDIO
+
+#include "wine/unicode.h"
+#include "wine/debug.h"
+#include "wine/library.h"
+
+#include <winepulse.h>
+#include <pulse/pulseaudio.h>
+WINE_DEFAULT_DEBUG_CHANNEL(wave);
+
+/* These strings used only for tracing */
+const char * PULSE_getCmdString(enum win_wm_message msg) {
+    static char unknown[32];
+#define MSG_TO_STR(x) case x: return #x
+    switch(msg) {
+    MSG_TO_STR(WINE_WM_PAUSING);
+    MSG_TO_STR(WINE_WM_RESTARTING);
+    MSG_TO_STR(WINE_WM_RESETTING);
+    MSG_TO_STR(WINE_WM_HEADER);
+    MSG_TO_STR(WINE_WM_BREAKLOOP);
+    MSG_TO_STR(WINE_WM_CLOSING);
+    MSG_TO_STR(WINE_WM_STARTING);
+    MSG_TO_STR(WINE_WM_STOPPING);
+    MSG_TO_STR(WINE_WM_XRUN);
+    MSG_TO_STR(WINE_WM_FEED);
+    }
+#undef MSG_TO_STR
+    sprintf(unknown, "UNKNOWN(0x%08x)", msg);
+    return unknown;
+}
+
+/*======================================================================*
+ *          Ring Buffer Functions - copied from winealsa.drv            *
+ *======================================================================*/
+
+/* unless someone makes a wineserver kernel module, Unix pipes are faster than win32 events */
+#define USE_PIPE_SYNC
+
+#ifdef USE_PIPE_SYNC
+#define INIT_OMR(omr) do { if (pipe(omr->msg_pipe) < 0) { omr->msg_pipe[0] = omr->msg_pipe[1] = -1; } } while (0)
+#define CLOSE_OMR(omr) do { close(omr->msg_pipe[0]); close(omr->msg_pipe[1]); } while (0)
+#define SIGNAL_OMR(omr) do { int x = 0; write((omr)->msg_pipe[1], &x, sizeof(x)); } while (0)
+#define CLEAR_OMR(omr) do { int x = 0; read((omr)->msg_pipe[0], &x, sizeof(x)); } while (0)
+#define RESET_OMR(omr) do { } while (0)
+#define WAIT_OMR(omr, sleep) \
+  do { struct pollfd pfd; pfd.fd = (omr)->msg_pipe[0]; \
+       pfd.events = POLLIN; poll(&pfd, 1, sleep); } while (0)
+#else
+#define INIT_OMR(omr) do { omr->msg_event = CreateEventW(NULL, FALSE, FALSE, NULL); } while (0)
+#define CLOSE_OMR(omr) do { CloseHandle(omr->msg_event); } while (0)
+#define SIGNAL_OMR(omr) do { SetEvent((omr)->msg_event); } while (0)
+#define CLEAR_OMR(omr) do { } while (0)
+#define RESET_OMR(omr) do { ResetEvent((omr)->msg_event); } while (0)
+#define WAIT_OMR(omr, sleep) \
+  do { WaitForSingleObject((omr)->msg_event, sleep); } while (0)
+#endif
+
+#define PULSE_RING_BUFFER_INCREMENT      64
+
+/******************************************************************
+ *                  PULSE_InitRingMessage
+ *
+ * Initialize the ring of messages for passing between driver's caller
+ * and playback/record thread
+ */
+int PULSE_InitRingMessage(PULSE_MSG_RING* omr)
+{
+    omr->msg_toget = 0;
+    omr->msg_tosave = 0;
+    INIT_OMR(omr);
+    omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT;
+    omr->messages = HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,omr->ring_buffer_size * sizeof(PULSE_MSG));
+
+    InitializeCriticalSection(&omr->msg_crst);
+    omr->msg_crst.DebugInfo->Spare[0] = (DWORD_PTR)(__FILE__ ": PULSE_MSG_RING.msg_crst");
+    return 0;
+}
+
+/******************************************************************
+ *                  PULSE_DestroyRingMessage
+ *
+ */
+int PULSE_DestroyRingMessage(PULSE_MSG_RING* omr)
+{
+    CLOSE_OMR(omr);
+    HeapFree(GetProcessHeap(),0,omr->messages);
+    omr->messages = NULL;
+    omr->ring_buffer_size = PULSE_RING_BUFFER_INCREMENT;
+    omr->msg_crst.DebugInfo->Spare[0] = 0;
+    DeleteCriticalSection(&omr->msg_crst);
+    return 0;
+}
+/******************************************************************
+ *                  PULSE_ResetRingMessage
+ *
+ */
+void PULSE_ResetRingMessage(PULSE_MSG_RING* omr)
+{
+    RESET_OMR(omr);
+}
+
+/******************************************************************
+ *                  PULSE_WaitRingMessage
+ *
+ */
+void PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep)
+{
+    WAIT_OMR(omr, sleep);
+}
+
+/******************************************************************
+ *                  PULSE_AddRingMessage
+ *
+ * Inserts a new message into the ring (should be called from DriverProc derived routines)
+ */
+int PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait)
+{
+    HANDLE      hEvent = INVALID_HANDLE_VALUE;
+
+    EnterCriticalSection(&omr->msg_crst);
+    if ((omr->msg_toget == ((omr->msg_tosave + 1) % omr->ring_buffer_size)))
+    {
+        int old_ring_buffer_size = omr->ring_buffer_size;
+        omr->ring_buffer_size += PULSE_RING_BUFFER_INCREMENT;
+        omr->messages = HeapReAlloc(GetProcessHeap(),0,omr->messages, omr->ring_buffer_size * sizeof(PULSE_MSG));
+        /* Now we need to rearrange the ring buffer so that the new
+           buffers just allocated are in between omr->msg_tosave and
+           omr->msg_toget.
+        */
[...2309 lines suppressed...]
index 0000000..4a834cd
--- /dev/null
+++ b/dlls/winepulse.drv/winepulse.h
@@ -0,0 +1,196 @@
+/* Definitions for PulseAudio Wine Driver
+ *
+ * Copyright    2009 Arthur Taylor <theycallhimart at gmail.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
+#ifndef __WINE_CONFIG_H
+# error You must include config.h to use this header
+#endif
+
+#if defined(HAVE_PULSEAUDIO) && !defined(__WINEPULSE_H)
+#define __WINEPULSE_H
+
+#include "mmreg.h"
+#include "dsound.h"
+#include "dsdriver.h"
+
+#include "ks.h"
+#include "ksmedia.h"
+#include "ksguid.h"
+
+#include <pulse/pulseaudio.h>
+
+/* state diagram for waveOut writing:
+ *
+ * +---------+-------------+---------------+---------------------------------+
+ * |  state  |  function   |     event     |            new state            |
+ * +---------+-------------+---------------+---------------------------------+
+ * |         | open()      |               | STOPPED                         |
+ * | PAUSED  | write()     |               | PAUSED                          |
+ * | STOPPED | write()     | <thrd create> | PLAYING                         |
+ * | PLAYING | write()     | HEADER        | PLAYING                         |
+ * | (other) | write()     | <error>       |                                 |
+ * | (any)   | pause()     | PAUSING       | PAUSED                          |
+ * | PAUSED  | restart()   | RESTARTING    | PLAYING (if no thrd => STOPPED) |
+ * | (any)   | reset()     | RESETTING     | STOPPED                         |
+ * | (any)   | close()     | CLOSING       | CLOSED                          |
+ * +---------+-------------+---------------+---------------------------------+
+ */
+
+/* states of the playing device */
+#define WINE_WS_PLAYING         1
+#define WINE_WS_PAUSED          2
+#define WINE_WS_STOPPED         3
+#define WINE_WS_CLOSED          4
+#define WINE_WS_FAILED          5
+
+#define PULSE_ALL_FORMATS \
+        WAVE_FORMAT_1M08 |      /* Mono     11025Hz 8-bit  */\
+        WAVE_FORMAT_1M16 |      /* Mono     11025Hz 16-bit */\
+        WAVE_FORMAT_1S08 |      /* Stereo   11025Hz 8-bit  */\
+        WAVE_FORMAT_1S16 |      /* Stereo   11025Hz 16-bit */\
+        WAVE_FORMAT_2M08 |      /* Mono     22050Hz 8-bit  */\
+        WAVE_FORMAT_2M16 |      /* Mono     22050Hz 16-bit */\
+        WAVE_FORMAT_2S08 |      /* Stereo   22050Hz 8-bit  */\
+        WAVE_FORMAT_2S16 |      /* Stereo   22050Hz 16-bit */\
+        WAVE_FORMAT_4M08 |      /* Mono     44100Hz 8-bit  */\
+        WAVE_FORMAT_4M16 |      /* Mono     44100Hz 16-bit */\
+        WAVE_FORMAT_4S08 |      /* Stereo   44100Hz 8-bit  */\
+        WAVE_FORMAT_4S16 |      /* Stereo   44100Hz 16-bit */\
+        WAVE_FORMAT_48M08 |     /* Mono     48000Hz 8-bit  */\
+        WAVE_FORMAT_48S08 |     /* Stereo   48000Hz 8-bit  */\
+        WAVE_FORMAT_48M16 |     /* Mono     48000Hz 16-bit */\
+        WAVE_FORMAT_48S16 |     /* Stereo   48000Hz 16-bit */\
+        WAVE_FORMAT_96M08 |     /* Mono     96000Hz 8-bit  */\
+        WAVE_FORMAT_96S08 |     /* Stereo   96000Hz 8-bit  */\
+        WAVE_FORMAT_96M16 |     /* Mono     96000Hz 16-bit */\
+        WAVE_FORMAT_96S16       /* Stereo   96000Hz 16-bit */
+
+/* events to be sent to device */
+enum win_wm_message {
+    WINE_WM_PAUSING = WM_USER + 1, WINE_WM_RESTARTING, WINE_WM_RESETTING, WINE_WM_HEADER,
+    WINE_WM_BREAKLOOP, WINE_WM_CLOSING, WINE_WM_STARTING, WINE_WM_STOPPING, WINE_WM_XRUN, WINE_WM_FEED
+};
+
+typedef struct {
+    enum win_wm_message msg;    /* message identifier */
+    DWORD               param;  /* parameter for this message */
+    HANDLE              hEvent; /* if message is synchronous, handle of event for synchro */
+} PULSE_MSG;
+
+/* implement an in-process message ring for better performance
+ * (compared to passing thru the server)
+ * this ring will be used by the input (resp output) record (resp playback) routine
+ */
+typedef struct {
+    PULSE_MSG                   * messages;
+    int                         ring_buffer_size;
+    int                         msg_tosave;
+    int                         msg_toget;
+/* Either pipe or event is used, but that is defined in pulse.c,
+ * since this is a global header we define both here */
+    int                         msg_pipe[2];
+    HANDLE                      msg_event;
+    CRITICAL_SECTION            msg_crst;
+} PULSE_MSG_RING;
+
+typedef struct WINE_WAVEDEV WINE_WAVEDEV;
+typedef struct WINE_WAVEINST WINE_WAVEINST;
+
+/* Per-playback/record device */
+struct WINE_WAVEDEV {
+    char                interface_name[MAXPNAMELEN * 2];
+    char                *device_name;
+    pa_cvolume          volume;
+
+    union {
+        WAVEOUTCAPSW    out;
+        WAVEINCAPSW     in;
+    } caps;
+    
+    /* DirectSound stuff */
+    DSDRIVERDESC                ds_desc;
+    DSDRIVERCAPS                ds_caps;
+};
+
+/* Per-playback/record instance */
+struct WINE_WAVEINST {
+    volatile INT        state;              /* one of the WINE_WS_ manifest constants */
+    WAVEOPENDESC        waveDesc;
+    WORD                wFlags;
+
+    /* PulseAudio specific data */
+    pa_stream           *stream;            /* The PulseAudio stream */
+    const pa_timing_info *timing_info;      /* The timing info structure for the stream */
+    pa_sample_spec      sample_spec;        /* Sample spec of this stream / device */
+    pa_cvolume          volume;             /* Software volume of the stream */
+    pa_buffer_attr      buffer_attr;        /* Buffer attribute, may not be used */
+
+    /* waveIn / waveOut wavaHdr */
+    LPWAVEHDR           lpQueuePtr;         /* Start of queued WAVEHDRs (waiting to be notified) */
+    LPWAVEHDR           lpPlayPtr;          /* Start of not yet fully written buffers */
+    DWORD               dwPartialOffset;    /* Offset of not yet written bytes in lpPlayPtr */
+    LPWAVEHDR           lpLoopPtr;          /* Pointer of first buffer in loop, if any */
+    DWORD               dwLoops;            /* Private copy of loop counter */
+    DWORD               dwLastReset;        /* When the last reset occured, as pa stream time doesn't reset */
+
+    /* waveIn specific */
+    const void          *buffer;            /* Pointer to the latest data fragment for recording streams */
+    DWORD               buffer_length;      /* How large the latest data fragment is */
+    DWORD               buffer_read_offset; /* How far into latest data fragment we last read */
+
+    /* Thread communication and synchronization stuff */
+    HANDLE              hStartUpEvent;
+    HANDLE              hThread;
+    DWORD               dwThreadID;
+    PULSE_MSG_RING      msgRing;
+};
+
+/* We establish one context per instance, so make it global to the lib */
+pa_context              *PULSE_context;   /* Connection Context */
+pa_threaded_mainloop    *PULSE_ml;        /* PA Runtime information */
+
+/* WaveIn / WaveOut devices */
+WINE_WAVEDEV *WOutDev;
+WINE_WAVEDEV *WInDev;
+DWORD PULSE_WodNumDevs;
+DWORD PULSE_WidNumDevs;
+
+/* pulse.c: PulseAudio Async Callbacks */
+void    PULSE_StreamSuccessCallback(pa_stream *s, int success, void *userdata);
+void    PULSE_StreamStateCallback(pa_stream *s, void *userdata);
+void    PULSE_StreamUnderflowCallback(pa_stream *s, void *userdata);
+void    PULSE_StreamSuspendedCallback(pa_stream *s, void *userdata);
+void    PULSE_StreamMovedCallback(pa_stream *s, void *userdata);
+void    PULSE_ContextSuccessCallback(pa_context *c, int success, void *userdata);
+
+/* pulse.c: General Functions */
+void    PULSE_WaitForOperation(pa_operation *o);
+BOOL    PULSE_SetupFormat(LPWAVEFORMATEX wf, pa_sample_spec *ss);
+HRESULT PULSE_UsecToMMTime(pa_usec_t time, LPMMTIME lpTime, const pa_sample_spec *ss);
+
+/* pulse.c: Message Ring */
+int     PULSE_InitRingMessage(PULSE_MSG_RING* omr);
+int     PULSE_DestroyRingMessage(PULSE_MSG_RING* omr);
+void    PULSE_ResetRingMessage(PULSE_MSG_RING* omr);
+void    PULSE_WaitRingMessage(PULSE_MSG_RING* omr, DWORD sleep);
+int     PULSE_AddRingMessage(PULSE_MSG_RING* omr, enum win_wm_message msg, DWORD param, BOOL wait);
+int     PULSE_RetrieveRingMessage(PULSE_MSG_RING* omr, enum win_wm_message *msg, DWORD *param, HANDLE *hEvent);
+
+/* pulse.c: Tracing */
+const char * PULSE_getCmdString(enum win_wm_message msg);
+#endif


Index: .cvsignore
===================================================================
RCS file: /cvs/pkgs/rpms/wine/devel/.cvsignore,v
retrieving revision 1.76
retrieving revision 1.77
diff -u -p -r1.76 -r1.77
--- .cvsignore	10 Jul 2009 04:43:04 -0000	1.76
+++ .cvsignore	19 Jul 2009 10:47:48 -0000	1.77
@@ -1 +1 @@
-wine-1.1.25-fe.tar.bz2
+wine-1.1.26-fe.tar.bz2


Index: sources
===================================================================
RCS file: /cvs/pkgs/rpms/wine/devel/sources,v
retrieving revision 1.77
retrieving revision 1.78
diff -u -p -r1.77 -r1.78
--- sources	10 Jul 2009 04:43:04 -0000	1.77
+++ sources	19 Jul 2009 10:47:49 -0000	1.78
@@ -1 +1 @@
-e45a112c996c62d76aea3bf7de653089  wine-1.1.25-fe.tar.bz2
+7b2affded452ced2b1f45a9b7e6f24da  wine-1.1.26-fe.tar.bz2


Index: wine.spec
===================================================================
RCS file: /cvs/pkgs/rpms/wine/devel/wine.spec,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -p -r1.109 -r1.110
--- wine.spec	10 Jul 2009 04:43:04 -0000	1.109
+++ wine.spec	19 Jul 2009 10:47:49 -0000	1.110
@@ -1,5 +1,5 @@
 Name:		wine
-Version:	1.1.25
+Version:	1.1.26
 Release:	1%{?dist}
 Summary:	A Windows 16/32/64 bit emulator
 
@@ -44,9 +44,9 @@ Source300:      wine-mime-msi.desktop
 # explain how to use wine with pulseaudio
 # see http://bugs.winehq.org/show_bug.cgi?id=10495
 # and http://art.ified.ca/?page_id=40
-Patch400:       http://art.ified.ca/downloads/winepulse-0.17-configure.ac.patch
-Patch401:       http://art.ified.ca/downloads/winepulse-0.28.patch
-Patch402:	http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg.patch
+Patch400:       http://art.ified.ca/downloads/winepulse-0.29-configure.ac.patch
+Patch401:       http://art.ified.ca/downloads/winepulse-0.29.patch
+Patch402:	http://art.ified.ca/downloads/adding-pulseaudio-to-winecfg-0.3.patch
 Source402:      README-FEDORA-PULSEAUDIO
 
 
@@ -136,6 +136,8 @@ Obsoletes:      wine-arts < 0.9.34
 # fix dns resolution (#492700)
 # require both to be sure 64bit is present as well...
 Requires:       nss-mdns nss-mdns%{_isa}
+# require Xrender isa on x86_64 (#510947)
+Requires:       libXrender%{_isa}
 
 %description core
 Wine core package includes the basic wine stuff needed by all other packages.
@@ -732,6 +734,7 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/winsock.dll16
 %{_libdir}/wine/winspool.drv.so
 %{_libdir}/wine/wmi.dll.so
+%{_libdir}/wine/wmiutils.dll.so
 %{_libdir}/wine/spoolss.dll.so
 %{_libdir}/wine/winscard.dll.so
 %{_libdir}/wine/wintab32.dll.so
@@ -750,7 +753,6 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/wineps16.drv16
 %{_libdir}/wine/d3d8.dll.so
 %{_libdir}/wine/d3d9.dll.so
-%{_libdir}/wine/d3dx8.dll.so
 %{_libdir}/wine/opengl32.dll.so
 %{_libdir}/wine/wined3d.dll.so
 %{_libdir}/wine/dnsapi.dll.so
@@ -917,6 +919,12 @@ update-desktop-database &>/dev/null || :
 %{_libdir}/wine/wineoss.drv.so
 
 %changelog
+* Sat Jul 18 2009 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
+- 1.1.26-1
+- version upgrade
+- WinePulse 0.29
+- require Xrender isa for x86_64 (#510947)
+
 * Thu Jul 09 2009 Andreas Bierfert <andreas.bierfert[AT]lowlatency.de>
 - 1.1.25-1
 - version upgrade (#509648)


--- adding-pulseaudio-to-winecfg.patch DELETED ---


--- winepulse-0.17-configure.ac.patch DELETED ---


--- winepulse-0.28.patch DELETED ---




More information about the fedora-extras-commits mailing list