12class AudioCallback :
public juce::AudioIODeviceCallback
15 using EngineProcessCallback = std::function<void (
16 const float *
const * inputChannelData,
18 float *
const * outputChannelData,
19 int numOutputChannels,
21 using DeviceAboutToStartCallback = std::function<void (juce::AudioIODevice *)>;
22 using DeviceStoppedCallback = std::function<void ()>;
25 EngineProcessCallback process_cb,
26 DeviceAboutToStartCallback device_about_to_start_cb,
27 DeviceStoppedCallback device_stopped_cb);
30 void audioDeviceIOCallbackWithContext (
31 const float *
const * inputChannelData,
33 float *
const * outputChannelData,
34 int numOutputChannels,
36 const juce::AudioIODeviceCallbackContext &context)
override;
37 void audioDeviceAboutToStart (juce::AudioIODevice * device)
override;
38 void audioDeviceStopped ()
override;
39 void audioDeviceError (
const juce::String &errorMessage)
override;
42 EngineProcessCallback process_cb_;
43 std::optional<DeviceAboutToStartCallback> device_about_to_start_cb_;
44 std::optional<DeviceStoppedCallback> device_stopped_cb_;