MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Core::AudioSubsystem Class Reference

Audio processing subsystem managing real-time audio I/O and processing. More...

#include <AudioSubsystem.hpp>

+ Inheritance diagram for MayaFlux::Core::AudioSubsystem:
+ Collaboration diagram for MayaFlux::Core::AudioSubsystem:

Public Member Functions

virtual ~AudioSubsystem ()=default
 
void initialize (SubsystemProcessingHandle &handle) override
 Initialize audio processing with provided handle.
 
void register_callbacks () override
 Register audio backend callbacks for real-time processing.
 
void start () override
 Start audio processing and streaming.
 
void pause () override
 Pause audio processing without stopping the stream.
 
void resume () override
 Resume audio processing after pause.
 
void stop () override
 Stop audio processing and streaming.
 
void shutdown () override
 Shutdown and cleanup audio resources.
 
SubsystemTokens get_tokens () const override
 Get audio subsystem token configuration.
 
bool is_ready () const override
 Check if audio subsystem is ready for operation.
 
bool is_running () const override
 Check if audio subsystem is currently running.
 
IAudioBackendget_audio_backend ()
 Get access to the underlying audio backend.
 
const AudioStreamget_stream_manager () const
 Get read-only access to stream manager.
 
const AudioDeviceget_device_manager () const
 Get read-only access to device manager.
 
const GlobalStreamInfoget_stream_info () const
 Get global stream configuration.
 
int process_input (double *input_buffer, unsigned int num_frames)
 Processes input data from audio interface.
 
int process_output (double *output_buffer, unsigned int num_frames)
 Processes output data for audio interface.
 
int process_audio (double *input_buffer, double *output_buffer, unsigned int num_frames)
 Processes both input and output data in full-duplex mode.
 
 AudioSubsystem (GlobalStreamInfo &stream_info, Utils::AudioBackendType backend_type=Utils::AudioBackendType::RTAUDIO)
 Constructs AudioSubsystem with stream configuration.
 
SubsystemType get_type () const override
 Get the type of this subsystem.
 
SubsystemProcessingHandleget_processing_context_handle () override
 Get the processing context handle for this subsystem.
 
- Public Member Functions inherited from MayaFlux::Core::ISubsystem
virtual ~ISubsystem ()=default
 

Private Attributes

GlobalStreamInfo m_stream_info
 Audio stream configuration.
 
std::unique_ptr< IAudioBackendm_audiobackend
 Audio backend implementation.
 
std::unique_ptr< AudioDevicem_audio_device
 Audio device manager.
 
std::unique_ptr< AudioStreamm_audio_stream
 Audio stream manager.
 
SubsystemTokens m_subsystem_tokens
 Processing token configuration.
 
SubsystemProcessingHandlem_handle
 Reference to processing handle.
 
bool m_is_ready {}
 Subsystem ready state.
 
bool m_is_running {}
 Subsystem running state.
 
bool m_is_paused {}
 Subsystem paused state.
 

Static Private Attributes

static const SubsystemType m_type = SubsystemType::AUDIO
 

Detailed Description

Audio processing subsystem managing real-time audio I/O and processing.

Implements the ISubsystem interface to provide audio-specific processing capabilities within the MayaFlux engine. Manages audio backends, devices, and streams while coordinating with the token-based processing architecture for buffer, node and scheduling operations.

Uses AUDIO_BACKEND token for buffer processing and AUDIO_RATE token for node processing, enabling real-time audio processing with proper thread safety and resource isolation.

Definition at line 20 of file AudioSubsystem.hpp.


The documentation for this class was generated from the following files: