TracktionEngine
|
Plays back a Node with PlayHeadState and ProcessState. More...
#include <tracktion_MultiThreadedNodePlayer.h>
Public Member Functions | |
MultiThreadedNodePlayer (ProcessState &processStateToUse) | |
Creates an NodePlayer to process a Node. | |
MultiThreadedNodePlayer (std::unique_ptr< tracktion::graph::Node > node, ProcessState &processStateToUse, double sampleRate, int blockSize) | |
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. | |
Plays back a Node with PlayHeadState and ProcessState.
tracktion::engine::MultiThreadedNodePlayer::MultiThreadedNodePlayer | ( | ProcessState & | processStateToUse | ) |
Creates an NodePlayer to process a Node.
tracktion::engine::MultiThreadedNodePlayer::MultiThreadedNodePlayer | ( | std::unique_ptr< tracktion::graph::Node > | node, |
ProcessState & | processStateToUse, | ||
double | sampleRate, | ||
int | blockSize | ||
) |
Creates an NodePlayer to process a Node.
References tracktion::graph::MultiThreadedNodePlayer::setNode().
void tracktion::engine::MultiThreadedNodePlayer::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::MultiThreadedNodePlayer::setNumThreads().
tracktion::graph::Node * tracktion::engine::MultiThreadedNodePlayer::getNode | ( | ) |
void tracktion::engine::MultiThreadedNodePlayer::setNode | ( | std::unique_ptr< tracktion::graph::Node > | newNode | ) |
void tracktion::engine::MultiThreadedNodePlayer::setNode | ( | std::unique_ptr< tracktion::graph::Node > | newNode, |
double | sampleRateToUse, | ||
int | blockSizeToUse | ||
) |
void tracktion::engine::MultiThreadedNodePlayer::prepareToPlay | ( | double | sampleRateToUse, |
int | blockSizeToUse | ||
) |
int tracktion::engine::MultiThreadedNodePlayer::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::Node::AudioAndMidiBuffer::audio, tracktion::graph::Node::ProcessContext::buffers, tracktion::engine::MidiMessageArray::clear(), tracktion::engine::ProcessState::editTimeRange, tracktion::graph::MultiThreadedNodePlayer::getSampleRate(), tracktion::graph::Node::AudioAndMidiBuffer::midi, tracktion::graph::Node::ProcessContext::numSamples, tracktion::graph::PlayHeadState::playHead, tracktion::graph::MultiThreadedNodePlayer::process(), tracktion::graph::Node::ProcessContext::referenceSampleRange, tracktion::graph::PlayHead::setReferenceSampleRange(), tracktion::engine::ProcessState::update(), and tracktion::engine::ProcessState::yes.
void tracktion::engine::MultiThreadedNodePlayer::clearNode | ( | ) |
Clears the Node currently playing.
References tracktion::graph::MultiThreadedNodePlayer::clearNode().
double tracktion::engine::MultiThreadedNodePlayer::getSampleRate | ( | ) | const |
Returns the current sample rate.
References tracktion::graph::MultiThreadedNodePlayer::getSampleRate().