diff options
author | Guenter Geiger <ggeiger@users.sourceforge.net> | 2004-02-02 12:18:59 +0000 |
---|---|---|
committer | Guenter Geiger <ggeiger@users.sourceforge.net> | 2004-02-02 12:18:59 +0000 |
commit | 2e416ee0095f1bf608f849f156d564e0f45fb8ab (patch) | |
tree | 9e4881e81953b434b91dbd35218d78f05b27e82e /pd/portaudio/pa_common/pa_host.h | |
parent | ae6b5d89ea93b95c2990895077cf5e8f0bba9ad9 (diff) |
merged in version_0_37_1test6
svn path=/trunk/; revision=1305
Diffstat (limited to 'pd/portaudio/pa_common/pa_host.h')
-rw-r--r-- | pd/portaudio/pa_common/pa_host.h | 185 |
1 files changed, 0 insertions, 185 deletions
diff --git a/pd/portaudio/pa_common/pa_host.h b/pd/portaudio/pa_common/pa_host.h deleted file mode 100644 index d9cd71ab..00000000 --- a/pd/portaudio/pa_common/pa_host.h +++ /dev/null @@ -1,185 +0,0 @@ -#ifndef PA_HOST_H -#define PA_HOST_H - -/* - * $Id: pa_host.h,v 1.1.1.1 2002-07-29 17:06:18 ggeiger Exp $ - * Host dependant internal API for PortAudio - * - * Author: Phil Burk <philburk@softsynth.com> - * - * PortAudio Portable Real-Time Audio Library - * Latest Version at: http://www.softsynth.com/portaudio/ - * DirectSound and Macintosh Implementation - * Copyright (c) 1999-2000 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. - * - */ - -#include "portaudio.h" - -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -#ifndef SUPPORT_AUDIO_CAPTURE -#define SUPPORT_AUDIO_CAPTURE (1) -#endif - -#ifndef int32 - typedef long int32; -#endif -#ifndef uint32 - typedef unsigned long uint32; -#endif -#ifndef int16 - typedef short int16; -#endif -#ifndef uint16 - typedef unsigned short uint16; -#endif - -/* Used to convert between various sample formats. */ -typedef void (PortAudioConverter)( - void *inputBuffer, int inputStride, - void *outputBuffer, int outputStride, - int numSamples ); - -#define PA_MAGIC (0x18273645) - -/************************************************************************************/ -/****************** Structures ******************************************************/ -/************************************************************************************/ - -typedef struct internalPortAudioStream -{ - uint32 past_Magic; /* ID for struct to catch bugs. */ - /* User specified information. */ - uint32 past_FramesPerUserBuffer; - uint32 past_NumUserBuffers; - double past_SampleRate; /* Closest supported sample rate. */ - int past_NumInputChannels; - int past_NumOutputChannels; - PaDeviceID past_InputDeviceID; - PaDeviceID past_OutputDeviceID; - PaSampleFormat past_NativeInputSampleFormat; - PaSampleFormat past_InputSampleFormat; - PaSampleFormat past_NativeOutputSampleFormat; - PaSampleFormat past_OutputSampleFormat; - void *past_DeviceData; - PortAudioCallback *past_Callback; - void *past_UserData; - uint32 past_Flags; - /* Flags for communicating between foreground and background. */ - volatile int past_IsActive; /* Background is still playing. */ - volatile int past_StopSoon; /* Background should keep playing when buffers empty. */ - volatile int past_StopNow; /* Background should stop playing now. */ - /* These buffers are used when the native format does not match the user format. */ - void *past_InputBuffer; - uint32 past_InputBufferSize; - void *past_OutputBuffer; - uint32 past_OutputBufferSize; - /* Measurements */ - uint32 past_NumCallbacks; - PaTimestamp past_FrameCount; /* Frames output to buffer. */ - /* For measuring CPU utilization. */ - double past_AverageInsideCount; - double past_AverageTotalCount; - double past_Usage; - int past_IfLastExitValid; - /* Format Conversion */ - /* These are setup by PaConversion_Setup() */ - PortAudioConverter *past_InputConversionProc; - int past_InputConversionSourceStride; - int past_InputConversionTargetStride; - PortAudioConverter *past_OutputConversionProc; - int past_OutputConversionSourceStride; - int past_OutputConversionTargetStride; -} -internalPortAudioStream; - -/************************************************************************************/ -/******** These functions must be provided by a platform implementation. ************/ -/************************************************************************************/ - -PaError PaHost_Init( void ); -PaError PaHost_Term( void ); - -PaError PaHost_OpenStream( internalPortAudioStream *past ); -PaError PaHost_CloseStream( internalPortAudioStream *past ); - -PaError PaHost_StartOutput( internalPortAudioStream *past ); -PaError PaHost_StopOutput( internalPortAudioStream *past, int abort ); -PaError PaHost_StartInput( internalPortAudioStream *past ); -PaError PaHost_StopInput( internalPortAudioStream *past, int abort ); -PaError PaHost_StartEngine( internalPortAudioStream *past ); -PaError PaHost_StopEngine( internalPortAudioStream *past, int abort ); -PaError PaHost_StreamActive( internalPortAudioStream *past ); - -void *PaHost_AllocateFastMemory( long numBytes ); -void PaHost_FreeFastMemory( void *addr, long numBytes ); - -/* This only called if PA_VALIDATE_RATE IS CALLED. */ -PaError PaHost_ValidateSampleRate( PaDeviceID id, double requestedFrameRate, - double *closestFrameRatePtr ); - -/**********************************************************************/ -/************ Common Utility Routines provided by PA ******************/ -/**********************************************************************/ - -/* PaHost_IsInitialized() returns non-zero if PA is initialized, 0 otherwise */ -int PaHost_IsInitialized( void ); - -internalPortAudioStream* PaHost_GetStreamRepresentation( PortAudioStream *stream ); - -int PaHost_FindClosestTableEntry( double allowableError, const double *rateTable, - int numRates, double frameRate ); - -long Pa_CallConvertInt16( internalPortAudioStream *past, - short *nativeInputBuffer, - short *nativeOutputBuffer ); - -/* Calculate 2 LSB dither signal with a triangular distribution. -** Ranged properly for adding to a 32 bit 1.31 fixed point value prior to >>15. -** Range of output is +/- 65535 -** Multiply by PA_DITHER_SCALE to get a float between -2.0 and 2.0. */ -#define PA_DITHER_BITS (15) -#define PA_DITHER_SCALE (1.0f / ((1<<PA_DITHER_BITS)-1)) -long PaConvert_TriangularDither( void ); - -PaError PaConvert_SetupInput( internalPortAudioStream *past, - PaSampleFormat nativeInputSampleFormat ); - -PaError PaConvert_SetupOutput( internalPortAudioStream *past, - PaSampleFormat nativeOutputSampleFormat ); - -long PaConvert_Process( internalPortAudioStream *past, - void *nativeInputBuffer, - void *nativeOutputBuffer ); - -#ifdef __cplusplus -} -#endif /* __cplusplus */ -#endif /* PA_HOST_H */ |