LMMS
Loading...
Searching...
No Matches
water::GraphRenderingOps::RenderingOpSequenceCalculator Struct Reference

Public Member Functions

 RenderingOpSequenceCalculator (AudioProcessorGraph &g, const Array< AudioProcessorGraph::Node * > &nodes, Array< void * > &renderingOps)
int getNumAudioBuffersNeeded () const noexcept
int getNumCVBuffersNeeded () const noexcept
int getNumMidiBuffersNeeded () const noexcept

Private Types

enum  { freeNodeID = 0xffffffff , zeroNodeID = 0xfffffffe , anonymousNodeID = 0xfffffffd }

Private Member Functions

int getNodeDelay (const uint32 nodeID) const
void setNodeDelay (const uint32 nodeID, const int latency)
int getInputLatencyForNode (const uint32 nodeID) const
void createRenderingOpsForNode (AudioProcessorGraph::Node &node, Array< void * > &renderingOps, const int ourRenderingIndex)
int getFreeBuffer (const AudioProcessor::ChannelType channelType)
int getReadOnlyEmptyBuffer () const noexcept
int getBufferContaining (const AudioProcessor::ChannelType channelType, const uint32 nodeId, const uint outputChannel) const noexcept
void markAnyUnusedBuffersAsFree (const int stepIndex)
bool isBufferNeededLater (const AudioProcessor::ChannelType channelType, int stepIndexToSearchFrom, uint inputChannelOfIndexToIgnore, const uint32 nodeId, const uint outputChanIndex) const
void markBufferAsContaining (const AudioProcessor::ChannelType channelType, int bufferNum, uint32 nodeId, int outputIndex)

Static Private Member Functions

static bool isNodeBusy (uint32 nodeID) noexcept

Private Attributes

AudioProcessorGraphgraph
const Array< AudioProcessorGraph::Node * > & orderedNodes
Array< uintaudioChannels
Array< uintcvChannels
Array< uint32audioNodeIds
Array< uint32cvNodeIds
Array< uint32midiNodeIds
Array< uint32nodeDelayIDs
Array< intnodeDelays
int totalLatency

Detailed Description

Used to calculate the correct sequence of rendering ops needed, based on the best re-use of shared buffers at each stage.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
private
Enumerator
freeNodeID 
zeroNodeID 
anonymousNodeID 

Constructor & Destructor Documentation

◆ RenderingOpSequenceCalculator()

water::GraphRenderingOps::RenderingOpSequenceCalculator::RenderingOpSequenceCalculator ( AudioProcessorGraph & g,
const Array< AudioProcessorGraph::Node * > & nodes,
Array< void * > & renderingOps )
inline

Member Function Documentation

◆ createRenderingOpsForNode()

void water::GraphRenderingOps::RenderingOpSequenceCalculator::createRenderingOpsForNode ( AudioProcessorGraph::Node & node,
Array< void * > & renderingOps,
const int ourRenderingIndex )
inlineprivate

◆ getBufferContaining()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getBufferContaining ( const AudioProcessor::ChannelType channelType,
const uint32 nodeId,
const uint outputChannel ) const
inlineprivatenoexcept

◆ getFreeBuffer()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getFreeBuffer ( const AudioProcessor::ChannelType channelType)
inlineprivate

◆ getInputLatencyForNode()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getInputLatencyForNode ( const uint32 nodeID) const
inlineprivate

◆ getNodeDelay()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getNodeDelay ( const uint32 nodeID) const
inlineprivate

◆ getNumAudioBuffersNeeded()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getNumAudioBuffersNeeded ( ) const
inlinenoexcept

◆ getNumCVBuffersNeeded()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getNumCVBuffersNeeded ( ) const
inlinenoexcept

◆ getNumMidiBuffersNeeded()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getNumMidiBuffersNeeded ( ) const
inlinenoexcept

◆ getReadOnlyEmptyBuffer()

int water::GraphRenderingOps::RenderingOpSequenceCalculator::getReadOnlyEmptyBuffer ( ) const
inlineprivatenoexcept

◆ isBufferNeededLater()

bool water::GraphRenderingOps::RenderingOpSequenceCalculator::isBufferNeededLater ( const AudioProcessor::ChannelType channelType,
int stepIndexToSearchFrom,
uint inputChannelOfIndexToIgnore,
const uint32 nodeId,
const uint outputChanIndex ) const
inlineprivate

◆ isNodeBusy()

bool water::GraphRenderingOps::RenderingOpSequenceCalculator::isNodeBusy ( uint32 nodeID)
inlinestaticprivatenoexcept

◆ markAnyUnusedBuffersAsFree()

void water::GraphRenderingOps::RenderingOpSequenceCalculator::markAnyUnusedBuffersAsFree ( const int stepIndex)
inlineprivate

◆ markBufferAsContaining()

void water::GraphRenderingOps::RenderingOpSequenceCalculator::markBufferAsContaining ( const AudioProcessor::ChannelType channelType,
int bufferNum,
uint32 nodeId,
int outputIndex )
inlineprivate

◆ setNodeDelay()

void water::GraphRenderingOps::RenderingOpSequenceCalculator::setNodeDelay ( const uint32 nodeID,
const int latency )
inlineprivate

Member Data Documentation

◆ audioChannels

Array<uint> water::GraphRenderingOps::RenderingOpSequenceCalculator::audioChannels
private

◆ audioNodeIds

Array<uint32> water::GraphRenderingOps::RenderingOpSequenceCalculator::audioNodeIds
private

◆ cvChannels

Array<uint> water::GraphRenderingOps::RenderingOpSequenceCalculator::cvChannels
private

◆ cvNodeIds

Array<uint32> water::GraphRenderingOps::RenderingOpSequenceCalculator::cvNodeIds
private

◆ graph

AudioProcessorGraph& water::GraphRenderingOps::RenderingOpSequenceCalculator::graph
private

◆ midiNodeIds

Array<uint32> water::GraphRenderingOps::RenderingOpSequenceCalculator::midiNodeIds
private

◆ nodeDelayIDs

Array<uint32> water::GraphRenderingOps::RenderingOpSequenceCalculator::nodeDelayIDs
private

◆ nodeDelays

Array<int> water::GraphRenderingOps::RenderingOpSequenceCalculator::nodeDelays
private

◆ orderedNodes

const Array<AudioProcessorGraph::Node*>& water::GraphRenderingOps::RenderingOpSequenceCalculator::orderedNodes
private

◆ totalLatency

int water::GraphRenderingOps::RenderingOpSequenceCalculator::totalLatency
private

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