30 #include <AudioUnit/AudioUnit.h>
32 namespace cinder {
namespace audio {
namespace cocoa {
34 class DeviceAudioUnit;
35 class ContextAudioUnit;
75 static OSStatus renderCallback(
void *
data, ::AudioUnitRenderActionFlags *flags, const ::AudioTimeStamp *timeStamp, UInt32 busNumber, UInt32 numFrames, ::AudioBufferList *bufferList );
96 static OSStatus inputCallback(
void *
data, ::AudioUnitRenderActionFlags *flags, const ::AudioTimeStamp *timeStamp, UInt32 bus, UInt32 numFrames, ::AudioBufferList *bufferList );
99 size_t mRingBufferPaddingFactor;
119 static OSStatus renderCallback(
void *
data, ::AudioUnitRenderActionFlags *flags, const ::AudioTimeStamp *timeStamp, UInt32 busNumber, UInt32 numFrames, ::AudioBufferList *bufferList );
121 UInt32 mEffectSubType;
139 const ::AudioTimeStamp *mCurrentTimeStamp;
ContextAudioUnit * context
Definition: ContextAudioUnit.h:57
void setParameter(::AudioUnitParameterID paramId, float val)
Definition: ContextAudioUnit.cpp:382
void disableProcessing() override
Callled when this Node should disable processing. Initiated from Node::disable(). ...
Definition: ContextAudioUnit.cpp:119
virtual ::AudioUnit getAudioUnit() const
Definition: ContextAudioUnit.h:42
virtual ~OutputDeviceNodeAudioUnit()=default
void enableProcessing() override
Callled when this Node should enable processing. Initiated from Node::enable().
Definition: ContextAudioUnit.cpp:113
OutputDeviceNodeAudioUnit(const DeviceRef &device, const Format &format=Format())
Definition: ContextAudioUnit.cpp:71
virtual OutputDeviceNodeRef createOutputDeviceNode(const DeviceRef &device, const Node::Format &format=Node::Format()) override
Creates and returns a platform-specific OutputDeviceNode, which delivers audio to the hardware output...
Definition: ContextAudioUnit.cpp:391
bool mOwnsAudioUnit
Definition: ContextAudioUnit.h:49
GLsizei GLsizei GLenum GLenum const GLvoid * data
Definition: GLee.h:1011
Ringbuffer (aka circular buffer) data structure for use in concurrent audio scenarios.
Definition: RingBuffer.h:42
Manages the creation, connections, and lifecycle of audio::Node's.
Definition: Context.h:44
Definition: ContextAudioUnit.h:52
void initialize() override
Called before audio buffers need to be used. There is always a valid Context at this point...
Definition: ContextAudioUnit.cpp:332
RenderData()
Definition: ContextAudioUnit.h:53
Buffer * mProcessBuffer
Definition: ContextAudioUnit.h:50
std::shared_ptr< class OutputDeviceNode > OutputDeviceNodeRef
Definition: OutputNode.h:32
GLuint GLfloat * val
Definition: GLee.h:14636
Definition: ContextAudioUnit.h:125
Definition: ContextAudioUnit.h:37
~RenderData()
Definition: ContextAudioUnit.h:54
GLuint buffer
Definition: GLee.h:2065
void uninitAu()
Definition: ContextAudioUnit.cpp:61
const ::AudioTimeStamp * getCurrentTimeStamp()
all other NodeAudioUnit's need to pass this correctly formatted timestamp to AudioUnitRender ...
Definition: ContextAudioUnit.h:135
void initAu()
Definition: ContextAudioUnit.cpp:55
Interface representing a Node that communicates with a hardware output device. This is typically spea...
Definition: OutputNode.h:71
::AudioUnit mAudioUnit
Definition: ContextAudioUnit.h:48
std::shared_ptr< class Device > DeviceRef
Definition: Device.h:36
virtual ~ContextAudioUnit()
Definition: ContextAudioUnit.cpp:401
Definition: ContextAudioUnit.h:106
void uninitialize() override
Called once the contents of initialize are no longer relevant, i.e. connections have changed...
Definition: ContextAudioUnit.cpp:355
Fundamental building block for creating an audio processing graph.
Definition: Node.h:59
std::unique_ptr<::AudioBufferList, AudioBufferListDeleter > AudioBufferListPtr
Definition: CinderCoreAudio.h:55
void initialize() override
Called before audio buffers need to be used. There is always a valid Context at this point...
Definition: ContextAudioUnit.cpp:77
Definition: ContextAudioUnit.h:61
virtual InputDeviceNodeRef createInputDeviceNode(const DeviceRef &device, const Node::Format &format=Node::Format()) override
Creates and returns a platform-specific InputDeviceNode, which captures audio from the hardware input...
Definition: ContextAudioUnit.cpp:396
void uninitialize() override
Called once the contents of initialize are no longer relevant, i.e. connections have changed...
Definition: ContextAudioUnit.cpp:108
virtual ~EffectAudioUnitNode()
Definition: ContextAudioUnit.cpp:328
void setCurrentTimeStamp(const ::AudioTimeStamp *timeStamp)
set by the OutputNode
Definition: ContextAudioUnit.h:133
struct cinder::audio::cocoa::NodeAudioUnit::RenderData mRenderData
Node * node
Definition: ContextAudioUnit.h:56
GLXContext context
Definition: GLee.h:16985
std::shared_ptr< class InputDeviceNode > InputDeviceNodeRef
Definition: InputNode.h:33
GLenum GLsizei GLenum format
Definition: GLee.h:969
EffectAudioUnitNode(UInt32 subType, const Format &format=Format())
Definition: ContextAudioUnit.cpp:323
void process(Buffer *buffer) override
Override to perform audio processing on buffer.
Definition: ContextAudioUnit.cpp:361
bool supportsProcessInPlace() const override
Default implementation returns true, subclasses should return false if they must process out-of-place...
Definition: ContextAudioUnit.h:72
virtual ~NodeAudioUnit()
Definition: ContextAudioUnit.cpp:47
NodeAudioUnit()
Definition: ContextAudioUnit.h:39