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
9#include <juce_wrapper.h>
10
11namespace zrythm::dsp
12{
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
38 virtual void add_audio_callback (juce::AudioIODeviceCallback * callback) = 0;
39
43 virtual void
44 remove_audio_callback (juce::AudioIODeviceCallback * callback) = 0;
45
49 virtual juce::AudioWorkgroup get_device_audio_workgroup () const = 0;
50};
51
52} // namespace zrythm::dsp
Abstraction for hardware audio interface.
virtual juce::AudioWorkgroup get_device_audio_workgroup() const =0
Returns the audio workgroup for the current device (if available).
virtual void remove_audio_callback(juce::AudioIODeviceCallback *callback)=0
Removes an audio callback.
virtual nframes_t get_block_length() const =0
Returns the current block length (buffer size) in frames.
virtual void add_audio_callback(juce::AudioIODeviceCallback *callback)=0
Adds an audio callback to receive audio I/O events.
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