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