diff --git a/.gitignore b/.gitignore index 6ea484e..c1dfe30 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ /wine-1.4.tar.bz2 /wine-1.4.tar.bz2.sign -/wine-1.5.15.tar.bz2 -/wine-1.5.15.tar.bz2.sign +/wine-1.5.16.tar.bz2 +/wine-1.5.16.tar.bz2.sign diff --git a/sources b/sources index 6cd3baa..81f7320 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -41728374d14d0f13552250c70c0d40d2 wine-1.5.15.tar.bz2 -6d8a5749f3f7d45340fc9e43e906c238 wine-1.5.15.tar.bz2.sign +cece715b6ff812e2cd76b7462f3fb582 wine-1.5.16.tar.bz2 +a087f0703a1778e82a73dfaa729a7aad wine-1.5.16.tar.bz2.sign diff --git a/wine-pulse-1.5.4.patch b/wine-pulse-1.5.16.patch similarity index 94% rename from wine-pulse-1.5.4.patch rename to wine-pulse-1.5.16.patch index 54e7f0d..40c7da7 100644 --- a/wine-pulse-1.5.4.patch +++ b/wine-pulse-1.5.16.patch @@ -1,7 +1,26 @@ -diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure ---- wine-1.5.4.old/configure 2012-05-11 21:08:09.000000000 +0300 -+++ wine-1.5.4/configure 2012-05-23 12:37:16.166737017 +0300 -@@ -629,6 +629,8 @@ +diff -uNr wine-1.5.16.orig/configure wine-1.5.16/configure +--- wine-1.5.16.orig/configure 2012-10-28 11:24:58.288429351 +0100 ++++ wine-1.5.16/configure 2012-10-28 11:32:47.643026610 +0100 +@@ -1,6 +1,6 @@ + #! /bin/sh + # Guess values for system-dependent variables and create Makefiles. +-# Generated by GNU Autoconf 2.69 for Wine 1.5.16. ++# Generated by GNU Autoconf 2.69 for Wine 1.5.15. + # + # Report bugs to . + # +@@ -580,8 +580,8 @@ + # Identity of this package. + PACKAGE_NAME='Wine' + PACKAGE_TARNAME='wine' +-PACKAGE_VERSION='1.5.16' +-PACKAGE_STRING='Wine 1.5.16' ++PACKAGE_VERSION='1.5.15' ++PACKAGE_STRING='Wine 1.5.15' + PACKAGE_BUGREPORT='wine-devel@winehq.org' + PACKAGE_URL='http://www.winehq.org' + +@@ -649,6 +649,8 @@ ALSALIBS GSTREAMER_INCL GSTREAMER_LIBS @@ -10,7 +29,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure LIBGETTEXTPO ZLIB FREETYPEINCL -@@ -805,6 +807,7 @@ +@@ -826,6 +828,7 @@ with_oss with_png with_pthread @@ -18,7 +37,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure with_sane with_tiff with_v4l -@@ -1495,6 +1498,7 @@ +@@ -1400,7 +1403,7 @@ + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +-\`configure' configures Wine 1.5.16 to adapt to many kinds of systems. ++\`configure' configures Wine 1.5.15 to adapt to many kinds of systems. + + Usage: $0 [OPTION]... [VAR=VALUE]... + +@@ -1469,7 +1472,7 @@ + + if test -n "$ac_init_help"; then + case $ac_init_help in +- short | recursive ) echo "Configuration of Wine 1.5.16:";; ++ short | recursive ) echo "Configuration of Wine 1.5.15:";; + esac + cat <<\_ACEOF + +@@ -1516,6 +1519,7 @@ --without-oss do not use the OSS sound support --without-png do not use PNG --without-pthread do not use the pthread library @@ -26,7 +63,25 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure --without-sane do not use SANE (scanner support) --without-tiff do not use TIFF --without-v4l do not use v4l1 (v4l support) -@@ -2679,6 +2683,12 @@ +@@ -1616,7 +1620,7 @@ + test -n "$ac_init_help" && exit $ac_status + if $ac_init_version; then + cat <<\_ACEOF +-Wine configure 1.5.16 ++Wine configure 1.5.15 + generated by GNU Autoconf 2.69 + + Copyright (C) 2012 Free Software Foundation, Inc. +@@ -2134,7 +2138,7 @@ + This file contains any messages produced by compilers while + running configure, to aid debugging if configure makes a mistake. + +-It was created by Wine $as_me 1.5.16, which was ++It was created by Wine $as_me 1.5.15, which was + generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ +@@ -2707,6 +2711,12 @@ fi @@ -39,7 +94,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure # Check whether --with-sane was given. if test "${with_sane+set}" = set; then : withval=$with_sane; -@@ -10639,6 +10649,87 @@ +@@ -10807,6 +10817,87 @@ fi fi @@ -127,7 +182,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure if test "x$with_gstreamer" != "xno" then ac_save_CPPFLAGS="$CPPFLAGS" -@@ -11898,12 +11989,13 @@ +@@ -12066,12 +12157,13 @@ test -n "$ALSALIBS" || enable_winealsa_drv=${enable_winealsa_drv:-no} test -n "$COREAUDIO" || enable_winecoreaudio_drv=${enable_winecoreaudio_drv:-no} @@ -143,7 +198,7 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure then as_fn_append wine_warnings "|No sound system was found. Windows applications will be silent." fi -@@ -15430,6 +15522,7 @@ +@@ -15832,6 +15924,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 @@ -151,10 +206,28 @@ diff -uNr wine-1.5.4.old/configure wine-1.5.4/configure wine_fn_config_dll wineqtdecoder enable_wineqtdecoder wine_fn_config_dll winequartz.drv enable_winequartz_drv wine_fn_config_dll winex11.drv enable_winex11_drv -diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac ---- wine-1.5.4.old/configure.ac 2012-05-11 21:08:09.000000000 +0300 -+++ wine-1.5.4/configure.ac 2012-05-23 12:38:20.969468598 +0300 -@@ -74,6 +74,7 @@ +@@ -16588,7 +16681,7 @@ + # report actual input values of CONFIG_FILES etc. instead of their + # values after options handling. + ac_log=" +-This file was extended by Wine $as_me 1.5.16, which was ++This file was extended by Wine $as_me 1.5.15, which was + generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES +@@ -16659,7 +16752,7 @@ + cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" + ac_cs_version="\\ +-Wine config.status 1.5.16 ++Wine config.status 1.5.15 + configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +diff -uNr wine-1.5.16.orig/configure.ac wine-1.5.16/configure.ac +--- wine-1.5.16.orig/configure.ac 2012-10-28 11:24:58.766394415 +0100 ++++ wine-1.5.16/configure.ac 2012-10-28 11:32:49.545887232 +0100 +@@ -76,6 +76,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]) @@ -162,7 +235,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac 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]) -@@ -1482,6 +1483,30 @@ +@@ -1512,6 +1513,30 @@ [GetText ${notice_platform}development files not found (or too old), po files can't be rebuilt.]) fi @@ -193,7 +266,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac dnl **** Check for gstreamer **** if test "x$with_gstreamer" != "xno" then -@@ -1688,13 +1713,14 @@ +@@ -1718,13 +1743,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} @@ -210,7 +283,7 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac then WINE_WARNING([No sound system was found. Windows applications will be silent.]) fi -@@ -2918,6 +2944,7 @@ +@@ -3055,6 +3081,7 @@ WINE_CONFIG_DLL(wineoss.drv) WINE_CONFIG_DLL(wineps.drv,,[install-lib,po]) WINE_CONFIG_DLL(wineps16.drv16,enable_win16) @@ -218,21 +291,9 @@ diff -uNr wine-1.5.4.old/configure.ac wine-1.5.4/configure.ac WINE_CONFIG_DLL(wineqtdecoder) WINE_CONFIG_DLL(winequartz.drv) WINE_CONFIG_DLL(winex11.drv) -diff -uNr wine-1.5.4.old/dlls/mmdevapi/main.c wine-1.5.4/dlls/mmdevapi/main.c ---- wine-1.5.4.old/dlls/mmdevapi/main.c 2012-05-11 21:08:09.000000000 +0300 -+++ wine-1.5.4/dlls/mmdevapi/main.c 2012-05-23 12:13:41.597012820 +0300 -@@ -111,7 +111,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 -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepulse.drv/Makefile.in ---- wine-1.5.4.old/dlls/winepulse.drv/Makefile.in 1970-01-01 02:00:00.000000000 +0200 -+++ wine-1.5.4/dlls/winepulse.drv/Makefile.in 2012-05-23 12:03:21.068645000 +0300 +diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in wine-1.5.16/dlls/winepulse.drv/Makefile.in +--- wine-1.5.16.orig/dlls/winepulse.drv/Makefile.in 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.16/dlls/winepulse.drv/Makefile.in 2012-10-28 11:31:38.175116035 +0100 @@ -0,0 +1,9 @@ +MODULE = winepulse.drv +IMPORTS = dxguid uuid winmm user32 advapi32 ole32 @@ -243,10 +304,10 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/Makefile.in wine-1.5.4/dlls/winepuls + mmdevdrv.c + +@MAKE_DLL_RULES@ -diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c ---- wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 02:00:00.000000000 +0200 -+++ wine-1.5.4/dlls/winepulse.drv/mmdevdrv.c 2012-05-23 12:03:21.069645000 +0300 -@@ -0,0 +1,3101 @@ +diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c +--- wine-1.5.16.orig/dlls/winepulse.drv/mmdevdrv.c 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.16/dlls/winepulse.drv/mmdevdrv.c 2012-10-28 11:31:38.176115962 +0100 +@@ -0,0 +1,3098 @@ +/* + * Copyright 2011-2012 Maarten Lankhorst + * Copyright 2010-2011 Maarten Lankhorst for CodeWeavers @@ -331,7 +392,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + 'W','i','n','e','\\','P','u','l','s','e',0}; +const WCHAR pulse_streamW[] = { 'S','t','r','e','a','m','V','o','l',0 }; + -+static GUID pulse_render_guid = ++static GUID pulse_render_guid = +{ 0xfd47d9cc, 0x4218, 0x4135, { 0x9c, 0xe2, 0x0c, 0x19, 0x5c, 0x87, 0x40, 0x5b } }; +static GUID pulse_capture_guid = +{ 0x25da76d0, 0x033c, 0x4235, { 0x90, 0x02, 0x19, 0xf4, 0x88, 0x94, 0xac, 0x6f } }; @@ -350,6 +411,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + } + DisableThreadLibraryCalls(dll); + } else if (reason == DLL_PROCESS_DETACH) { ++ if (pulse_thread) ++ SetThreadPriority(pulse_thread, 0); + if (pulse_ctx) { + pa_context_disconnect(pulse_ctx); + pa_context_unref(pulse_ctx); @@ -423,7 +486,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + pa_channel_map map; + + INT64 clock_lastpos, clock_written; -+ pa_usec_t clock_pulse; + + AudioSession *session; + AudioSessionWrapper *session_wrapper; @@ -772,7 +834,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +static void pulse_wr_callback(pa_stream *s, size_t bytes, void *userdata) +{ + ACImpl *This = userdata; -+ pa_usec_t time; + UINT32 oldpad = This->pad; + + if (bytes < This->bufsize_bytes) @@ -782,13 +843,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + + assert(oldpad >= This->pad); + -+ if (0 && This->pad && pa_stream_get_time(This->stream, &time) >= 0) -+ This->clock_pulse = time; -+ else -+ This->clock_pulse = PA_USEC_INVALID; -+ + This->clock_written += oldpad - This->pad; -+ TRACE("New pad: %u (-%u)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); ++ TRACE("New pad: %zu (-%zu)\n", This->pad / pa_frame_size(&This->ss), (oldpad - This->pad) / pa_frame_size(&This->ss)); + + if (This->event) + SetEvent(This->event); @@ -796,8 +852,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + +static void pulse_underflow_callback(pa_stream *s, void *userdata) +{ -+ ACImpl *This = userdata; -+ This->clock_pulse = PA_USEC_INVALID; + WARN("Underflow\n"); +} + @@ -815,15 +869,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + +static void pulse_started_callback(pa_stream *s, void *userdata) +{ -+ ACImpl *This = userdata; -+ pa_usec_t time; -+ + TRACE("(Re)started playing\n"); -+ assert(This->clock_pulse == PA_USEC_INVALID); -+ if (0 && pa_stream_get_time(This->stream, &time) >= 0) -+ This->clock_pulse = time; -+ if (This->event) -+ SetEvent(This->event); +} + +static void pulse_rd_loop(ACImpl *This, size_t bytes) @@ -832,7 +878,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + ACPacket *p, *next; + LARGE_INTEGER stamp, freq; + BYTE *dst, *src; -+ UINT32 src_len, copy, rem = This->capture_period; ++ size_t src_len, copy, rem = This->capture_period; + if (!(p = (ACPacket*)list_head(&This->packet_free_head))) { + p = (ACPacket*)list_head(&This->packet_filled_head); + if (!p->discont) { @@ -884,7 +930,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +static void pulse_rd_drop(ACImpl *This, size_t bytes) +{ + while (bytes >= This->capture_period) { -+ UINT32 src_len, copy, rem = This->capture_period; ++ size_t src_len, copy, rem = This->capture_period; + while (rem) { + const void *src; + pa_stream_peek(This->stream, &src, &src_len); @@ -914,7 +960,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +{ + ACImpl *This = userdata; + -+ TRACE("Readable total: %u, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); ++ TRACE("Readable total: %zu, fragsize: %u\n", bytes, pa_stream_get_buffer_attr(s)->fragsize); + assert(bytes >= This->peek_ofs); + bytes -= This->peek_ofs; + if (bytes < This->capture_period) @@ -1074,7 +1120,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + This->IAudioStreamVolume_iface.lpVtbl = &AudioStreamVolume_Vtbl; + This->dataflow = dataflow; + This->parent = dev; -+ This->clock_pulse = PA_USEC_INVALID; + for (i = 0; i < PA_CHANNELS_MAX; ++i) + This->vol[i] = 1.f; + IMMDevice_AddRef(This->parent); @@ -1458,9 +1503,25 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + goto exit; + + if (mode == AUDCLNT_SHAREMODE_SHARED) { -+ period = pulse_def_period[This->dataflow == eCapture]; ++ REFERENCE_TIME def = pulse_def_period[This->dataflow == eCapture]; ++ REFERENCE_TIME min = pulse_min_period[This->dataflow == eCapture]; ++ ++ /* Switch to low latency mode if below 2 default periods, ++ * which is 20 ms by default, this will increase the amount ++ * of interrupts but allows very low latency. In dsound I ++ * managed to get a total latency of ~8ms, which is well below ++ * default ++ */ ++ if (duration < 2 * def) ++ period = min; ++ else ++ period = def; + if (duration < 2 * period) + duration = 2 * period; ++ ++ /* Uh oh, really low latency requested.. */ ++ if (duration <= 2 * period) ++ period /= 2; + } + period_bytes = pa_frame_size(&This->ss) * MulDiv(period, This->ss.rate, 10000000); + @@ -1769,7 +1830,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + pthread_mutex_unlock(&pulse_lock); + return AUDCLNT_E_NOT_STOPPED; + } -+ This->clock_pulse = PA_USEC_INVALID; + + if (pa_stream_is_corked(This->stream)) { + o = pa_stream_cork(This->stream, 0, pulse_op_cb, &success); @@ -1825,7 +1885,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + } + if (SUCCEEDED(hr)) { + This->started = FALSE; -+ This->clock_pulse = PA_USEC_INVALID; + } + pthread_mutex_unlock(&pulse_lock); + return hr; @@ -2023,7 +2082,8 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + UINT32 frames, BYTE **data) +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); -+ UINT32 avail, pad, req, bytes = frames * pa_frame_size(&This->ss); ++ size_t avail, req, bytes = frames * pa_frame_size(&This->ss); ++ UINT32 pad; + HRESULT hr = S_OK; + int ret = -1; + @@ -2048,7 +2108,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + avail = This->bufsize_frames - pad; + if (avail < frames || bytes > This->bufsize_bytes) { + pthread_mutex_unlock(&pulse_lock); -+ WARN("Wanted to write %u, but only %u available\n", frames, avail); ++ WARN("Wanted to write %u, but only %zu available\n", frames, avail); + return AUDCLNT_E_BUFFER_TOO_LARGE; + } + @@ -2056,7 +2116,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + req = bytes; + ret = pa_stream_begin_write(This->stream, &This->locked_ptr, &req); + if (ret < 0 || req < bytes) { -+ FIXME("%p Not using pulse locked data: %i %u/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); ++ FIXME("%p Not using pulse locked data: %i %zu/%u %u/%u\n", This, ret, req/pa_frame_size(&This->ss), frames, pad, This->bufsize_frames); + if (ret >= 0) + pa_stream_cancel_write(This->stream); + *data = This->tmp_buffer; @@ -2072,6 +2132,7 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse +{ + ACImpl *This = impl_from_IAudioRenderClient(iface); + UINT32 written_bytes = written_frames * pa_frame_size(&This->ss); ++// UINT32 period; + + TRACE("(%p)->(%u, %x)\n", This, written_frames, flags); + @@ -2104,8 +2165,13 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + pa_stream_write(This->stream, This->tmp_buffer, written_bytes, NULL, 0, PA_SEEK_RELATIVE); + This->pad += written_bytes; + This->locked_ptr = NULL; -+ TRACE("Released %u, pad %u\n", written_frames, This->pad / pa_frame_size(&This->ss)); ++ TRACE("Released %u, pad %zu\n", written_frames, This->pad / pa_frame_size(&This->ss)); + assert(This->pad <= This->bufsize_bytes); ++ ++// period = pa_stream_get_buffer_attr(This->stream)->minreq; ++ /* Require a minimum of 3 periods filled, if possible */ ++// if (This->event && This->pad + period <= This->bufsize_bytes && This->pad < period * 3) ++// SetEvent(This->event); + pthread_mutex_unlock(&pulse_lock); + return S_OK; +} @@ -2312,7 +2378,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + UINT64 *qpctime) +{ + ACImpl *This = impl_from_IAudioClock(iface); -+ pa_usec_t time; + HRESULT hr; + + TRACE("(%p)->(%p, %p)\n", This, pos, qpctime); @@ -2328,13 +2393,6 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + } + + *pos = This->clock_written; -+ if (This->clock_pulse != PA_USEC_INVALID && pa_stream_get_time(This->stream, &time) >= 0) { -+ UINT32 delta = pa_usec_to_bytes(time - This->clock_pulse, &This->ss); -+ if (delta < This->pad) -+ *pos += delta; -+ else -+ *pos += This->pad; -+ } + + /* Make time never go backwards */ + if (*pos < This->clock_lastpos) @@ -3348,9 +3406,9 @@ diff -uNr wine-1.5.4.old/dlls/winepulse.drv/mmdevdrv.c wine-1.5.4/dlls/winepulse + *out = &This->IAudioSessionManager2_iface; + return S_OK; +} -diff -uNr wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec ---- wine-1.5.4.old/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 02:00:00.000000000 +0200 -+++ wine-1.5.4/dlls/winepulse.drv/winepulse.drv.spec 2012-05-23 12:03:21.069645000 +0300 +diff -uNr wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec +--- wine-1.5.16.orig/dlls/winepulse.drv/winepulse.drv.spec 1970-01-01 01:00:00.000000000 +0100 ++++ wine-1.5.16/dlls/winepulse.drv/winepulse.drv.spec 2012-10-28 11:31:38.176115962 +0100 @@ -0,0 +1,5 @@ +# MMDevAPI driver functions +@ stdcall -private GetPriority() AUDDRV_GetPriority diff --git a/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch new file mode 100644 index 0000000..aba3925 --- /dev/null +++ b/wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch @@ -0,0 +1,29 @@ +From 8045bdbc879ec70776427f744f30476cc2b469a4 Mon Sep 17 00:00:00 2001 +From: Maarten Lankhorst +Date: Fri, 26 Oct 2012 19:04:00 +0200 +Subject: [PATCH] winmm: Load winealsa if winepulse is found + +Fixes midi on winepulse +--- + dlls/winmm/lolvldrv.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/dlls/winmm/lolvldrv.c b/dlls/winmm/lolvldrv.c +index f387323..3b1be27 100644 +--- a/dlls/winmm/lolvldrv.c ++++ b/dlls/winmm/lolvldrv.c +@@ -543,7 +543,10 @@ static void MMDRV_Init(void) + drvA = HeapAlloc(GetProcessHeap(), 0, size); + WideCharToMultiByte(CP_ACP, 0, pv.u.pwszVal, -1, drvA, size, NULL, NULL); + +- MMDRV_Install(drvA, drvA, FALSE); ++ if (!strcasecmp(drvA, "winepulse.drv")) ++ MMDRV_Install("winealsa.drv", "winealsa.drv", 0); ++ else ++ MMDRV_Install(drvA, drvA, FALSE); + + HeapFree(GetProcessHeap(), 0, drvA); + PropVariantClear(&pv); +-- +1.7.11.7 + diff --git a/wine.spec b/wine.spec index 9bf3e12..8920a50 100644 --- a/wine.spec +++ b/wine.spec @@ -1,9 +1,9 @@ %global no64bit 0 %global winegecko 1.8 -%global winemono 0.0.4 +%global winemono 0.0.8 Name: wine -Version: 1.5.15 +Version: 1.5.16 Release: 1%{?dist} Summary: A compatibility layer for windows applications @@ -54,9 +54,12 @@ Source502: wine-README-tahoma Patch511: wine-cjk.patch -# winepulse backend +## winepulse backend # http://repo.or.cz/w/wine/multimedia.git -Patch1001: wine-pulse-1.5.4.patch +# last change Fri, 26 Oct 2012 17:16:03 +0000 +Patch1001: wine-pulse-1.5.16.patch +# use winealsa for midi in the pa backend +Patch1002: wine-pulse-winmm-Load-winealsa-if-winepulse-is-found.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -210,6 +213,13 @@ Requires: nss-mdns(x86-32) Requires: gnutls(x86-32) Requires: libXrender(x86-32) Requires: libXcursor(x86-32) + +%if 0%{?fedora} >= 18 +Requires: openssl-libs(x86-32) +%else +Requires: openssl(x86-32) +%endif + %endif %ifarch x86_64 @@ -218,6 +228,13 @@ Requires: nss-mdns(x86-64) Requires: gnutls(x86-64) Requires: libXrender(x86-64) Requires: libXcursor(x86-64) + +%if 0%{?fedora} >= 18 +Requires: openssl-libs(x86-64) +%else +Requires: openssl(x86-64) +%endif + %endif %ifarch %{arm} @@ -226,6 +243,13 @@ Requires: nss-mdns Requires: gnutls Requires: libXrender Requires: libXcursor + +%if 0%{?fedora} >= 18 +Requires: openssl-libs +%else +Requires: openssl +%endif + %endif # old removed packages @@ -474,6 +498,8 @@ with the Wine Windows(TM) emulation libraries. Summary: Pulseaudio support for wine Group: System Environment/Libraries Requires: wine-core = %{version}-%{release} +# midi output +Requires: wine-alsa = %{version}-%{release} %description pulseaudio This package adds a pulseaudio driver for wine. Please do not report bugs in @@ -505,6 +531,7 @@ This package adds an openal driver for wine. %patch511 -p1 -b.cjk %patch1001 -p1 -b.winepulse +%patch1002 -p1 -b.winepulse-midi autoreconf @@ -1497,6 +1524,14 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || : %endif %changelog +* Sun Oct 28 2012 Andreas Bierfert +- 1.5.16-1 +- version upgrade (rhbz#870611) +- wine mono 0.8 +- update pulse patch +- fix midi in winepulse (rhbz#863129) +- fix dependencies for openssl (rhbz#868576) + * Mon Oct 15 2012 Andreas Bierfert - 1.5.15-1 - version upgrade