mingw-cross-env-list
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Mingw-cross-env-list] [PATCH] Update PortAudio v19 from 20071207 to 201


From: stefanha
Subject: [Mingw-cross-env-list] [PATCH] Update PortAudio v19 from 20071207 to 20111121
Date: Sat, 3 Mar 2012 11:10:41 +0000

This patch updates PortAudio to v19 20111121 from 20071207.  It also enables
the WinMME host API, which can be used as a fallback when DirectSound does not
work at runtime.

My goal was really to enable Kernel Streaming and WASAPI host API support.
However, I hit issues with them:

1. Kernel Streaming (wdmks) does not compile due to missing <ks.h> pieces.  The
   current mingw32-cross-env <ks.h> contains almost nothing, it comes from
   w32api-3.17-2-mingw32-dev.tar.lzma and there is no newer upstream version.
   I noticed that mingw64 *does* have a full <ks.h>.  Any hints how to resolve
   this in mingw32-cross-env?

2. WASAPI compiles fine but testing under Wine produces an internal PortAudio
   initialization error.  Therefore I have left out WASAPI for now until I can
   do more investigation and testing.

diff -r c9f15bc8ebbd src/portaudio.mk
--- a/src/portaudio.mk  Thu Mar 01 19:19:23 2012 +0100
+++ b/src/portaudio.mk  Sat Mar 03 10:44:22 2012 +0000
@@ -4,17 +4,17 @@
 # portaudio
 PKG             := portaudio
 $(PKG)_IGNORE   :=
-$(PKG)_VERSION  := 19_20071207
-$(PKG)_CHECKSUM := 3841453bb7be672a15b6b632ade6f225eb0a4efc
+$(PKG)_VERSION  := 19_20111121
+$(PKG)_CHECKSUM := f07716c470603729a55b70f5af68f4a6807097eb
 $(PKG)_SUBDIR   := portaudio
-$(PKG)_FILE     := pa_stable_v$($(PKG)_VERSION).tar.gz
+$(PKG)_FILE     := pa_stable_v$($(PKG)_VERSION).tgz
 $(PKG)_WEBSITE  := http://www.portaudio.com
 $(PKG)_URL      := http://www.portaudio.com/archives/$($(PKG)_FILE)
 $(PKG)_DEPS     := gcc
 
 define $(PKG)_UPDATE
     wget -q -O- 'http://www.portaudio.com/download.html' | \
-    $(SED) -n 's,.*pa_stable_v\([0-9][^>]*\)\.tar.*,\1,p' | \
+    $(SED) -n 's,.*pa_stable_v\([0-9][^>]*\)\.tgz,\1,p' | \
     head -1
 endef
 
@@ -25,7 +25,7 @@
         --disable-shared \
         --prefix='$(PREFIX)/$(TARGET)' \
         --with-host_os=mingw \
-        --with-winapi=directx \
+        --with-winapi=wmme,directx \
         --with-dxdir=$(PREFIX)/$(TARGET)
     $(MAKE) -C '$(1)' -j '$(JOBS)' SHARED_FLAGS= TESTS=
     $(MAKE) -C '$(1)' -j 1 install
diff -r c9f15bc8ebbd src/portaudio-1-win32.patch
--- a/src/portaudio-1-win32.patch       Thu Mar 01 19:19:23 2012 +0100
+++ b/src/portaudio-1-win32.patch       Sat Mar 03 10:44:22 2012 +0000
@@ -1,89 +1,74 @@
 This file is part of mingw-cross-env.
 See doc/index.html for further information.
 
-diff -ru portaudio-orig/configure.in portaudio/configure.in
---- portaudio-orig/configure.in        2007-11-13 22:22:56.000000000 +0100
-+++ portaudio/configure.in     2010-01-23 17:04:37.000000000 +0100
-@@ -139,6 +139,7 @@
-       dnl Mac OS X configuration
+diff -aur portaudio/src/hostapi/dsound/pa_win_ds.c 
portaudio-patched/src/hostapi/dsound/pa_win_ds.c
+--- portaudio/src/hostapi/dsound/pa_win_ds.c   2011-11-10 14:51:15.000000000 
+0000
++++ portaudio-patched/src/hostapi/dsound/pa_win_ds.c   2012-03-02 
21:45:29.000000000 +0000
+@@ -860,6 +860,9 @@
+                             case DSSPEAKER_STEREO:           count = 2; break;
+                             case DSSPEAKER_SURROUND:         count = 4; break;
+                             case DSSPEAKER_5POINT1:          count = 6; break;
++#ifndef DSSPEAKER_7POINT1
++#define DSSPEAKER_7POINT1 0x00000007
++#endif
+                             case DSSPEAKER_7POINT1:          count = 8; break;
+ #ifndef DSSPEAKER_7POINT1_SURROUND
+ #define DSSPEAKER_7POINT1_SURROUND 0x00000008
+diff -aur portaudio/src/hostapi/wdmks/pa_win_wdmks.c 
portaudio-patched/src/hostapi/wdmks/pa_win_wdmks.c
+--- portaudio/src/hostapi/wdmks/pa_win_wdmks.c 2011-02-17 15:56:04.000000000 
+0000
++++ portaudio-patched/src/hostapi/wdmks/pa_win_wdmks.c 2012-03-02 
21:49:13.000000000 +0000
+@@ -136,6 +136,7 @@
  
-       AC_DEFINE(PA_USE_COREAUDIO)
-+      CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix"
-       if [[ -d /Developer/SDKs/MacOSX10.5.sdk ]] ; then
-               SHARED_FLAGS="-Werror -framework CoreAudio -framework 
AudioToolbox -framework AudioUnit -framework Carbon -dynamiclib -arch x86_64 
-arch ppc64 -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk 
-mmacosx-version-min=10.3";
-               CFLAGS="-Werror $CFLAGS -arch x86_64 -arch ppc64 -arch i386 
-arch ppc -isysroot /Developer/SDKs/MacOSX10.5.sdk -mmacosx-version-min=10.3";
-@@ -167,6 +168,7 @@
-         dnl MingW configuration
+ #include <mmreg.h>
+ #include <ks.h>
++#define _WAVEFORMATEXTENSIBLE_
+ #include <ksmedia.h>
+ #include <tchar.h>
+ #include <assert.h>
+diff -aur portaudio/configure portaudio-patched/configure
+--- portaudio/configure        2011-11-11 18:27:15.000000000 +0000
++++ portaudio-patched/configure        2012-03-03 10:08:52.000000000 +0000
+@@ -15807,7 +15807,7 @@
+         if [ "x$with_directx" = "xyes" ]; then
+             DXDIR="$with_dxdir"
+             add_objects src/hostapi/dsound/pa_win_ds.o 
src/hostapi/dsound/pa_win_ds_dynlink.o src/os/win/pa_win_hostapis.o 
src/os/win/pa_win_util.o src/os/win/pa_win_coinitialize.o 
src/os/win/pa_win_waveformat.o
+-            LIBS="-lwinmm -lm -ldsound -lole32"
++            LIBS="${LIBS} -lwinmm -lm -ldsound -lole32"
+             DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -ldsound -lole32"
+             #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
+             #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
+@@ -15817,7 +15817,7 @@
+         if [ "x$with_asio" = "xyes" ]; then
+             ASIODIR="$with_asiodir"
+             add_objects src/hostapi/asio/pa_asio.o src/common/pa_ringbuffer.o 
src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o 
src/os/win/pa_win_coinitialize.o src/hostapi/asio/iasiothiscallresolver.o 
$ASIODIR/common/asio.o $ASIODIR/host/asiodrivers.o $ASIODIR/host/pc/asiolist.o
+-            LIBS="-lwinmm -lm -lole32 -luuid"
++            LIBS="${LIBS} -lwinmm -lm -lole32 -luuid"
+             DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
+             CFLAGS="$CFLAGS -ffast-math -fomit-frame-pointer 
-I\$(top_srcdir)/src/hostapi/asio -I$ASIODIR/host/pc -I$ASIODIR/common 
-I$ASIODIR/host -UPA_USE_ASIO -DPA_USE_ASIO=1 -DWINDOWS"
  
-         echo "WINAPI: $with_winapi"
-+        CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win"
-         if [[ $with_winapi = "directx" ]] ; then
-             if [[ $with_dxdir ]] ; then
-               DXDIR="$with_dxdir";
-@@ -174,15 +176,15 @@
-               DXDIR="/usr/local/dx7sdk";
-             fi
-             echo "DXDIR: $DXDIR"
--            OTHER_OBJS="src/hostapi/dsound/pa_win_ds.o 
src/hostapi/dsound/pa_win_ds_dynlink.o src/os/win/pa_win_hostapis.o 
src/os/win/pa_win_util.o";
-+            OTHER_OBJS="src/hostapi/dsound/pa_win_ds.o 
src/hostapi/dsound/pa_win_ds_dynlink.o src/os/win/pa_win_hostapis.o 
src/os/win/pa_win_util.o src/os/win/pa_win_waveformat.o";
-             LIBS="-lwinmm -lm -ldsound -lole32";
-             PADLL="portaudio.dll";
-           THREAD_CFLAGS="-mthreads"
-             SHARED_FLAGS="-shared";
--            DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L./dx7sdk/lib -ldsound 
-lole32";
-+            DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L${DXDIR}/lib -ldsound 
-lole32";
-             #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\"";
-             #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO";
--            CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I$DXDIR/include 
-DPA_NO_WMME -DPA_NO_ASIO" -DPA_NO_WDMKS;
-+            CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I$DXDIR/include 
-DPA_NO_WMME -DPA_NO_ASIO -DPA_NO_WDMKS";
-         elif [[ $with_winapi = "asio" ]] ; then
-             if [[ $with_asiodir ]] ; then
-               ASIODIR="$with_asiodir";
-@@ -228,9 +230,10 @@
+@@ -15829,7 +15829,7 @@
+         if [ "x$with_wdmks" = "xyes" ]; then
+             DXDIR="$with_dxdir"
+             add_objects src/hostapi/wdmks/pa_win_wdmks.o 
src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o
+-            LIBS="-lwinmm -lm -luuid -lsetupapi -lole32"
++            LIBS="${LIBS} -lwinmm -lm -luuid -lsetupapi -lole32"
+             DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi 
-lole32"
+             #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
+             #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
+@@ -15838,14 +15838,14 @@
  
-   cygwin* )
-       dnl Cygwin configuration
--
-+      CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win"
-       OTHER_OBJS="src/hostapi/wmme/pa_win_wmme.o src/os/win/pa_win_hostapis.o 
src/os/win/pa_win_util.o";
-       CFLAGS="$CFLAGS -DPA_NO_DS -DPA_NO_WDMKS -DPA_NO_ASIO -DPA_NO_WASAPI"
-+
-       LIBS="-lwinmm -lm";
-       PADLL="portaudio.dll";
-       THREAD_CFLAGS="-mthreads"
-@@ -242,6 +245,7 @@
-       dnl SGI IRIX audio library (AL) configuration (Pieter, oct 2-13, 2003).
-       dnl The 'dmedia' library is needed to read the Unadjusted System Time 
(UST).
-     dnl
-+      CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix"
-       AC_CHECK_LIB(pthread, pthread_create, , AC_MSG_ERROR([IRIX posix thread 
library not found!]))
-       AC_CHECK_LIB(audio,   alOpenPort,     , AC_MSG_ERROR([IRIX audio 
library not found!]))
-       AC_CHECK_LIB(dmedia,  dmGetUST,       , AC_MSG_ERROR([IRIX digital 
media library not found!]))
-@@ -271,6 +275,7 @@
-                 ,
-                 AC_MSG_ERROR([libpthread not found!]))
+         if [ "x$with_wmme" = "xyes" ]; then
+             add_objects src/hostapi/wmme/pa_win_wmme.o 
src/os/win/pa_win_hostapis.o src/os/win/pa_win_util.o 
src/os/win/pa_win_waveformat.o
+-            LIBS="-lwinmm -lm -lole32 -luuid"
++            LIBS="${LIBS} -lwinmm -lm -lole32 -luuid"
+             DLL_LIBS="${DLL_LIBS} -lwinmm"
+             CFLAGS="$CFLAGS -UPA_USE_WMME -DPA_USE_WMME=1"
+         fi
  
-+      CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/unix"
-       if [[ $have_alsa = "yes" ] && [ $with_alsa != "no" ]] ; then
-               DLL_LIBS="$DLL_LIBS -lasound"
-               OTHER_OBJS="$OTHER_OBJS src/hostapi/alsa/pa_linux_alsa.o"
-@@ -305,6 +310,7 @@
-         OTHER_OBJS="$OTHER_OBJS src/os/unix/pa_unix_hostapis.o 
src/os/unix/pa_unix_util.o"
- esac
- CFLAGS="$CFLAGS $THREAD_CFLAGS"
-+echo "CFLAGS: $CFLAGS"
- 
- if test "$enable_cxx" = "yes"; then
-    AC_CONFIG_SUBDIRS([bindings/cpp])
-diff -ru portaudio-orig/Makefile.in portaudio/Makefile.in
---- portaudio-orig/Makefile.in 2007-10-24 17:29:04.000000000 +0200
-+++ portaudio/Makefile.in      2010-01-23 17:00:40.000000000 +0100
-@@ -16,7 +16,7 @@
- libdir = @libdir@
- includedir = @includedir@
- CC = @CC@
--CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src/common 
-I$(top_srcdir)/src/os/unix @CFLAGS@ @DEFS@
-+CFLAGS = -I$(top_srcdir)/include -I$(top_srcdir)/src/common @CFLAGS@ @DEFS@
- LIBS = @LIBS@
- AR = @AR@
- RANLIB = @RANLIB@
+         if [ "x$with_wasapi" = "xyes" ]; then
+             add_objects src/hostapi/wasapi/pa_win_wasapi.o 
src/common/pa_ringbuffer.o src/os/win/pa_win_hostapis.o 
src/os/win/pa_win_util.o src/os/win/pa_win_coinitialize.o 
src/os/win/pa_win_waveformat.o
+-            LIBS="-lwinmm -lm -lole32 -luuid"
++            LIBS="${LIBS} -lwinmm -lm -lole32 -luuid"
+             DLL_LIBS="${DLL_LIBS} -lwinmm -lole32"
+             CFLAGS="$CFLAGS -I\$(top_srcdir)/src/hostapi/wasapi/mingw-include 
-UPA_USE_WASAPI -DPA_USE_WASAPI=1"
+         fi



reply via email to

[Prev in Thread] Current Thread [Next in Thread]