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/types.h"
7#include "utils/units.h"
8
9namespace zrythm::dsp
10{
11
12class IAudioCallback;
13
21{
22public:
23 virtual ~IHardwareAudioInterface () = default;
24
28 virtual nframes_t get_block_length () const = 0;
29
33 virtual units::sample_rate_t get_sample_rate () const = 0;
34
41 virtual void add_audio_callback (IAudioCallback * callback) = 0;
42
48 virtual void remove_audio_callback (IAudioCallback * callback) = 0;
49};
50
51} // 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 nframes_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.
uint32_t nframes_t
Frame count.
Definition types.h:58