?? portaudio.h
字號:
*/#define paNoFlag (0)#define paClipOff (1<<0) /* disable default 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 PaDeviceInfo record for the device specified by the inputDevice parameter. If inputDevice is paNoDevice numInputChannels is ignored. inputSampleFormat is the sample 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 device's 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 full-duplex streams it is the sample rate for both 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. If you pass zero, then an optimum value will be chosen for you internally. 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 behaviour 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: Upon 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 non-zero error code is returned (see PaError above) and the value of stream is invalid. */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 output 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. This has the same effect as passing paNoDevice in the device arguments to Pa_OpenStream(). sampleFormat applies to both the input and output buffers.*/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.*/PaError Pa_CloseStream( PortAudioStream* );/* Pa_StartStream() and Pa_StopStream() begin and terminate audio processing. Pa_StopStream() waits until all pending audio buffers have been played. Pa_AbortStream() stops playing immediately without waiting for pending buffers to complete. */PaError Pa_StartStream( PortAudioStream *stream );PaError Pa_StopStream( PortAudioStream *stream );PaError Pa_AbortStream( PortAudioStream *stream );/* Pa_StreamActive() returns one (1) when the stream is active (ie playing or recording audio), zero (0) 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. */PaError Pa_StreamActive( PortAudioStream *stream );/* Pa_StreamTime() returns the current output time in samples for the stream. This time may be used as a time reference (for example synchronizing audio to MIDI). */PaTimestamp Pa_StreamTime( PortAudioStream *stream );/* Pa_GetCPULoad() returns the CPU Load for the stream. The "CPU Load" is a fraction of total CPU time consumed by the stream's audio processing routines including, but not limited to the client supplied callback. 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. */double Pa_GetCPULoad( PortAudioStream* stream );/* Pa_GetMinNumBuffers() returns the minimum number of buffers required by 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. */int Pa_GetMinNumBuffers( int framesPerBuffer, double sampleRate );/* Pa_Sleep() puts the caller to sleep for at least 'msec' milliseconds. You may sleep longer than the requested time so don't rely on this for accurate musical timing. Pa_Sleep() is provided as a convenience for authors of portable code (such as the tests and examples in the PortAudio distribution.) */void Pa_Sleep( long msec );/* Pa_GetSampleSize() returns the size in bytes of a single sample in the supplied PaSampleFormat, or paSampleFormatNotSupported if the format is no supported. */PaError Pa_GetSampleSize( PaSampleFormat format );#ifdef __cplusplus}#endif /* __cplusplus */#endif /* PORT_AUDIO_H */
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -