Return error if opened in mono mode cuz not supported.
Add support for Pa_GetCPULoad();
Fixed timestamp in callback and Pa_StreamTime() (Thanks n++k for the advice!)
Check for invalid sample rates and return an error.
Check for getenv("PA_MIN_LATEWNCY_MSEC") to set latency externally.
Better error checking for invalid channel counts and invalid devices.
34 lines
1.1 KiB
Text
34 lines
1.1 KiB
Text
Notes on Core Audio Implementation of PortAudio
|
|
|
|
by Phil Burk and Darren Gibbs
|
|
|
|
Document last updated March 20, 2002
|
|
|
|
WHAT WORKS
|
|
|
|
Output with very low latency, <10 msec.
|
|
Half duplex input or output.
|
|
Full duplex on the same CoreAudio device.
|
|
The paFLoat32, paInt16, paInt8, paUInt8 sample formats.
|
|
Pa_GetCPULoad()
|
|
Pa_StreamTime()
|
|
|
|
KNOWN BUGS OR LIMITATIONS
|
|
|
|
We do not yet support simultaneous input and output on different
|
|
devices. Note that some CoreAudio devices like the Roland UH30 look
|
|
like one device but are actually two different CoreAudio devices. The
|
|
BuiltIn audio is typically one CoreAudio device.
|
|
|
|
Mono doesn't work.
|
|
|
|
DEVICE MAPPING
|
|
|
|
CoreAudio devices can support both input and output. But the sample
|
|
rates supported may be different. So we have map one or two PortAudio
|
|
device to each CoreAudio device depending on whether it supports
|
|
input, output or both.
|
|
|
|
When we query devices, we first get a list of CoreAudio devices. Then
|
|
we scan the list and add a PortAudio device for each CoreAudio device
|
|
that supports input. Then we make a scan for output devices.
|