MayaFlux 0.2.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 237 of file Engine.cpp.

238{
239 if (!m_is_initialized)
240 return;
241
243 m_node_graph_manager->terminate_active_processing();
244 }
245
247 m_subsystem_manager->stop();
248 }
249
250 if (m_scheduler) {
251 m_scheduler->terminate_all_tasks();
252 }
253
254 if (m_buffer_manager) {
255 m_buffer_manager->terminate_active_buffers();
256 m_buffer_manager.reset();
257 }
258
259 if (m_window_manager) {
260 m_window_manager->set_terminate();
261 auto windows = m_window_manager->get_windows();
262 for (auto& window : windows) {
263 m_window_manager->destroy_window(window, true);
264 }
265 m_window_manager.reset();
266 }
267
269 m_node_graph_manager.reset();
270 }
271
273 m_subsystem_manager->shutdown();
274 }
275
276 m_is_initialized = false;
277 m_is_paused = false;
278}
std::shared_ptr< SubsystemManager > m_subsystem_manager
Definition Engine.hpp:341
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
Buffer manager.
Definition Engine.hpp:340
bool m_is_paused
Pause state flag.
Definition Engine.hpp:329
std::shared_ptr< WindowManager > m_window_manager
Window manager (Windowing subsystem)
Definition Engine.hpp:342
std::shared_ptr< Vruta::TaskScheduler > m_scheduler
Task scheduler.
Definition Engine.hpp:338
std::shared_ptr< Nodes::NodeGraphManager > m_node_graph_manager
Node graph manager.
Definition Engine.hpp:339

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

Referenced by ~Engine().

+ Here is the caller graph for this function: