|
MayaFlux 0.1.0
Digital-First Multimedia Processing Framework
|
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. | |
| IAudioBackend * | get_audio_backend () |
| Get access to the underlying audio backend. | |
| const AudioStream * | get_stream_manager () const |
| Get read-only access to stream manager. | |
| const AudioDevice * | get_device_manager () const |
| Get read-only access to device manager. | |
| const GlobalStreamInfo & | get_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. | |
| SubsystemProcessingHandle * | get_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< IAudioBackend > | m_audiobackend |
| Audio backend implementation. | |
| std::unique_ptr< AudioDevice > | m_audio_device |
| Audio device manager. | |
| std::unique_ptr< AudioStream > | m_audio_stream |
| Audio stream manager. | |
| SubsystemTokens | m_subsystem_tokens |
| Processing token configuration. | |
| SubsystemProcessingHandle * | m_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 |
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.