summaryrefslogtreecommitdiffstats
path: root/portaudio-mingw64.patch
blob: 8754c431c60c39119abe2fa580d55132b421b486 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
--- portaudio/bindings/cpp/example/devs.cxx	2006-05-25 04:34:26.000000000 -0500
+++ portaudio/bindings/cpp/example/devs.cxx	2014-03-31 21:51:17.916789100 -0500
@@ -1,7 +1,7 @@
 #include <iostream>
 #include "portaudiocpp/PortAudioCpp.hxx"
 
-#ifdef WIN32
+#if PA_USE_ASIO
 #include "portaudiocpp/AsioDeviceAdapter.hxx"
 #endif
 
@@ -109,7 +109,7 @@ int main(int, char*[])
 			std::cout << "Default high input latency  = " << (*i).defaultHighInputLatency() << std::endl; // 8.3
 			std::cout << "Default high output latency = " << (*i).defaultHighOutputLatency() << std::endl; // 8.3
 
-#ifdef WIN32
+#if PA_USE_ASIO
 			// ASIO specific latency information:
 			if ((*i).hostApi().typeId() == paASIO)
 			{
@@ -124,7 +124,7 @@ int main(int, char*[])
 				else
 					std::cout << "ASIO buffer granularity     = " << asioDevice.granularity() << std::endl;
 			}
-#endif // WIN32
+#endif // PA_USE_ASIO
 
 			std::cout << "Default sample rate         = " << (*i).defaultSampleRate() << std::endl; // 8.2
 
--- portaudio/configure.in	2014-01-16 11:49:33.000000000 -0600
+++ portaudio/configure.in	2014-03-31 22:16:22.682370000 -0500
@@ -98,14 +98,12 @@ dnl Checks for programs.
 
 AC_PROG_CC
 dnl ASIO and CXX bindings need a C++ compiler
-if [[ "$with_asio" = "yes" ] || [ "$enable_cxx" = "yes" ]] ; then
        AC_PROG_CXX
-fi
 AC_LIBTOOL_WIN32_DLL
 AC_PROG_LIBTOOL
 AC_PROG_INSTALL
 AC_PROG_LN_S
-AC_PATH_PROG(AR, ar, no)
+AC_PATH_TOOL(AR, ar, no)
 if [[ $AR = "no" ]] ; then
     AC_MSG_ERROR("Could not find ar - needed to create a library")
 fi
@@ -287,7 +285,6 @@ case "${host_os}" in
 
         PADLL="portaudio.dll"
         THREAD_CFLAGS="-mthreads"
-        SHARED_FLAGS="-shared"
         CFLAGS="$CFLAGS -I\$(top_srcdir)/src/os/win -DPA_USE_WMME=0 -DPA_USE_ASIO=0 -DPA_USE_WDMKS=0 -DPA_USE_DS=0 -DPA_USE_WASAPI=0"
 
         if [[ "x$with_directx" = "xyes" ]]; then
@@ -313,7 +310,7 @@ case "${host_os}" in
             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="${LIBS} -lwinmm -lm -lole32 -luuid"
-            DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -luuid"
+            DLL_LIBS="${DLL_LIBS} -lwinmm -lm -lole32 -Wl,-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"
 
             dnl Setting the windows version flags below resolves a conflict between Interlocked* 
@@ -329,7 +326,7 @@ case "${host_os}" in
             DXDIR="$with_dxdir"
             add_objects src/hostapi/wdmks/pa_win_wdmks.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_wdmks_utils.o src/os/win/pa_win_waveformat.o
             LIBS="${LIBS} -lwinmm -lm -luuid -lsetupapi -lole32"
-            DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -luuid -lsetupapi -lole32"
+            DLL_LIBS="${DLL_LIBS} -lwinmm -lm -L$DXDIR/lib -Wl,-luuid -lsetupapi -lole32"
             #VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
             #CFLAGS="$CFLAGS -I$VC98 -DPA_NO_WMME -DPA_NO_ASIO"
             CFLAGS="$CFLAGS -I$DXDIR/include -UPA_USE_WDMKS -DPA_USE_WDMKS=1"
@@ -349,7 +346,7 @@ case "${host_os}" in
             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="${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"
+            CFLAGS="$CFLAGS -UPA_USE_WASAPI -DPA_USE_WASAPI=1"
         fi
         ;;
 
--- portaudio/src/hostapi/wasapi/pa_win_wasapi.c	2016-10-29 21:23:04.000000000 -0400
+++ portaudio/src/hostapi/wasapi/pa_win_wasapi.c	2020-05-14 17:11:27.444566200 -0400
@@ -55,13 +55,14 @@
 
 // WASAPI
 #include <mmreg.h>  // must be before other Wasapi headers
-#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-	#include <Avrt.h>
+#if defined(_MSC_VER) && (_MSC_VER >= 1400) || defined(__MINGW32__)
+	#include <avrt.h>
 	#define COBJMACROS
-	#include <Audioclient.h>
+	#include <audioclient.h>
 	#include <endpointvolume.h>
 	#define INITGUID // Avoid additional linkage of static libs, excessive code will be optimized out by the compiler
 	#include <mmdeviceapi.h>
+	#include <functiondiscoverykeys_devpkey.h>
 	#include <functiondiscoverykeys.h>
     #include <devicetopology.h>	// Used to get IKsJackDescription interface
 	#undef INITGUID