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

◆ operator|() [3/7]

std::shared_ptr< Nodes::Node > MayaFlux::operator| ( const TemporalWrapper< Nodes::Node > &  wrapper,
const CreationContext ctx 
)

Definition at line 14 of file Temporal.cpp.

15{
16 auto node = wrapper.entity();
17 const auto& spec = wrapper.spec();
18 auto node_token = get_node_token(ctx.domain.value());
19 auto task_token = get_task_token(ctx.domain.value());
20
21 auto activation = std::make_shared<Kriya::TemporalActivation>(
23
24 if (ctx.channels.has_value()) {
25 activation->activate_node(node, spec.seconds, node_token, ctx.channels.value());
26 } else if (ctx.channel.has_value()) {
27 activation->activate_node(node, spec.seconds, node_token, { ctx.channel.value() });
28 } else {
29 activation->activate_node(node, spec.seconds, node_token);
30 }
31
32 static std::vector<std::shared_ptr<Kriya::TemporalActivation>> active_timers;
33 active_timers.push_back(activation);
34
35 if (active_timers.size() > 100) {
36 std::erase_if(active_timers, [](const std::shared_ptr<Kriya::TemporalActivation>& t) {
37 return !t->is_active();
38 });
39 }
40
41 return node;
42}
MAYAFLUX_API Vruta::ProcessingToken get_task_token(Domain domain)
Extracts task processing token from domain.
Definition Domain.hpp:194
MAYAFLUX_API Nodes::ProcessingToken get_node_token(Domain domain)
Extracts node processing token from domain.
Definition Domain.hpp:174
std::shared_ptr< Nodes::NodeGraphManager > get_node_graph_manager()
Gets the node graph manager from the default engine.
Definition Graph.cpp:35
std::shared_ptr< Buffers::BufferManager > get_buffer_manager()
Gets the buffer manager from the default engine.
Definition Graph.cpp:132
std::shared_ptr< Vruta::TaskScheduler > get_scheduler()
Gets the task scheduler from the default engine.
Definition Chronie.cpp:22
std::optional< uint32_t > channel
Definition Creator.hpp:21
std::optional< std::vector< uint32_t > > channels
Definition Creator.hpp:22
std::optional< Domain > domain
Definition Creator.hpp:20

References MayaFlux::CreationContext::channel, MayaFlux::CreationContext::channels, MayaFlux::CreationContext::domain, get_buffer_manager(), get_node_graph_manager(), get_node_token(), get_scheduler(), and get_task_token().

+ Here is the call graph for this function: