51 void prepareToPlay (
double sampleRateToUse,
int blockSizeToUse);
56 if (
auto cpn = currentPreparedNode.
load (std::memory_order_acquire);
57 cpn !=
nullptr && cpn->graph !=
nullptr)
58 return cpn->graph->rootNode.get();
77 return sampleRate.
load (std::memory_order_acquire);
83 choc::buffer::FrameCount numSamplesToProcess;
92 PlaybackNode (Node& n)
93 : node (n), numInputs (node.getDirectInputNodes().size())
97 const size_t numInputs;
110 choc::fifo::MultipleReaderMultipleWriterFIFO<Node*> nodesReadyToBeProcessed;
113 RealTimeSpinLock preparedNodeMutex;
118 RealTimeSpinLock clearNodesLock;
130 void createThreads();
138 void resetProcessQueue();
139 Node* updateProcessQueueForNode (Node&);
140 void processNode (Node&);
143 bool processNextFreeNode();
Struct to describe a single iteration of a process call.