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

◆ End()

void MayaFlux::Core::Engine::End ( )

Stops all processing and performs clean shutdown.

Orchestrates the shutdown sequence:

  • Terminates all active tasks and coroutines
  • Stops and closes audio streams
  • Releases all resources and buffers
  • Resets components to uninitialized state

Definition at line 146 of file Engine.cpp.

147{
149 m_subsystem_manager->shutdown();
150 }
151
152 m_is_initialized = false;
153 m_is_paused = false;
154
155 if (m_buffer_manager) {
156 m_buffer_manager->terminate_active_buffers();
157 m_buffer_manager.reset();
158 }
159
161 for (auto token : m_node_graph_manager->get_active_tokens()) {
162 for (auto root : m_node_graph_manager->get_all_root_nodes(token)) {
163 if (root != nullptr) {
164 root->clear_all_nodes();
165 }
166 }
167 }
168 }
169
170 if (m_window_manager) {
171 auto windows = m_window_manager->get_windows();
172 for (auto& window : windows) {
173 m_window_manager->destroy_window(window);
174 }
175 m_window_manager.reset();
176 }
177}
static MayaFlux::Nodes::ProcessingToken token
Definition Timers.cpp:8
std::shared_ptr< SubsystemManager > m_subsystem_manager
Definition Engine.hpp:316
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
Buffer manager.
Definition Engine.hpp:315
bool m_is_paused
Pause state flag.
Definition Engine.hpp:304
std::shared_ptr< WindowManager > m_window_manager
Window manager (Windowing subsystem)
Definition Engine.hpp:317
std::shared_ptr< Nodes::NodeGraphManager > m_node_graph_manager
Node graph manager.
Definition Engine.hpp:314

References m_buffer_manager, m_is_initialized, m_is_paused, m_node_graph_manager, m_subsystem_manager, m_window_manager, and token.

Referenced by ~Engine().

+ Here is the caller graph for this function: