TracktionEngine
|
Plays back a Node with PlayHeadState and ProcessState. More...
#include <tracktion_TracktionNodePlayer.h>
Public Member Functions | |
TracktionNodePlayer (ProcessState &processStateToUse) | |
Creates an NodePlayer to process a Node. | |
TracktionNodePlayer (ProcessState &processStateToUse, tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPoolCreator poolCreator, juce::AudioWorkgroup audioWorkgroup={}) | |
Creates an NodePlayer to process a Node. | |
TracktionNodePlayer (std::unique_ptr< tracktion::graph::Node > node, ProcessState &processStateToUse, double sampleRate, int blockSize, tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPoolCreator poolCreator) | |
Creates an NodePlayer to process a Node. | |
void | setNumThreads (size_t numThreads) |
Sets the number of threads to use for rendering. | |
tracktion::graph::Node * | getNode () |
void | setNode (std::unique_ptr< tracktion::graph::Node > newNode) |
void | setNode (std::unique_ptr< tracktion::graph::Node > newNode, double sampleRateToUse, int blockSizeToUse) |
void | prepareToPlay (double sampleRateToUse, int blockSizeToUse) |
int | process (const tracktion::graph::Node::ProcessContext &pc) |
Processes a block of audio and MIDI data. | |
void | clearNode () |
Clears the Node currently playing. | |
double | getSampleRate () const |
Returns the current sample rate. | |
void | enablePooledMemoryAllocations (bool enablePooledMemory) |
void | enableNodeMemorySharing (bool enableNodeMemorySharing) |
Plays back a Node with PlayHeadState and ProcessState.
tracktion::engine::TracktionNodePlayer::TracktionNodePlayer | ( | ProcessState & | processStateToUse | ) |
Creates an NodePlayer to process a Node.
tracktion::engine::TracktionNodePlayer::TracktionNodePlayer | ( | ProcessState & | processStateToUse, |
tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPoolCreator | poolCreator, | ||
juce::AudioWorkgroup | audioWorkgroup = {} |
||
) |
Creates an NodePlayer to process a Node.
tracktion::engine::TracktionNodePlayer::TracktionNodePlayer | ( | std::unique_ptr< tracktion::graph::Node > | node, |
ProcessState & | processStateToUse, | ||
double | sampleRate, | ||
int | blockSize, | ||
tracktion::graph::LockFreeMultiThreadedNodePlayer::ThreadPoolCreator | poolCreator | ||
) |
Creates an NodePlayer to process a Node.
References tracktion::graph::LockFreeMultiThreadedNodePlayer::setNode().
void tracktion::engine::TracktionNodePlayer::setNumThreads | ( | size_t | numThreads | ) |
Sets the number of threads to use for rendering.
This can be 0 in which case only the process calling thread will be used for processing. N.B. this will pause processing whilst updating the threads so there will be a gap in the audio.
References tracktion::graph::LockFreeMultiThreadedNodePlayer::setNumThreads().
tracktion::graph::Node * tracktion::engine::TracktionNodePlayer::getNode | ( | ) |
void tracktion::engine::TracktionNodePlayer::setNode | ( | std::unique_ptr< tracktion::graph::Node > | newNode | ) |
void tracktion::engine::TracktionNodePlayer::setNode | ( | std::unique_ptr< tracktion::graph::Node > | newNode, |
double | sampleRateToUse, | ||
int | blockSizeToUse | ||
) |
void tracktion::engine::TracktionNodePlayer::prepareToPlay | ( | double | sampleRateToUse, |
int | blockSizeToUse | ||
) |
int tracktion::engine::TracktionNodePlayer::process | ( | const tracktion::graph::Node::ProcessContext & | pc | ) |
Processes a block of audio and MIDI data.
Returns the number of times a node was checked but unable to be processed.
References tracktion::graph::PlayHeadState::playHead, tracktion::graph::Node::ProcessContext::referenceSampleRange, and tracktion::graph::PlayHead::setReferenceSampleRange().
void tracktion::engine::TracktionNodePlayer::clearNode | ( | ) |
Clears the Node currently playing.
References tracktion::graph::LockFreeMultiThreadedNodePlayer::clearNode().
double tracktion::engine::TracktionNodePlayer::getSampleRate | ( | ) | const |
Returns the current sample rate.
References tracktion::graph::LockFreeMultiThreadedNodePlayer::getSampleRate().
void tracktion::engine::TracktionNodePlayer::enablePooledMemoryAllocations | ( | bool | enablePooledMemory | ) |
void tracktion::engine::TracktionNodePlayer::enableNodeMemorySharing | ( | bool | enableNodeMemorySharing | ) |
References enableNodeMemorySharing(), and tracktion::graph::LockFreeMultiThreadedNodePlayer::enableNodeMemorySharing().
Referenced by enableNodeMemorySharing().