TracktionEngine
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
tracktion::engine::PluginAudioNode Class Reference
Inheritance diagram for tracktion::engine::PluginAudioNode:

Public Member Functions

 PluginAudioNode (const Plugin::Ptr &p, AudioNode *in, bool denormalisationNoise)
 
 ~PluginAudioNode () override
 
void getAudioNodeProperties (AudioNodeProperties &info) override
 
void visitNodes (const VisitorFn &v) override
 
Plugin::Ptr getPlugin () const override
 
bool purgeSubNodes (bool keepAudio, bool keepMidi) override
 Tells the node to delete any sub-nodes that don't produce the required type of output. More...
 
void prepareAudioNodeToPlay (const PlaybackInitialisationInfo &info) override
 tells the node to initialise itself ready for playing from the given time. More...
 
bool isReadyToRender () override
 
double getLatencySeconds () const noexcept
 
void releaseAudioNodeResources () override
 tells the node that play has stopped, and it can free up anything it no longer needs. More...
 
void renderAdding (const AudioRenderContext &rc) override
 
void renderOver (const AudioRenderContext &rc) override
 
virtual void renderPlugin (const AudioRenderContext &rc)
 
void prepareForNextBlock (const AudioRenderContext &rc) override
 
- Public Member Functions inherited from tracktion::engine::AudioNode
 AudioNode ()
 
virtual ~AudioNode ()
 
void callRenderAdding (const AudioRenderContext &)
 
void callRenderOver (const AudioRenderContext &)
 

Protected Member Functions

PluginRenderContext createPluginRenderContext (const AudioRenderContext &rc)
 

Protected Attributes

Plugin::Ptr plugin
 
std::unique_ptr< AudioNodeinput
 
bool hasAudioInput = false
 
bool hasMidiInput = false
 
bool applyAntiDenormalisationNoise = false
 
bool hasInitialised = false
 
double latencySeconds = 0.0
 

Additional Inherited Members

- Public Types inherited from tracktion::engine::AudioNode
using VisitorFn = std::function< void(AudioNode &)>
 
- Static Public Member Functions inherited from tracktion::engine::AudioNode
template<typename CallbackType >
static void invokeSplitRender (const AudioRenderContext &rc, CallbackType &target)
 

Constructor & Destructor Documentation

◆ PluginAudioNode()

tracktion::engine::PluginAudioNode::PluginAudioNode ( const Plugin::Ptr p,
AudioNode in,
bool  denormalisationNoise 
)

References input, and plugin.

◆ ~PluginAudioNode()

tracktion::engine::PluginAudioNode::~PluginAudioNode ( )
override

Member Function Documentation

◆ getAudioNodeProperties()

void tracktion::engine::PluginAudioNode::getAudioNodeProperties ( AudioNodeProperties info)
overridevirtual

◆ visitNodes()

void tracktion::engine::PluginAudioNode::visitNodes ( const VisitorFn v)
overridevirtual

Implements tracktion::engine::AudioNode.

References input.

◆ getPlugin()

Plugin::Ptr tracktion::engine::PluginAudioNode::getPlugin ( ) const
overridevirtual

Reimplemented from tracktion::engine::AudioNode.

References plugin.

◆ purgeSubNodes()

bool tracktion::engine::PluginAudioNode::purgeSubNodes ( bool  keepAudio,
bool  keepMidi 
)
overridevirtual

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.

Implements tracktion::engine::AudioNode.

References input, and plugin.

◆ prepareAudioNodeToPlay()

void tracktion::engine::PluginAudioNode::prepareAudioNodeToPlay ( const PlaybackInitialisationInfo )
overridevirtual

◆ isReadyToRender()

bool tracktion::engine::PluginAudioNode::isReadyToRender ( )
overridevirtual

Implements tracktion::engine::AudioNode.

References input.

◆ getLatencySeconds()

double tracktion::engine::PluginAudioNode::getLatencySeconds ( ) const
noexcept

References latencySeconds.

◆ releaseAudioNodeResources()

void tracktion::engine::PluginAudioNode::releaseAudioNodeResources ( )
overridevirtual

tells the node that play has stopped, and it can free up anything it no longer needs.

Implements tracktion::engine::AudioNode.

References hasInitialised, input, and plugin.

Referenced by ~PluginAudioNode().

◆ renderAdding()

void tracktion::engine::PluginAudioNode::renderAdding ( const AudioRenderContext rc)
overridevirtual

◆ renderOver()

void tracktion::engine::PluginAudioNode::renderOver ( const AudioRenderContext rc)
overridevirtual

◆ renderPlugin()

virtual void tracktion::engine::PluginAudioNode::renderPlugin ( const AudioRenderContext rc)
virtual

◆ prepareForNextBlock()

void tracktion::engine::PluginAudioNode::prepareForNextBlock ( const AudioRenderContext rc)
overridevirtual

◆ createPluginRenderContext()

PluginRenderContext tracktion::engine::PluginAudioNode::createPluginRenderContext ( const AudioRenderContext rc)
protected

Member Data Documentation

◆ plugin

Plugin::Ptr tracktion::engine::PluginAudioNode::plugin
protected

◆ input

std::unique_ptr<AudioNode> tracktion::engine::PluginAudioNode::input
protected

◆ hasAudioInput

bool tracktion::engine::PluginAudioNode::hasAudioInput = false
protected

Referenced by getAudioNodeProperties().

◆ hasMidiInput

bool tracktion::engine::PluginAudioNode::hasMidiInput = false
protected

Referenced by getAudioNodeProperties().

◆ applyAntiDenormalisationNoise

bool tracktion::engine::PluginAudioNode::applyAntiDenormalisationNoise = false
protected

Referenced by renderPlugin().

◆ hasInitialised

bool tracktion::engine::PluginAudioNode::hasInitialised = false
protected

◆ latencySeconds

double tracktion::engine::PluginAudioNode::latencySeconds = 0.0
protected

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