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
|