72 void schedule(
double delay_seconds, std::function<
void()> callback);
89 [[nodiscard]]
inline bool is_active()
const {
return m_active; }
177 void execute(
const std::function<
void()>& start_func,
const std::function<
void()>& end_func,
double duration_seconds);
194 [[nodiscard]]
bool is_pending()
const;
263 void activate_node(
const std::shared_ptr<Nodes::Node>& node,
264 double duration_seconds,
266 const std::vector<uint32_t>& channels = {});
281 void activate_network(
const std::shared_ptr<Nodes::Network::NodeNetwork>& network,
282 double duration_seconds,
284 const std::vector<uint32_t>& channels = {});
298 void activate_buffer(
const std::shared_ptr<Buffers::Buffer>& buffer,
299 double duration_seconds,
301 uint32_t channel = 0);
318 [[nodiscard]]
inline bool is_active()
const {
return m_timer.is_active(); }
337 void cleanup_current_operation();
Token-based multimodal buffer management system for unified data stream processing.
Buffers::ProcessingToken m_buffer_token
The processing token associated with the currently active buffer.
~TemporalActivation()=default
std::vector< uint32_t > m_channels
The output channels the current node is connected to.
Nodes::ProcessingToken m_node_token
The processing token associated with the currently active node or buffer.
std::shared_ptr< Buffers::Buffer > m_current_buffer
The currently active buffer being played.
std::shared_ptr< Nodes::Network::NodeNetwork > m_current_network
The currently active network being played.
bool is_active() const
Checks if a node is currently active.
Nodes::NodeGraphManager & m_node_graph_manager
Reference to the graph manager that manages processing nodes.
std::shared_ptr< Nodes::Node > m_current_node
The currently active node being played.
Buffers::BufferManager & m_buffer_manager
Reference to the buffer manager that manages processing buffers.
Timer m_timer
The timer used to schedule processing duration.
Vruta::TaskScheduler & m_scheduler
Reference to the scheduler that manages this timer.
Specialized timer for controlling computational nodes, buffers, and networks.
Vruta::TaskScheduler & m_Scheduler
Reference to the scheduler that manages this action.
Timer m_timer
The timer used to schedule the end function.
Utility for executing actions with a start and end function over a duration.
bool m_active
Flag indicating whether a callback is currently scheduled.
bool is_active() const
Checks if a callback is currently scheduled.
std::function< void()> m_callback
The callback function to execute when the timer fires.
Vruta::TaskScheduler & m_Scheduler
Reference to the scheduler that manages this timer.
std::shared_ptr< Vruta::SoundRoutine > m_routine
The underlying computational routine that implements the timer.
High-level utility for scheduling one-shot timed callbacks.
Central manager for the computational processing node graph.
Token-based multimodal task scheduling system for unified coroutine processing.
ProcessingToken
Bitfield enum defining processing characteristics and backend requirements for buffer operations.
ProcessingToken
Enumerates the different processing domains for nodes.
Contains the node-based computational processing system components.