MayaFlux 0.2.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 32 of file AudioSubsystem.cpp.

33{
34 if (!m_is_ready || !m_audio_stream) {
35 error<std::runtime_error>(
38 std::source_location::current(),
39 "AudioSubsystem not initialized");
40 }
41
42 m_audio_stream->set_process_callback(
43 [this](void* output_buffer, void* input_buffer, unsigned int num_frames) -> int {
44 auto input_ptr = static_cast<double*>(input_buffer);
45 auto output_ptr = static_cast<double*>(output_buffer);
46
47 if (input_ptr && output_ptr) {
48 return this->process_audio(input_ptr, output_ptr, num_frames);
49 }
50
51 if (output_ptr) {
52 return this->process_output(output_ptr, num_frames);
53 }
54
55 if (input_ptr) {
56 return this->process_input(input_ptr, num_frames);
57 }
58 return 0;
59 });
60}
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: