MayaFlux 1.0.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 354 of file BufferAccessControl.cpp.

355{
356 for (const auto& token : m_unit_manager.get_active_audio_tokens()) {
357 auto& unit = m_unit_manager.get_audio_unit_mutable(token);
358 for (uint32_t channel = 0; channel < unit.channel_count; ++channel) {
359 auto root_buffer = unit.get_buffer(channel);
360 root_buffer->clear();
361 for (auto& child : root_buffer->get_child_buffers()) {
362 if (child)
363 child->clear();
364 }
365 unit.root_buffers[channel].reset();
366 }
367 }
368
369 for (const auto& token : m_unit_manager.get_active_graphics_tokens()) {
370 auto& unit = m_unit_manager.get_graphics_unit_mutable(token);
371 auto root_buffer = unit.get_buffer();
372 root_buffer->clear();
373 for (auto& child : root_buffer->get_child_buffers()) {
374 if (child) {
375 remove_graphics_buffer(child, token);
376 child->clear();
377 }
378 }
379 unit.root_buffer.reset();
380 }
381}
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: