Zrythm v2.0.0-DEV
a highly automated and intuitive digital audio workstation
Loading...
Searching...
No Matches
hardware_audio_interface.h
1// SPDX-FileCopyrightText: © 2026 Alexandros Theodotou <alex@zrythm.org>
2// SPDX-License-Identifier: LicenseRef-ZrythmLicense
3
4#pragma once
5
6#include "utils/units.h"
7
8namespace zrythm::dsp
9{
10
11class IAudioCallback;
12
20{
21public:
22 virtual ~IHardwareAudioInterface () = default;
23
27 virtual units::sample_u32_t get_block_length () const = 0;
28
32 virtual units::sample_rate_t get_sample_rate () const = 0;
33
40 virtual void add_audio_callback (IAudioCallback * callback) = 0;
41
47 virtual void remove_audio_callback (IAudioCallback * callback) = 0;
48};
49
50} // namespace zrythm::dsp
Pure-abstract audio callback interface.
Abstraction for hardware audio interface.
virtual void remove_audio_callback(IAudioCallback *callback)=0
Removes a previously added audio callback.
virtual void add_audio_callback(IAudioCallback *callback)=0
Adds an audio callback to receive audio I/O events.
virtual units::sample_u32_t get_block_length() const =0
Returns the current block length (buffer size) in frames.
virtual units::sample_rate_t get_sample_rate() const =0
Returns the current sample rate.