MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
OperatorChain.cpp
Go to the documentation of this file.
1#include "OperatorChain.hpp"
2
4
6
7void OperatorChain::add(std::shared_ptr<NetworkOperator> op)
8{
9 if (!op) {
11 "OperatorChain::add: null operator ignored");
12 return;
13 }
14 m_operators.push_back(std::move(op));
15}
16
17void OperatorChain::remove(const std::shared_ptr<NetworkOperator>& op)
18{
19 auto it = std::ranges::find(m_operators, op);
20 if (it != m_operators.end())
21 m_operators.erase(it);
22}
23
25{
26 m_operators.clear();
27}
28
30{
31 for (const auto& op : m_operators)
32 op->process(dt);
33}
34
35std::shared_ptr<NetworkOperator> OperatorChain::get(size_t index) const
36{
37 if (index >= m_operators.size())
38 return nullptr;
39 return m_operators[index];
40}
41
42} // namespace MayaFlux::Nodes::Network
#define MF_ERROR(comp, ctx,...)
std::vector< std::shared_ptr< NetworkOperator > > m_operators
void clear()
Remove all operators from the chain.
void remove(const std::shared_ptr< NetworkOperator > &op)
Remove a specific operator by pointer identity.
std::shared_ptr< NetworkOperator > get(size_t index) const
Return the operator at the given index, or nullptr if out of range.
void add(std::shared_ptr< NetworkOperator > op)
Append an already-constructed operator to the chain.
void process(float dt)
Call process(dt) on each operator in insertion order.
@ Init
Engine/subsystem initialization.
@ Nodes
DSP Generator and Filter Nodes, graph pipeline, node management.