19 : m_rng(new Nodes::Generator::Stochastics::Random())
29 : m_stream_info(other.m_stream_info)
30 , m_graphics_config(other.m_graphics_config)
31 , m_is_paused(other.m_is_paused)
32 , m_is_initialized(other.m_is_initialized)
33 , m_should_shutdown(other.m_should_shutdown.load())
34 , m_scheduler(std::move(other.m_scheduler))
35 , m_node_graph_manager(std::move(other.m_node_graph_manager))
36 , m_buffer_manager(std::move(other.m_buffer_manager))
37 , m_subsystem_manager(std::move(other.m_subsystem_manager))
38 , m_window_manager(std::move(other.m_window_manager))
39 , m_event_manager(std::move(other.m_event_manager))
40 , m_rng(std::move(other.m_rng))
42 other.m_is_initialized =
false;
43 other.m_is_paused =
false;
51 m_stream_info = other.m_stream_info;
52 m_graphics_config = other.m_graphics_config;
54 m_subsystem_manager = std::move(other.m_subsystem_manager);
55 m_node_graph_manager = std::move(other.m_node_graph_manager);
56 m_buffer_manager = std::move(other.m_buffer_manager);
57 m_scheduler = std::move(other.m_scheduler);
58 m_window_manager = std::move(other.m_window_manager);
59 m_event_manager = std::move(other.m_event_manager);
60 m_rng = std::move(other.m_rng);
62 m_is_initialized = other.m_is_initialized;
63 m_is_paused = other.m_is_paused;
64 m_should_shutdown = other.m_should_shutdown.load();
66 other.m_is_initialized =
false;
67 other.m_is_paused =
false;
163 if (root !=
nullptr) {
164 root->clear_all_nodes();
172 for (
auto& window : windows) {
187 for (
const auto& [type, readiness] : status) {
188 const auto& [is_ready,
is_running] = readiness;
#define MF_PRINT(comp, ctx,...)
#define MF_WARN(comp, ctx,...)
static MayaFlux::Nodes::ProcessingToken token
void Init()
Initializes all system components and prepares for processing.
std::shared_ptr< SubsystemManager > m_subsystem_manager
GlobalGraphicsConfig m_graphics_config
Graphics/windowing configuration.
void Resume()
Resumes processing from paused state.
std::shared_ptr< Vruta::EventManager > m_event_manager
Event manager (currently only glfw events)
std::shared_ptr< Buffers::BufferManager > m_buffer_manager
Buffer manager.
GlobalStreamInfo m_stream_info
Stream configuration.
bool is_running() const
Checks if the coordinated processing system is currently active.
void Start()
Starts the coordinated processing of all subsystems.
void Pause()
Pauses all processing while maintaining system state.
bool m_is_paused
Pause state flag.
std::shared_ptr< WindowManager > m_window_manager
Window manager (Windowing subsystem)
Engine()
Constructs a new Engine instance.
std::shared_ptr< Vruta::TaskScheduler > m_scheduler
Task scheduler.
~Engine()
Destroys the Engine instance and cleans up resources.
void End()
Stops all processing and performs clean shutdown.
std::shared_ptr< Nodes::NodeGraphManager > m_node_graph_manager
Node graph manager.
Engine & operator=(const Engine &)=delete
Central lifecycle manager and component orchestrator for the MayaFlux processing system.
@ Init
Engine/subsystem initialization.
@ Core
Core engine, backend, subsystems.
void End()
Stops and cleans up the default engine.
@ NONE
No windowing (offscreen rendering only)
WindowingBackend windowing_backend
Selected windowing backend.
uint32_t channels
Number of discrete channels in this set.
bool enabled
Whether this channel set is active in the stream.
uint32_t buffer_size
Number of samples per processing block.
ChannelConfig input
Configuration for input signal channels (disabled by default)
uint32_t sample_rate
Number of samples processed per second (Hz)
ChannelConfig output
Configuration for output signal channels.
Comprehensive configuration for digital audio stream processing.