TracktionEngine
Public Types | Public Member Functions | Static Public Member Functions | List of all members
tracktion::engine::AudioNode Class Referenceabstract

Base class for nodes in an audio playback graph. More...

Inheritance diagram for tracktion::engine::AudioNode:

Public Types

using VisitorFn = std::function< void(AudioNode &)>
 

Public Member Functions

 AudioNode ()
 
virtual ~AudioNode ()
 
virtual void getAudioNodeProperties (AudioNodeProperties &)=0
 
virtual void prepareAudioNodeToPlay (const PlaybackInitialisationInfo &)=0
 tells the node to initialise itself ready for playing from the given time. More...
 
virtual bool purgeSubNodes (bool keepAudio, bool keepMidi)=0
 Tells the node to delete any sub-nodes that don't produce the required type of output. More...
 
virtual void releaseAudioNodeResources ()=0
 tells the node that play has stopped, and it can free up anything it no longer needs. More...
 
virtual void visitNodes (const VisitorFn &)=0
 
virtual juce::ReferenceCountedObjectPtr< PlugingetPlugin () const
 
virtual void prepareForNextBlock (const AudioRenderContext &)
 
virtual bool isReadyToRender ()=0
 
virtual void renderOver (const AudioRenderContext &)=0
 
virtual void renderAdding (const AudioRenderContext &)=0
 
void callRenderAdding (const AudioRenderContext &)
 
void callRenderOver (const AudioRenderContext &)
 

Static Public Member Functions

template<typename CallbackType >
static void invokeSplitRender (const AudioRenderContext &rc, CallbackType &target)
 

Detailed Description

Base class for nodes in an audio playback graph.

Member Typedef Documentation

◆ VisitorFn

using tracktion::engine::AudioNode::VisitorFn = std::function<void(AudioNode&)>

Constructor & Destructor Documentation

◆ AudioNode()

tracktion::engine::AudioNode::AudioNode ( )

◆ ~AudioNode()

virtual tracktion::engine::AudioNode::~AudioNode ( )
virtual

Member Function Documentation

◆ getAudioNodeProperties()

virtual void tracktion::engine::AudioNode::getAudioNodeProperties ( AudioNodeProperties )
pure virtual

◆ prepareAudioNodeToPlay()

virtual void tracktion::engine::AudioNode::prepareAudioNodeToPlay ( const PlaybackInitialisationInfo )
pure virtual

tells the node to initialise itself ready for playing from the given time.

This call may be made more than once before releaseAudioNodeResources() is called

Implemented in tracktion::engine::SubSampleWaveAudioNode, tracktion::engine::PluginAudioNode, tracktion::engine::WaveAudioNode, tracktion::engine::CombiningAudioNode, and tracktion::engine::SingleInputAudioNode.

◆ purgeSubNodes()

virtual bool tracktion::engine::AudioNode::purgeSubNodes ( bool  keepAudio,
bool  keepMidi 
)
pure virtual

Tells the node to delete any sub-nodes that don't produce the required type of output.

This optimises out any unplayable bits of the audio graph. Returns true if this node should be kept, false if this node can itself be deleted.

Implemented in tracktion::engine::SubSampleWaveAudioNode, tracktion::engine::WaveAudioNode, tracktion::engine::PluginAudioNode, tracktion::engine::CombiningAudioNode, and tracktion::engine::SingleInputAudioNode.

◆ releaseAudioNodeResources()

virtual void tracktion::engine::AudioNode::releaseAudioNodeResources ( )
pure virtual

◆ visitNodes()

virtual void tracktion::engine::AudioNode::visitNodes ( const VisitorFn )
pure virtual

◆ getPlugin()

virtual juce::ReferenceCountedObjectPtr<Plugin> tracktion::engine::AudioNode::getPlugin ( ) const
virtual

◆ prepareForNextBlock()

virtual void tracktion::engine::AudioNode::prepareForNextBlock ( const AudioRenderContext )
virtual

◆ isReadyToRender()

virtual bool tracktion::engine::AudioNode::isReadyToRender ( )
pure virtual

◆ renderOver()

virtual void tracktion::engine::AudioNode::renderOver ( const AudioRenderContext )
pure virtual

◆ renderAdding()

virtual void tracktion::engine::AudioNode::renderAdding ( const AudioRenderContext )
pure virtual

◆ callRenderAdding()

void tracktion::engine::AudioNode::callRenderAdding ( const AudioRenderContext )

◆ callRenderOver()

void tracktion::engine::AudioNode::callRenderOver ( const AudioRenderContext )

◆ invokeSplitRender()

template<typename CallbackType >
static void tracktion::engine::AudioNode::invokeSplitRender ( const AudioRenderContext rc,
CallbackType &  target 
)
static

The documentation for this class was generated from the following file: