MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ register_callbacks()

void MayaFlux::Core::AudioSubsystem::register_callbacks ( )
overridevirtual

Register audio backend callbacks for real-time processing.

Implements MayaFlux::Core::ISubsystem.

Definition at line 43 of file AudioSubsystem.cpp.

44{
45 if (!m_is_ready || !m_audio_stream) {
46 error<std::runtime_error>(
49 std::source_location::current(),
50 "AudioSubsystem not initialized");
51 }
52
53 m_audio_stream->set_process_callback(
54 [this](void* output_buffer, void* input_buffer, unsigned int num_frames) -> int {
55 auto input_ptr = static_cast<double*>(input_buffer);
56 auto output_ptr = static_cast<double*>(output_buffer);
57
58 if (input_ptr && output_ptr) {
59 return this->process_audio(input_ptr, output_ptr, num_frames);
60 }
61
62 if (output_ptr) {
63 return this->process_output(output_ptr, num_frames);
64 }
65
66 if (input_ptr) {
67 return this->process_input(input_ptr, num_frames);
68 }
69 return 0;
70 });
71}
bool m_is_ready
Subsystem ready state.
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.
int process_input(double *input_buffer, unsigned int num_frames)
Processes input data from audio interface.
std::unique_ptr< AudioStream > m_audio_stream
Audio stream manager.
@ AudioSubsystem
Audio subsystem operations (backend, device, stream management)
@ Core
Core engine, backend, subsystems.

References MayaFlux::Journal::AudioSubsystem, MayaFlux::Journal::Core, m_audio_stream, m_is_ready, process_audio(), process_input(), and process_output().

+ Here is the call graph for this function: