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

Go to the source code of this file.

Namespaces

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

Functions

std::shared_ptr< Nodes::NodeGraphManagerMayaFlux::get_node_graph_manager ()
 Gets the node graph manager from the default engine.
 
void MayaFlux::register_audio_node (const std::shared_ptr< Nodes::Node > &node, uint32_t channel=0)
 Adds a node to the root node of a specific channel.
 
void MayaFlux::register_audio_node (const std::shared_ptr< Nodes::Node > &node, const std::vector< uint32_t > &channels)
 Adds a node to the root node of specified channels.
 
void MayaFlux::register_node (const std::shared_ptr< Nodes::Node > &node, const Nodes::ProcessingToken &token, uint32_t channel)
 
void MayaFlux::unregister_audio_node (const std::shared_ptr< Nodes::Node > &node, uint32_t channel=0)
 Removes a node from the root node of a specific channel.
 
void MayaFlux::unregister_node (const std::shared_ptr< Nodes::Node > &node, const Nodes::ProcessingToken &token, uint32_t channel=0)
 Removes a node from the root node of specified channels.
 
void MayaFlux::unregister_audio_node (const std::shared_ptr< Nodes::Node > &node, const std::vector< uint32_t > &channels)
 Removes a node from the root node from list of channels.
 
Nodes::RootNodeMayaFlux::get_audio_channel_root (uint32_t channel=0)
 Gets the root node for a specific channel.
 
template<typename NodeType , typename... Args>
requires std::derived_from<NodeType, Nodes::Node>
auto MayaFlux::create_node (Args &&... args) -> std::shared_ptr< NodeType >
 
void MayaFlux::register_node_network (const std::shared_ptr< Nodes::NodeNetwork > &network, const Nodes::ProcessingToken &token=Nodes::ProcessingToken::AUDIO_RATE)
 Registers a node network with the default engine's node graph manager.
 
void MayaFlux::unregister_node_network (const std::shared_ptr< Nodes::NodeNetwork > &network, const Nodes::ProcessingToken &token=Nodes::ProcessingToken::AUDIO_RATE)
 Unregisters a node network from the default engine's node graph manager.
 
template<typename NodeNetworkType , typename... Args>
requires std::derived_from<NodeNetworkType, Nodes::NodeNetwork>
auto MayaFlux::create_node_network (Args &&... args) -> std::shared_ptr< NodeNetworkType >
 Creates a new node network.
 
std::shared_ptr< Buffers::BufferManagerMayaFlux::get_buffer_manager ()
 Gets the buffer manager from the default engine.
 
void MayaFlux::add_processor (const std::shared_ptr< Buffers::BufferProcessor > &processor, const std::shared_ptr< Buffers::Buffer > &buffer, Buffers::ProcessingToken token=Buffers::ProcessingToken::AUDIO_BACKEND)
 Adds a processor to a specific buffer.
 
void MayaFlux::add_processor (const std::shared_ptr< Buffers::BufferProcessor > &processor, Buffers::ProcessingToken token, uint32_t channel)
 Adds a processor to all buffers in a specific channel.
 
void MayaFlux::add_processor (const std::shared_ptr< Buffers::BufferProcessor > &processor, Buffers::ProcessingToken token=Buffers::ProcessingToken::AUDIO_BACKEND)
 Adds a processor to all buffers in a processing domain.
 
void MayaFlux::register_audio_buffer (const std::shared_ptr< Buffers::AudioBuffer > &buffer, uint32_t channel=0)
 Registers an AudioBuffer with the default engine's buffer manager.
 
void MayaFlux::unregister_audio_buffer (const std::shared_ptr< Buffers::AudioBuffer > &buffer, uint32_t channel=0)
 Unregisters an AudioBuffer from the default engine's buffer manager.
 
template<typename BufferType , typename... Args>
requires std::derived_from<BufferType, Buffers::AudioBuffer>
auto MayaFlux::create_buffer (uint32_t channel, uint32_t buffer_size, Args &&... args) -> std::shared_ptr< BufferType >
 creates a new buffer of the specified type and registers it
 
void MayaFlux::register_graphics_buffer (const std::shared_ptr< Buffers::VKBuffer > &buffer, Buffers::ProcessingToken token=Buffers::ProcessingToken::GRAPHICS_BACKEND)
 Registers a VKBuffer with the default engine's buffer manager.
 
void MayaFlux::unregister_graphics_buffer (const std::shared_ptr< Buffers::VKBuffer > &buffer)
 Unregisters a VKBuffer from the default engine's buffer manager.
 
template<typename BufferType , typename... Args>
requires std::derived_from<BufferType, Buffers::VKBuffer>
auto MayaFlux::create_buffer (Args &&... args) -> std::shared_ptr< BufferType >
 creates a new graphics buffer of the specified type and registers it
 
template<typename ProcessorType , typename... Args>
requires std::derived_from<ProcessorType, Buffers::BufferProcessor>
auto MayaFlux::create_processor (const std::shared_ptr< Buffers::AudioBuffer > buffer, Args &&... args) -> std::shared_ptr< ProcessorType >
 Creates a new processor and adds it to a buffer.
 
template<typename ProcessorType , typename... Args>
requires std::derived_from<ProcessorType, Buffers::BufferProcessor>
auto MayaFlux::create_processor (const std::shared_ptr< Buffers::VKBuffer > buffer, Args &&... args) -> std::shared_ptr< ProcessorType >
 
std::shared_ptr< Buffers::BufferProcessingChainMayaFlux::create_processing_chain ()
 Creates a new processing chain for the default engine.
 
Buffers::RootAudioBufferMayaFlux::get_root_audio_buffer (uint32_t channel)
 Gets the audio buffer for a specific channel.
 
void MayaFlux::connect_node_to_channel (const std::shared_ptr< Nodes::Node > &node, uint32_t channel_index=0, float mix=0.5F, bool clear_before=false)
 Connects a node to a specific output channel.
 
void MayaFlux::connect_node_to_buffer (const std::shared_ptr< Nodes::Node > &node, const std::shared_ptr< Buffers::AudioBuffer > &buffer, float mix=0.5F, bool clear_before=true)
 Connects a node to a specific buffer.
 
std::shared_ptr< Buffers::BufferProcessorMayaFlux::attach_quick_process (Buffers::BufferProcessingFunction processor, const std::shared_ptr< Buffers::AudioBuffer > &buffer)
 Attaches a processing function to a specific buffer.
 
std::shared_ptr< Buffers::BufferProcessorMayaFlux::attach_quick_process (Buffers::BufferProcessingFunction processor, unsigned int channel_id=0)
 Attaches a processing function to a specific channel.
 
void MayaFlux::read_from_audio_input (const std::shared_ptr< Buffers::AudioBuffer > &buffer, uint32_t channel=0)
 Reads audio data from the default input source into a buffer.
 
void MayaFlux::detach_from_audio_input (const std::shared_ptr< Buffers::AudioBuffer > &buffer, uint32_t channel=0)
 Stops reading audio data from the default input source.
 
std::shared_ptr< Buffers::AudioBufferMayaFlux::create_input_listener_buffer (uint32_t channel=0, bool add_to_output=false)
 Creates a new AudioBuffer for input listening.
 
std::vector< std::shared_ptr< Buffers::AudioBuffer > > MayaFlux::clone_buffer_to_channels (const std::shared_ptr< Buffers::AudioBuffer > &buffer, const std::vector< uint32_t > &channels)
 Clones a buffer to multiple channels.
 
std::vector< std::shared_ptr< Buffers::AudioBuffer > > MayaFlux::clone_buffer_to_channels (const std::shared_ptr< Buffers::AudioBuffer > &buffer, const std::vector< uint32_t > &channels, const Buffers::ProcessingToken &token)
 
void MayaFlux::supply_buffer_to_channel (const std::shared_ptr< Buffers::AudioBuffer > &buffer, uint32_t channel, double mix=1.0)
 Supplies a buffer to a single channel with mixing.
 
void MayaFlux::supply_buffer_to_channels (const std::shared_ptr< Buffers::AudioBuffer > &buffer, const std::vector< uint32_t > &channels, double mix=1.0)
 Supplies a buffer to multiple channels with mixing.
 
void MayaFlux::remove_supplied_buffer_from_channel (const std::shared_ptr< Buffers::AudioBuffer > &buffer, const uint32_t channel)
 Removes a supplied buffer from multiple channels.
 
void MayaFlux::remove_supplied_buffer_from_channels (const std::shared_ptr< Buffers::AudioBuffer > &buffer, const std::vector< uint32_t > &channels)
 Removes a supplied buffer from multiple channels.