summaryrefslogtreecommitdiff
path: root/repo/portaudio
diff options
context:
space:
mode:
Diffstat (limited to 'repo/portaudio')
-rw-r--r--repo/portaudio/portaudio-audacity.patch219
-rw-r--r--repo/portaudio/portaudio-pkgconfig-alsa.patch12
-rw-r--r--repo/portaudio/portaudio.xibuild32
3 files changed, 263 insertions, 0 deletions
diff --git a/repo/portaudio/portaudio-audacity.patch b/repo/portaudio/portaudio-audacity.patch
new file mode 100644
index 0000000..61883eb
--- /dev/null
+++ b/repo/portaudio/portaudio-audacity.patch
@@ -0,0 +1,219 @@
+From 42dc9c90a703b8dd251d71389a7e6220a50a43a9 Mon Sep 17 00:00:00 2001
+From: Uwe Klotz <uwe.klotz@gmail.com>
+Date: Fri, 26 Mar 2021 10:43:46 +0100
+Subject: [PATCH] portaudio-audacity.patch
+
+---
+ configure.in | 1 +
+ include/pa_unix_oss.h | 52 +++++++++++++++++++++++++++++++++++
+ include/portaudio.h | 9 ++++++
+ src/common/pa_front.c | 32 ++++++++++++++++++++-
+ src/common/pa_stream.c | 2 ++
+ src/common/pa_stream.h | 1 +
+ src/hostapi/oss/pa_unix_oss.c | 26 ++++++++++++++++++
+ 7 files changed, 122 insertions(+), 1 deletion(-)
+ create mode 100644 include/pa_unix_oss.h
+
+diff --git a/configure.in b/configure.in
+index bb4ae96..fe0e112 100644
+--- a/configure.in
++++ b/configure.in
+@@ -415,6 +415,7 @@ case "${host_os}" in
+ DLL_LIBS="$DLL_LIBS -lossaudio"
+ LIBS="$LIBS -lossaudio"
+ fi
++ INCLUDES="$INCLUDES pa_unix_oss.h"
+ AC_DEFINE(PA_USE_OSS,1)
+ fi
+
+diff --git a/include/pa_unix_oss.h b/include/pa_unix_oss.h
+new file mode 100644
+index 0000000..2351e64
+--- /dev/null
++++ b/include/pa_unix_oss.h
+@@ -0,0 +1,52 @@
++#ifndef PA_UNIX_OSS_H
++#define PA_UNIX_OSS_H
++
++/*
++ * $Id: portaudio.patch,v 1.10 2009-06-30 04:52:59 llucius Exp $
++ * PortAudio Portable Real-Time Audio Library
++ * OSS-specific extensions
++ *
++ * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining
++ * a copy of this software and associated documentation files
++ * (the "Software"), to deal in the Software without restriction,
++ * including without limitation the rights to use, copy, modify, merge,
++ * publish, distribute, sublicense, and/or sell copies of the Software,
++ * and to permit persons to whom the Software is furnished to do so,
++ * subject to the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be
++ * included in all copies or substantial portions of the Software.
++ *
++ * Any person wishing to distribute modifications to the Software is
++ * requested to send the modifications to the original developer so that
++ * they can be incorporated into the canonical version.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
++ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
++ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
++ * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
++ * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
++ * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
++ * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
++ *
++ */
++
++/** @file
++ * OSS-specific PortAudio API extension header file.
++ */
++
++#ifdef __cplusplus
++extern "C" {
++#endif
++
++const char *PaOSS_GetStreamInputDevice( PaStream *s );
++
++const char *PaOSS_GetStreamOutputDevice( PaStream *s );
++
++#ifdef __cplusplus
++}
++#endif
++
++#endif
+diff --git a/include/portaudio.h b/include/portaudio.h
+index 5d84731..7660c8a 100644
+--- a/include/portaudio.h
++++ b/include/portaudio.h
+@@ -1200,6 +1200,15 @@ signed long Pa_GetStreamReadAvailable( PaStream* stream );
+ signed long Pa_GetStreamWriteAvailable( PaStream* stream );
+
+
++/** Retrieve the host type handling an open stream.
++
++ @return Returns a non-negative value representing the host API type
++ handling an open stream or, a PaErrorCode (which are always negative)
++ if PortAudio is not initialized or an error is encountered.
++*/
++PaHostApiTypeId Pa_GetStreamHostApiType( PaStream* stream );
++
++
+ /* Miscellaneous utilities */
+
+
+diff --git a/src/common/pa_front.c b/src/common/pa_front.c
+index 65a656f..02a67a8 100644
+--- a/src/common/pa_front.c
++++ b/src/common/pa_front.c
+@@ -1257,8 +1257,10 @@ PaError Pa_OpenStream( PaStream** stream,
+ hostApiInputParametersPtr, hostApiOutputParametersPtr,
+ sampleRate, framesPerBuffer, streamFlags, streamCallback, userData );
+
+- if( result == paNoError )
++ if( result == paNoError ) {
+ AddOpenStream( *stream );
++ PA_STREAM_REP(*stream)->hostApiType = hostApi->info.type;
++ }
+
+
+ PA_LOGAPI(("Pa_OpenStream returned:\n" ));
+@@ -1771,6 +1773,34 @@ signed long Pa_GetStreamWriteAvailable( PaStream* stream )
+ }
+
+
++PaHostApiTypeId Pa_GetStreamHostApiType( PaStream* stream )
++{
++ PaError error = PaUtil_ValidateStreamPointer( stream );
++ PaHostApiTypeId result;
++
++#ifdef PA_LOG_API_CALLS
++ PaUtil_DebugPrint("Pa_GetStreamHostApiType called:\n" );
++ PaUtil_DebugPrint("\tPaStream* stream: 0x%p\n", stream );
++#endif
++
++ if( error == paNoError )
++ {
++ result = PA_STREAM_REP(stream)->hostApiType;
++ }
++ else
++ {
++ result = (PaHostApiTypeId) error;
++ }
++
++#ifdef PA_LOG_API_CALLS
++ PaUtil_DebugPrint("Pa_GetStreamHostApiType returned:\n" );
++ PaUtil_DebugPrint("\tPaError: %d ( %s )\n\n", result, Pa_GetErrorText( result ) );
++#endif
++
++ return result;
++}
++
++
+ PaError Pa_GetSampleSize( PaSampleFormat format )
+ {
+ int result;
+diff --git a/src/common/pa_stream.c b/src/common/pa_stream.c
+index ffbf530..305f7c8 100644
+--- a/src/common/pa_stream.c
++++ b/src/common/pa_stream.c
+@@ -93,6 +93,8 @@ void PaUtil_InitializeStreamRepresentation( PaUtilStreamRepresentation *streamRe
+ streamRepresentation->streamInfo.inputLatency = 0.;
+ streamRepresentation->streamInfo.outputLatency = 0.;
+ streamRepresentation->streamInfo.sampleRate = 0.;
++
++ streamRepresentation->hostApiType = 0;
+ }
+
+
+diff --git a/src/common/pa_stream.h b/src/common/pa_stream.h
+index 4afda39..0a5cd1e 100644
+--- a/src/common/pa_stream.h
++++ b/src/common/pa_stream.h
+@@ -152,6 +152,7 @@ typedef struct PaUtilStreamRepresentation {
+ PaStreamFinishedCallback *streamFinishedCallback;
+ void *userData;
+ PaStreamInfo streamInfo;
++ PaHostApiTypeId hostApiType;
+ } PaUtilStreamRepresentation;
+
+
+diff --git a/src/hostapi/oss/pa_unix_oss.c b/src/hostapi/oss/pa_unix_oss.c
+index 20113e2..9dedc3f 100644
+--- a/src/hostapi/oss/pa_unix_oss.c
++++ b/src/hostapi/oss/pa_unix_oss.c
+@@ -2050,3 +2050,29 @@ error:
+ return result;
+ #endif
+ }
++
++
++const char *PaOSS_GetStreamInputDevice( PaStream* s )
++{
++ PaOssStream *stream = (PaOssStream*)s;
++
++ if( stream->capture )
++ {
++ return stream->capture->devName;
++ }
++
++ return NULL;
++}
++
++
++const char *PaOSS_GetStreamOutputDevice( PaStream* s )
++{
++ PaOssStream *stream = (PaOssStream*)s;
++
++ if( stream->playback )
++ {
++ return stream->playback->devName;
++ }
++
++ return NULL;
++}
+--
+2.30.2
+
diff --git a/repo/portaudio/portaudio-pkgconfig-alsa.patch b/repo/portaudio/portaudio-pkgconfig-alsa.patch
new file mode 100644
index 0000000..53b6702
--- /dev/null
+++ b/repo/portaudio/portaudio-pkgconfig-alsa.patch
@@ -0,0 +1,12 @@
+diff -up portaudio/portaudio-2.0.pc.in.alsa portaudio/portaudio-2.0.pc.in
+--- portaudio/portaudio-2.0.pc.in.alsa 2011-05-05 11:55:28.000000000 +0200
++++ portaudio/portaudio-2.0.pc.in 2011-05-05 11:55:33.000000000 +0200
+@@ -5,7 +5,7 @@ includedir=@includedir@
+
+ Name: PortAudio
+ Description: Portable audio I/O
+-Requires:
++Requires: alsa
+ Version: 19
+
+ Libs: -L${libdir} -lportaudio @LIBS@
diff --git a/repo/portaudio/portaudio.xibuild b/repo/portaudio/portaudio.xibuild
new file mode 100644
index 0000000..2c9b2ef
--- /dev/null
+++ b/repo/portaudio/portaudio.xibuild
@@ -0,0 +1,32 @@
+#!/bin/sh
+
+NAME="portaudio"
+DESC="A cross-platform, open-source C language library for real-time audio input and output"
+
+MAKEDEPS=" alsa-lib autoconf automake jack libtool linux-headers"
+
+PKG_VER=19.7.0
+SOURCE="https://github.com/PortAudio/portaudio/archive/v$PKG_VER/portaudio-v$PKG_VER.tar.gz"
+
+ADDITIONAL="
+portaudio-audacity.patch
+portaudio-pkgconfig-alsa.patch
+"
+
+prepare() {
+ apply_patches
+}
+
+build() {
+ ./configure \
+ --prefix=/usr \
+ --disable-static \
+ --with-jack \
+ --with-alsa \
+ --enable-cxx
+ make -j1
+}
+
+package() {
+ make -j1 DESTDIR="$PKG_DEST" install
+}