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

◆ terminate_active_buffers()

void MayaFlux::Buffers::BufferAccessControl::terminate_active_buffers ( )

Terminates all active Audio and VK buffers.

Definition at line 350 of file BufferAccessControl.cpp.

351{
352 for (const auto& token : m_unit_manager.get_active_audio_tokens()) {
353 auto& unit = m_unit_manager.get_audio_unit_mutable(token);
354 for (uint32_t channel = 0; channel < unit.channel_count; ++channel) {
355 auto root_buffer = unit.get_buffer(channel);
356 root_buffer->clear();
357 for (auto& child : root_buffer->get_child_buffers()) {
358 if (child)
359 child->clear();
360 }
361 unit.root_buffers[channel].reset();
362 }
363 }
364
365 for (const auto& token : m_unit_manager.get_active_graphics_tokens()) {
366 auto& unit = m_unit_manager.get_graphics_unit_mutable(token);
367 auto root_buffer = unit.get_buffer();
368 root_buffer->clear();
369 for (auto& child : root_buffer->get_child_buffers()) {
370 if (child) {
371 remove_graphics_buffer(child, token);
372 child->clear();
373 }
374 }
375 unit.root_buffer.reset();
376 }
377}
TokenUnitManager & m_unit_manager
Reference to the token/unit manager for storage operations.
void remove_graphics_buffer(const std::shared_ptr< Buffer > &buffer, ProcessingToken token)
Removes a graphics buffer from a token.
RootGraphicsUnit & get_graphics_unit_mutable(ProcessingToken token)
Gets an existing graphics unit without creating if missing (mutable)
RootAudioUnit & get_audio_unit_mutable(ProcessingToken token)
Gets an existing audio unit without creating if missing (mutable)
std::shared_ptr< RootAudioBuffer > get_buffer(uint32_t channel) const
std::shared_ptr< RootGraphicsBuffer > get_buffer() const

References MayaFlux::Buffers::TokenUnitManager::get_active_audio_tokens(), MayaFlux::Buffers::TokenUnitManager::get_active_graphics_tokens(), MayaFlux::Buffers::TokenUnitManager::get_audio_unit_mutable(), MayaFlux::Buffers::RootGraphicsUnit::get_buffer(), MayaFlux::Buffers::RootAudioUnit::get_buffer(), MayaFlux::Buffers::TokenUnitManager::get_graphics_unit_mutable(), m_unit_manager, and remove_graphics_buffer().

+ Here is the call graph for this function: