#include <CoreAudio/CoreAudio.h>
#include <CoreServices/CoreServices.h>
#include <AudioUnit/AudioUnit.h>
#include <AudioToolbox/AudioToolbox.h>
#include "portaudio.h"
#include "pa_util.h"
#include "pa_hostapi.h"
#include "pa_stream.h"
#include "pa_allocation.h"
#include "pa_cpuload.h"
#include "pa_process.h"
#include "pa_ringbuffer.h"
#include "pa_mac_core_blocking.h"
Go to the source code of this file.
◆ RING_BUFFER_ADVANCE_DENOMINATOR
#define RING_BUFFER_ADVANCE_DENOMINATOR (4) |
◆ PaMacCoreDeviceProperties
typedef struct PaMacCoreDeviceProperties PaMacCoreDeviceProperties |
◆ PaMacCoreStream
typedef struct PaMacCoreStream PaMacCoreStream |
◆ GetStreamReadAvailable()
signed long GetStreamReadAvailable |
( |
PaStream * | stream | ) |
|
◆ GetStreamWriteAvailable()
signed long GetStreamWriteAvailable |
( |
PaStream * | stream | ) |
|
◆ PaMacCore_Initialize()
◆ ReadStream()
PaError ReadStream |
( |
PaStream * | stream, |
|
|
void * | buffer, |
|
|
unsigned long | frames ) |
- Todo
- REVIEW: consider what to do if the input overflows. do we requeue all of the buffers? should we be running a thread to make sure they are always queued? see: http://www.portaudio.com/trac/ticket/117
References buffer, PaMacBlio::inChan, PaMacBlio::inputRingBuffer, PaMacBlio::inputSampleSizeActual, MIN, PA_MAC_BLIO_BUSY_WAIT_SLEEP_INTERVAL, Pa_Sleep(), paInputOverflow, paInputOverflowed, paNoError, PaUtil_GetRingBufferReadAvailable(), PaUtil_ReadRingBuffer(), PaMacBlio::statusFlags, UNIX_ERR, and VVDBUG.
Referenced by PaMacCore_Initialize(), PaOSS_Initialize(), PaSkeleton_Initialize(), PaWasapi_Initialize(), PaWinDs_Initialize(), PaWinMme_Initialize(), and PaWinWdm_Initialize().
◆ WriteStream()
PaError WriteStream |
( |
PaStream * | stream, |
|
|
const void * | buffer, |
|
|
unsigned long | frames ) |
- Todo
- REVIEW: consider what to do if the output underflows. do we requeue all the existing buffers with zeros? should we run a separate thread to keep the buffers enqueued at all times? see: http://www.portaudio.com/trac/ticket/117
References PaMacCoreStream::blio, buffer, MIN, PaMacBlio::outChan, PaMacBlio::outputRingBuffer, PaMacBlio::outputSampleSizeActual, PA_MAC_BLIO_BUSY_WAIT_SLEEP_INTERVAL, Pa_Sleep(), paInternalError, paNoError, paOutputUnderflow, paOutputUnderflowed, PaUtil_GetRingBufferWriteAvailable(), PaUtil_WriteRingBuffer(), PaMacCoreStream::state, PaMacBlio::statusFlags, UNIX_ERR, and VVDBUG.
Referenced by PaMacCore_Initialize(), PaOSS_Initialize(), PaSkeleton_Initialize(), PaWasapi_Initialize(), PaWinDs_Initialize(), PaWinMme_Initialize(), and PaWinWdm_Initialize().