Add portaudio package.

This commit is contained in:
Alexpux
2014-04-01 08:44:29 +04:00
parent e40b959b46
commit 4bfb6bbdc4
3 changed files with 188 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=portaudio
_mingw_suff=mingw-w64-${CARCH}
pkgname="${_mingw_suff}-${_realname}"
pkgver=19_20140130
pkgrel=1
pkgdesc="A free, cross-platform, open source, audio I/O library. (mingw-w64)"
arch=('any')
url="http://www.portaudio.com"
license=("custom")
makedepends=("${_mingw_suff}-gcc" "${_mingw_suff}-pkg-config")
depends=("${_mingw_suff}-gcc-libs")
options=(!libtool strip !makeflags staticlibs)
source=("http://www.portaudio.com/archives/pa_stable_v$pkgver.tgz"
mingw-w64-fix.patch
mingw-w64-cmake-allow-cxx.patch)
md5sums=('7f220406902af9dca009668e198cbd23'
'99da198098bd39e24333d6e4ab1bef4a'
'9ae34b0d0dee106c6a90dfc744bf096c')
prepare() {
cd ${srcdir}/${_realname}
patch -p2 -i ${srcdir}/mingw-w64-fix.patch
patch -p2 -i ${srcdir}/mingw-w64-cmake-allow-cxx.patch
autoconf
}
build() {
export lt_cv_deplibs_check_method='pass_all'
mkdir -p "${srcdir}/build-${MINGW_CHOST}"
cd "${srcdir}/build-${MINGW_CHOST}"
${srcdir}/${_realname}/configure \
--prefix=${MINGW_PREFIX} \
--build=${MINGW_CHOST} \
--host=${MINGW_CHOST} \
--target=${MINGW_CHOST} \
--enable-shared \
--enable-cxx \
--with-dxdir=${MINGW_PREFIX}/${MINGW_CHOST} \
--with-winapi=wmme,directx,wdmks
#wasapi,
make
}
package() {
cd "${srcdir}/build-${MINGW_CHOST}"
make DESTDIR="$pkgdir" install
}

View File

@@ -0,0 +1,55 @@
--- origsrc/portaudio/CMakeLists.txt 2012-06-29 06:45:21.000000000 -0500
+++ src/portaudio/CMakeLists.txt 2014-03-31 22:08:57.660359400 -0500
@@ -318,6 +318,9 @@ CONFIGURE_FILE( cmake_support/template_p
CONFIGURE_FILE( cmake_support/options_cmake.h.in ${CMAKE_CURRENT_BINARY_DIR}/options_cmake.h @ONLY )
IF(WIN32)
+IF(PA_USE_WMME)
+TARGET_LINK_LIBRARIES(portaudio winmm)
+ENDIF(PA_USE_WMME)
# If we use DirectSound, we need this for the library to be found (if not in VS project settings)
IF(PA_USE_DS AND DXSDK_FOUND)
TARGET_LINK_LIBRARIES(portaudio ${DXSDK_DSOUND_LIBRARY})
@@ -335,9 +335,15 @@ SET_TARGET_PROPERTIES(portaudio PROPERTI
SET_TARGET_PROPERTIES(portaudio_static PROPERTIES OUTPUT_NAME portaudio_static_${TARGET_POSTFIX})
ENDIF(WIN32)
+OPTION(PA_BUILD_CXX "Include C++ bindings" OFF)
OPTION(PA_BUILD_TESTS "Include test projects" OFF)
OPTION(PA_BUILD_EXAMPLES "Include example projects" OFF)
+# Prepared for inclusion of C++ bindings
+IF(PA_BUILD_CXX)
+SUBDIRS(bindings/cpp)
+ENDIF(PA_BUILD_CXX)
+
# Prepared for inclusion of test files
IF(PA_BUILD_TESTS)
SUBDIRS(test)
--- origsrc/portaudio/bindings/cpp/CMakeLists.txt 1969-12-31 18:00:00.000000000 -0600
+++ src/portaudio/bindings/cpp/CMakeLists.txt 2014-03-31 23:16:32.798796600 -0500
@@ -0,0 +1,24 @@
+INCLUDE_DIRECTORIES(include)
+
+SET(PA_CXX_SOURCES
+ source/portaudiocpp/BlockingStream.cxx
+ source/portaudiocpp/CallbackInterface.cxx
+ source/portaudiocpp/CallbackStream.cxx
+ source/portaudiocpp/CFunCallbackStream.cxx
+ source/portaudiocpp/CppFunCallbackStream.cxx
+ source/portaudiocpp/Device.cxx
+ source/portaudiocpp/DirectionSpecificStreamParameters.cxx
+ source/portaudiocpp/Exception.cxx
+ source/portaudiocpp/HostApi.cxx
+ source/portaudiocpp/InterfaceCallbackStream.cxx
+ source/portaudiocpp/MemFunCallbackStream.cxx
+ source/portaudiocpp/Stream.cxx
+ source/portaudiocpp/StreamParameters.cxx
+ source/portaudiocpp/System.cxx
+ source/portaudiocpp/SystemDeviceIterator.cxx
+ source/portaudiocpp/SystemHostApiIterator.cxx)
+
+ADD_LIBRARY(portaudiocpp SHARED ${PA_CXX_SOURCES})
+TARGET_LINK_LIBRARIES(portaudiocpp portaudio)
+
+ADD_LIBRARY(portaudiocpp_static STATIC ${PA_CXX_SOURCES})

View File

@@ -0,0 +1,83 @@
--- origsrc/portaudio/bindings/cpp/example/devs.cxx 2006-05-25 04:34:26.000000000 -0500
+++ src/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
--- origsrc/portaudio/configure.in 2014-01-16 11:49:33.000000000 -0600
+++ src/portaudio/configure.in 2014-03-31 22:16:22.682370000 -0500
@@ -287,7 +287,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
@@ -318,7 +317,7 @@ case "${host_os}" in
if [[ "x$with_wdmks" = "xyes" ]]; then
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_util.o src/os/win/pa_win_waveformat.o
+ 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"
#VC98="\"/c/Program Files/Microsoft Visual Studio/VC98/Include\""
--- origsrc/portaudio/src/hostapi/wdmks/pa_win_wdmks.c 2012-12-28 10:54:25.000000000 -0600
+++ src/portaudio/src/hostapi/wdmks/pa_win_wdmks.c 2014-03-31 21:52:17.791392200 -0500
@@ -63,9 +63,11 @@ of a device for the duration of active s
#ifdef __GNUC__
#include <initguid.h>
+#ifndef __MINGW64_VERSION_MAJOR
#define _WIN32_WINNT 0x0501
#define WINVER 0x0501
#endif
+#endif
#include <string.h> /* strlen() */
#include <assert.h>
@@ -87,7 +89,9 @@ of a device for the duration of active s
#include "pa_win_wdmks.h"
#include <windows.h>
+#ifndef __MINGW64_VERSION_MAJOR
#include <winioctl.h>
+#endif
#include <process.h>
#include <math.h>
--- origsrc/portaudio/src/os/win/pa_x86_plain_converters.c 2013-04-07 09:15:24.000000000 -0500
+++ src/portaudio/src/os/win/pa_x86_plain_converters.c 2014-03-31 22:07:49.570213100 -0500
@@ -112,7 +112,7 @@ TODO:
0011 1111 1000 0000 0000 0000 0000 0000 => 0x3F800000
*/
-#if defined(_WIN64) || defined(_WIN32_WCE)
+#if defined(_WIN64) || defined(_WIN32_WCE) || defined(__MINGW32__)
/*
-EMT64/AMD64 uses different asm