annotate src/portaudio_20161030_catalina_patch/include/pa_linux_alsa.h @ 83:ae30d91d2ffe

Replace these with versions built using an older toolset (so as to avoid ABI compatibilities when linking on Ubuntu 14.04 for packaging purposes)
author Chris Cannam
date Fri, 07 Feb 2020 11:51:13 +0000
parents 4edcd14160a5
children
rev   line source
Chris@4 1 #ifndef PA_LINUX_ALSA_H
Chris@4 2 #define PA_LINUX_ALSA_H
Chris@4 3
Chris@4 4 /*
Chris@55 5 * $Id$
Chris@4 6 * PortAudio Portable Real-Time Audio Library
Chris@4 7 * ALSA-specific extensions
Chris@4 8 *
Chris@4 9 * Copyright (c) 1999-2000 Ross Bencina and Phil Burk
Chris@4 10 *
Chris@4 11 * Permission is hereby granted, free of charge, to any person obtaining
Chris@4 12 * a copy of this software and associated documentation files
Chris@4 13 * (the "Software"), to deal in the Software without restriction,
Chris@4 14 * including without limitation the rights to use, copy, modify, merge,
Chris@4 15 * publish, distribute, sublicense, and/or sell copies of the Software,
Chris@4 16 * and to permit persons to whom the Software is furnished to do so,
Chris@4 17 * subject to the following conditions:
Chris@4 18 *
Chris@4 19 * The above copyright notice and this permission notice shall be
Chris@4 20 * included in all copies or substantial portions of the Software.
Chris@4 21 *
Chris@4 22 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
Chris@4 23 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Chris@4 24 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Chris@4 25 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR
Chris@4 26 * ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
Chris@4 27 * CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
Chris@4 28 * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Chris@4 29 */
Chris@4 30
Chris@4 31 /*
Chris@4 32 * The text above constitutes the entire PortAudio license; however,
Chris@4 33 * the PortAudio community also makes the following non-binding requests:
Chris@4 34 *
Chris@4 35 * Any person wishing to distribute modifications to the Software is
Chris@4 36 * requested to send the modifications to the original developer so that
Chris@4 37 * they can be incorporated into the canonical version. It is also
Chris@4 38 * requested that these non-binding requests be included along with the
Chris@4 39 * license above.
Chris@4 40 */
Chris@4 41
Chris@4 42 /** @file
Chris@4 43 * @ingroup public_header
Chris@4 44 * @brief ALSA-specific PortAudio API extension header file.
Chris@4 45 */
Chris@4 46
Chris@4 47 #include "portaudio.h"
Chris@4 48
Chris@4 49 #ifdef __cplusplus
Chris@4 50 extern "C" {
Chris@4 51 #endif
Chris@4 52
Chris@4 53 typedef struct PaAlsaStreamInfo
Chris@4 54 {
Chris@4 55 unsigned long size;
Chris@4 56 PaHostApiTypeId hostApiType;
Chris@4 57 unsigned long version;
Chris@4 58
Chris@4 59 const char *deviceString;
Chris@4 60 }
Chris@4 61 PaAlsaStreamInfo;
Chris@4 62
Chris@4 63 /** Initialize host API specific structure, call this before setting relevant attributes. */
Chris@4 64 void PaAlsa_InitializeStreamInfo( PaAlsaStreamInfo *info );
Chris@4 65
Chris@4 66 /** Instruct whether to enable real-time priority when starting the audio thread.
Chris@4 67 *
Chris@4 68 * If this is turned on by the stream is started, the audio callback thread will be created
Chris@4 69 * with the FIFO scheduling policy, which is suitable for realtime operation.
Chris@4 70 **/
Chris@4 71 void PaAlsa_EnableRealtimeScheduling( PaStream *s, int enable );
Chris@4 72
Chris@4 73 #if 0
Chris@4 74 void PaAlsa_EnableWatchdog( PaStream *s, int enable );
Chris@4 75 #endif
Chris@4 76
Chris@4 77 /** Get the ALSA-lib card index of this stream's input device. */
Chris@4 78 PaError PaAlsa_GetStreamInputCard( PaStream *s, int *card );
Chris@4 79
Chris@4 80 /** Get the ALSA-lib card index of this stream's output device. */
Chris@4 81 PaError PaAlsa_GetStreamOutputCard( PaStream *s, int *card );
Chris@4 82
Chris@4 83 /** Set the number of periods (buffer fragments) to configure devices with.
Chris@4 84 *
Chris@4 85 * By default the number of periods is 4, this is the lowest number of periods that works well on
Chris@4 86 * the author's soundcard.
Chris@4 87 * @param numPeriods The number of periods.
Chris@4 88 */
Chris@4 89 PaError PaAlsa_SetNumPeriods( int numPeriods );
Chris@4 90
Chris@4 91 /** Set the maximum number of times to retry opening busy device (sleeping for a
Chris@4 92 * short interval inbetween).
Chris@4 93 */
Chris@4 94 PaError PaAlsa_SetRetriesBusy( int retries );
Chris@4 95
Chris@4 96 /** Set the path and name of ALSA library file if PortAudio is configured to load it dynamically (see
Chris@4 97 * PA_ALSA_DYNAMIC). This setting will overwrite the default name set by PA_ALSA_PATHNAME define.
Chris@4 98 * @param pathName Full path with filename. Only filename can be used, but dlopen() will lookup default
Chris@4 99 * searchable directories (/usr/lib;/usr/local/lib) then.
Chris@4 100 */
Chris@4 101 void PaAlsa_SetLibraryPathName( const char *pathName );
Chris@4 102
Chris@4 103 #ifdef __cplusplus
Chris@4 104 }
Chris@4 105 #endif
Chris@4 106
Chris@4 107 #endif