struct CCL::IAudioGraph
Overview
A realtime audio processing graph of IAudioNode instances. More…
#include <iaudiograph.h> struct IAudioGraph: public CCL::IAudioComponent { // methods virtual tresult CCL_API addNode (IAudioNode* node) = 0; virtual tresult CCL_API removeNode (IAudioNode* node) = 0; virtual IAudioNode*CCL_API findNode (StringID nodeId) const = 0; IAudioGraph IAudioProcessor* asProcessor (); template <typename INodeType> INodeType* find (StringID nodeId) const; };
Inherited Members
public: // enums enum CapabilityFlags; // methods virtual tresult CCL_API queryInterface (UIDRef iid, void** ptr) = 0; virtual unsigned int CCL_API retain () = 0; virtual unsigned int CCL_API release () = 0; virtual tresult CCL_API initialize (IUnknown* context = nullptr) = 0; virtual tresult CCL_API terminate () = 0; virtual tbool CCL_API canTerminate () const = 0; virtual CapabilityFlags CCL_API getCapabilities () const = 0; virtual tresult CCL_API setStreamLayout (const IAudioStreamLayout& layout) = 0; virtual const IAudioStreamLayout&CCL_API getStreamLayout () const = 0; virtual tresult CCL_API setStreamActive ( AudioStreamDirection direction, int index, tbool active ) = 0; virtual tresult CCL_API getProcessConfiguration (AudioProcessConfiguration& configuration) const = 0; virtual tresult CCL_API setProcessConfiguration (const AudioProcessConfiguration& configuration) = 0; virtual tresult CCL_API getLatency ( int& latencyInSamples, AudioStreamDirection direction ) const = 0; virtual tbool CCL_API isActive () const = 0; virtual tresult CCL_API setActive (tbool state) = 0; IAudioComponent bool hasKnownStreamLayout () const; bool hasMutableStreamLayout () const; bool hasStreamActivation () const; bool hasKnownLatency () const;
Detailed Documentation
A realtime audio processing graph of IAudioNode instances.
The graph holds and configures nodes, and drives processing.
Additional interfaces:
IAudioDisplayLatency (forwarded to nodes)
Float type is currently limited to 32 bit floating-point.
Methods
virtual tresult CCL_API addNode (IAudioNode* node) = 0
Add node to graph - graph takes ownership.
Graph configures node with current process configuration, and node becomes ready to connect.
virtual tresult CCL_API removeNode (IAudioNode* node) = 0
Remove node from graph - ownership is transferred to caller.
virtual IAudioNode*CCL_API findNode (StringID nodeId) const = 0
Find node by identifier (returns first match).