MayaFlux 1.0.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
NodeUtils.hpp File Reference
#include "NodeSpec.hpp"
+ Include dependency graph for NodeUtils.hpp:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  MayaFlux::Nodes::HookEntry
 One registration held by a HookList. More...
 
class  MayaFlux::Nodes::HookList
 Stores, fires and clears the hooks of one node channel. More...
 
class  MayaFlux::Nodes::HookList::Snapshot
 The entries of a list at one instant, kept alive while this object exists. More...
 

Namespaces

namespace  MayaFlux
 Main namespace for the Maya Flux audio engine.
 
namespace  MayaFlux::Nodes
 Contains the node-based computational processing system components.
 

Typedefs

using MayaFlux::Nodes::HookId = uint64_t
 Identifies one registration inside a HookList.
 
using MayaFlux::Nodes::NodeCondition = std::function< bool(NodeContext &)>
 Predicate function type for conditional callbacks.
 
using MayaFlux::Nodes::NodeHook = TypedHook<>
 Alias for TypedHook<NodeContext>.
 
template<typename ContextT = NodeContext>
using MayaFlux::Nodes::TypedHook = std::function< void(ContextT &)>
 Callback function type for node processing events, parameterised on context type.
 

Functions

template<typename ContextT >
NodeHook MayaFlux::Nodes::adapt_hook (const TypedHook< ContextT > &hook)
 Wraps a context-typed hook into a NodeHook.
 
void MayaFlux::Nodes::atomic_add_flag (std::atomic< NodeState > &state, NodeState flag)
 Atomically adds a flag to a node state.
 
void MayaFlux::Nodes::atomic_dec_modulator_count (std::atomic< uint32_t > &count, int amount)
 Atomically decrements the modulator count by a specified amount.
 
void MayaFlux::Nodes::atomic_inc_modulator_count (std::atomic< uint32_t > &count, int amount)
 Atomically increments the modulator count by a specified amount.
 
void MayaFlux::Nodes::atomic_remove_flag (std::atomic< NodeState > &state, NodeState flags)
 Atomically removes a flag from a node state.
 
void MayaFlux::Nodes::atomic_set_flag_strong (std::atomic< NodeState > &flag, const NodeState &desired)
 Atomically sets a node state flag to a specific value.
 
void MayaFlux::Nodes::atomic_set_flag_weak (std::atomic< NodeState > &flag, NodeState &expected, const NodeState &desired)
 Atomically sets a node state flag with weak memory ordering.
 
void MayaFlux::Nodes::atomic_set_strong (std::atomic< NodeState > &flag, NodeState &expected, const NodeState &desired)
 Atomically sets a node state flag with strong memory ordering.
 
std::vector< uint32_t > MayaFlux::Nodes::get_active_channels (const std::shared_ptr< Nodes::Node > &node, uint32_t fallback_channel=0)
 Extracts active channel list from a node's channel mask.
 
std::vector< uint32_t > MayaFlux::Nodes::get_active_channels (uint32_t channel_mask, uint32_t fallback_channel=0)
 Extracts active channel list from a channel mask.
 
void MayaFlux::Nodes::try_reset_processed_state (std::shared_ptr< Node > node)
 Attempts to reset the processed state of a node.
 
void MayaFlux::Nodes::update_routing_state (RoutingState &state)
 Updates the routing state for a node based on its current channel usage.