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

◆ remove_audio_processor()

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

Removes a processor from a specific audio buffer.

Parameters
processorProcessor to remove
bufferTarget audio buffer

Definition at line 155 of file BufferProcessingControl.cpp.

158{
159 uint32_t channel_id = buffer->get_channel_id();
160
161 for (const auto& token : m_unit_manager.get_active_audio_tokens()) {
162 const auto& unit = m_unit_manager.get_audio_unit(token);
163 if (channel_id < unit.channel_count) {
164 auto processing_chain = unit.get_chain(channel_id);
165 processing_chain->remove_processor(processor, buffer);
166 if (auto buf_chain = buffer->get_processing_chain()) {
167 buf_chain->remove_processor(processor, buffer);
168 }
169 return;
170 }
171 }
172}
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.
std::shared_ptr< BufferProcessingChain > get_chain(uint32_t channel) const

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

Referenced by remove_processor().

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