MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ process_batch()

void MayaFlux::Nodes::Network::RelationNetwork::process_batch ( unsigned int  num_samples)
overridevirtual

Process the network for the given number of samples.

Parameters
num_samplesNumber of samples/frames to process

Subclasses implement their specific processing logic:

  1. Update internal state (physics, relationships, etc.)
  2. Process individual nodes
  3. Apply inter-node interactions
  4. Aggregate outputs if needed

Called by NodeGraphManager during token processing.

Implements MayaFlux::Nodes::Network::NodeNetwork.

Definition at line 75 of file RelationNetwork.cpp.

76{
78
79 for (const auto& op : chain->operators()) {
80 if (auto* relation_op = dynamic_cast<RelationOperator*>(op.get())) {
81 relation_op->set_slots(m_slots);
82 relation_op->begin_block();
83 }
84 }
85
86 chain->process(static_cast<float>(num_samples));
87
88 while (m_audio_buffer_lock.test_and_set(std::memory_order_acquire))
89 std::this_thread::yield();
90
91 if (!m_publishers.empty() && m_publishers.front()->get_output_count() > 0) {
92 auto block = m_publishers.front()->get_output_block(0);
93 m_last_audio_buffer.assign(block.begin(), block.end());
95 } else {
96 m_last_audio_buffer.clear();
97 }
98
99 m_audio_buffer_lock.clear(std::memory_order_release);
100}
BufferProcessingChain * chain
void apply_output_scale()
Apply m_output_scale to m_last_audio_buffer.
std::shared_ptr< OperatorChain > get_operator_chain() const
Access the secondary operator chain.
std::atomic_flag m_audio_buffer_lock
Spinlock guarding m_last_audio_buffer.
std::vector< double > m_last_audio_buffer
std::vector< std::shared_ptr< RelationOperator > > m_publishers

References MayaFlux::Nodes::Network::NodeNetwork::apply_output_scale(), chain, MayaFlux::Nodes::Network::NodeNetwork::get_operator_chain(), MayaFlux::Nodes::Network::NodeNetwork::m_audio_buffer_lock, MayaFlux::Nodes::Network::NodeNetwork::m_last_audio_buffer, m_publishers, and m_slots.

+ Here is the call graph for this function: