MayaFlux 0.4.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

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

Private Attributes

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

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: