⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 portaudio.h

📁 ppciaxclient softphone
💻 H
📖 第 1 页 / 共 2 页
字号:


/*
 Stream flags
 
 These flags may be supplied (ored together) in the streamFlags argument to
 the Pa_OpenStream() function.
 
 [ suggestions? ]
*/

#define   paNoFlag      (0)
#define   paClipOff     (1<<0)   /* disable defult clipping of out of range samples */
#define   paDitherOff   (1<<1)   /* disable default dithering */
#define   paPlatformSpecificFlags (0x00010000)
typedef   unsigned long PaStreamFlags;

/*
 A single PortAudioStream provides multiple channels of real-time
 input and output audio streaming to a client application.
 Pointers to PortAudioStream objects are passed between PortAudio functions.
*/

typedef void PortAudioStream;
#define PaStream PortAudioStream

/*
 Pa_OpenStream() opens a stream for either input, output or both.
 
 stream is the address of a PortAudioStream pointer which will receive
 a pointer to the newly opened stream.
 
 inputDevice is the id of the device used for input (see PaDeviceID above.)
 inputDevice may be paNoDevice to indicate that an input device is not required.
 
 numInputChannels is the number of channels of sound to be delivered to the
 callback. It can range from 1 to the value of maxInputChannels in the
 device input record for the device specified in the inputDevice parameter.
 If inputDevice is paNoDevice numInputChannels is ignored.
 
 inputSampleFormat is the format of inputBuffer provided to the callback
 function. inputSampleFormat may be any of the formats described by the
 PaSampleFormat enumeration (see above). PortAudio guarantees support for
 the sound devices native formats (nativeSampleFormats in the device info
 record) and additionally 16 and 32 bit integer and 32 bit floating point
 formats. Support for other formats is implementation defined.
 
 inputDriverInfo is a pointer to an optional driver specific data structure
 containing additional information for device setup or stream processing.
 inputDriverInfo is never required for correct operation. If not used
 inputDriverInfo should be NULL.
 
 outputDevice is the id of the device used for output (see PaDeviceID above.)
 outputDevice may be paNoDevice to indicate that an output device is not required.
 
 numOutputChannels is the number of channels of sound to be supplied by the
 callback. See the definition of numInputChannels above for more details.
 
 outputSampleFormat is the sample format of the outputBuffer filled by the
 callback function. See the definition of inputSampleFormat above for more
 details.
 
 outputDriverInfo is a pointer to an optional driver specific data structure
 containing additional information for device setup or stream processing.
 outputDriverInfo is never required for correct operation. If not used
 outputDriverInfo should be NULL.
 
 sampleRate is the desired sampleRate for input and output
 
 framesPerBuffer is the length in sample frames of all internal sample buffers
 used for communication with platform specific audio routines. Wherever
 possible this corresponds to the framesPerBuffer parameter passed to the
 callback function.
 
 numberOfBuffers is the number of buffers used for multibuffered
 communication with the platform specific audio routines. This parameter is
 provided only as a guide - and does not imply that an implementation must
 use multibuffered i/o when reliable double buffering is available (such as
 SndPlayDoubleBuffer() on the Macintosh.)
 
 streamFlags may contain a combination of flags ORed together.
 These flags modify the behavior of the
 streaming process. Some flags may only be relevant to certain buffer formats.
 
 callback is a pointer to a client supplied function that is responsible
 for processing and filling input and output buffers (see above for details.)
 
 userData is a client supplied pointer which is passed to the callback
 function. It could for example, contain a pointer to instance data necessary
 for processing the audio buffers.
 
 return value:
 Apon success Pa_OpenStream() returns PaNoError and places a pointer to a
 valid PortAudioStream in the stream argument. The stream is inactive (stopped).
 If a call to Pa_OpenStream() fails a nonzero error code is returned (see
 PAError above) and the value of stream is invalid.
 
*/

DLL_API PaError Pa_OpenStream( PortAudioStream** stream,
                               PaDeviceID inputDevice,
                               int numInputChannels,
                               PaSampleFormat inputSampleFormat,
                               void *inputDriverInfo,
                               PaDeviceID outputDevice,
                               int numOutputChannels,
                               PaSampleFormat outputSampleFormat,
                               void *outputDriverInfo,
                               double sampleRate,
                               unsigned long framesPerBuffer,
                               unsigned long numberOfBuffers,
                               PaStreamFlags streamFlags,
                               PortAudioCallback *callback,
                               void *userData );


/*
 Pa_OpenDefaultStream() is a simplified version of Pa_OpenStream() that
 opens the default input and/or ouput devices. Most parameters have
 identical meaning to their Pa_OpenStream() counterparts, with the following
 exceptions:
 
 If either numInputChannels or numOutputChannels is 0 the respective device
 is not opened (same as passing paNoDevice in the device arguments to Pa_OpenStream() )
 
 sampleFormat applies to both the input and output buffers.
*/

DLL_API PaError Pa_OpenDefaultStream( PortAudioStream** stream,
                                      int numInputChannels,
                                      int numOutputChannels,
                                      PaSampleFormat sampleFormat,
                                      double sampleRate,
                                      unsigned long framesPerBuffer,
                                      unsigned long numberOfBuffers,
                                      PortAudioCallback *callback,
                                      void *userData );

/*
 Pa_CloseStream() closes an audio stream, flushing any pending buffers.
*/

DLL_API PaError Pa_CloseStream( PortAudioStream* );

/*
  Pa_StartStream() and Pa_StopStream() begin and terminate audio processing.
 When Pa_StopStream() returns, all pending audio buffers have been played.
    Pa_AbortStream() stops playing immediately without waiting for pending
    buffers to complete.
*/

DLL_API PaError Pa_StartStream( PortAudioStream *stream );

DLL_API PaError Pa_StopStream( PortAudioStream *stream );

DLL_API PaError Pa_AbortStream( PortAudioStream *stream );

/*
 Pa_StreamActive() returns one when the stream is playing audio,
 zero when not playing, or a negative error number if the
 stream is invalid.
 The stream is active between calls to Pa_StartStream() and Pa_StopStream(),
 but may also become inactive if the callback returns a non-zero value.
 In the latter case, the stream is considered inactive after the last
 buffer has finished playing.
*/

DLL_API PaError Pa_StreamActive( PortAudioStream *stream );

/*
 Pa_StreamTime() returns the current output time for the stream in samples.
 This time may be used as a time reference (for example syncronising audio to
 MIDI).
*/

DLL_API PaTimestamp Pa_StreamTime( PortAudioStream *stream );

/*
 The "CPU Load" is a fraction of total CPU time consumed by the
 stream's audio processing.
 A value of 0.5 would imply that PortAudio and the sound generating
 callback was consuming roughly 50% of the available CPU time.
 This function may be called from the callback function or the application.
*/
DLL_API double Pa_GetCPULoad( PortAudioStream* stream );

/*
 Use Pa_GetMinNumBuffers() to determine minimum number of buffers required for
 the current host based on minimum latency. 
 On the PC, for the DirectSound implementation, latency can be optionally set
 by user by setting an environment variable.
 For example, to set latency to 200 msec, put:
 
    set PA_MIN_LATENCY_MSEC=200
 
 in the AUTOEXEC.BAT file and reboot.
 If the environment variable is not set, then the latency will be determined
 based on the OS. Windows NT has higher latency than Win95.
*/

DLL_API int Pa_GetMinNumBuffers( int framesPerBuffer, double sampleRate );

/*
 Sleep for at least 'msec' milliseconds.
 You may sleep longer than the requested time so don't rely
 on this for accurate musical timing.
*/
DLL_API void Pa_Sleep( long msec );

/*
 Return size in bytes of a single sample in a given PaSampleFormat
 or paSampleFormatNotSupported. 
*/
DLL_API PaError Pa_GetSampleSize( PaSampleFormat format );

#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* PORT_AUDIO_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -