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

◆ add_audio_processor()

void MayaFlux::Buffers::BufferProcessingControl::add_audio_processor ( const std::shared_ptr< BufferProcessor > &  processor,
const std::shared_ptr< AudioBuffer > &  buffer 
)

Adds a processor to a specific audio buffer.

Parameters
processorProcessor to add
bufferTarget audio buffer

Routes the processor to the appropriate processing chain based on the buffer's channel ID.

Definition at line 110 of file BufferProcessingControl.cpp.

113{
114 uint32_t channel_id = buffer->get_channel_id();
115
116 for (const auto& token : m_unit_manager.get_active_audio_tokens()) {
117 const auto& unit = m_unit_manager.get_audio_unit(token);
118 if (channel_id < unit.channel_count) {
119 auto processing_chain = unit.get_chain(channel_id);
120 processing_chain->add_processor(processor, buffer);
121 buffer->set_processing_chain(processing_chain);
122 return;
123 }
124 }
125
126 // Fallback: use global processing chain if no token matches
127 // This requires BufferManager to provide access to global chain
128 // For now, we log a warning
130 "Could not find matching token for audio buffer with channel ID {}", channel_id);
131}
#define MF_WARN(comp, ctx,...)
static MayaFlux::Nodes::ProcessingToken token
Definition Timers.cpp:8
TokenUnitManager & m_unit_manager
Reference to the token/unit manager.
const RootAudioUnit & get_audio_unit(ProcessingToken token) const
Gets an existing audio unit without creating if missing.
@ BufferManagement
Buffer Management (Buffers::BufferManager, creating buffers)
@ Core
Core engine, backend, subsystems.
std::shared_ptr< BufferProcessingChain > get_chain(uint32_t channel) const

References MayaFlux::Journal::BufferManagement, MayaFlux::Journal::Core, MayaFlux::Buffers::TokenUnitManager::get_active_audio_tokens(), MayaFlux::Buffers::TokenUnitManager::get_audio_unit(), MayaFlux::Buffers::RootAudioUnit::get_chain(), m_unit_manager, MF_WARN, and token.

Referenced by add_processor(), and connect_node_to_audio_buffer().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: