summaryrefslogtreecommitdiff
path: root/src/audio/backend/miniaudio_backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio/backend/miniaudio_backend.h')
-rw-r--r--src/audio/backend/miniaudio_backend.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/audio/backend/miniaudio_backend.h b/src/audio/backend/miniaudio_backend.h
index eb9019c..435496c 100644
--- a/src/audio/backend/miniaudio_backend.h
+++ b/src/audio/backend/miniaudio_backend.h
@@ -18,6 +18,7 @@ class MiniaudioBackend : public AudioBackend {
void start() override;
void shutdown() override;
float get_realtime_peak() override;
+ void get_callback_state(double* out_time, int64_t* out_samples) override;
// Get the underlying miniaudio device (for internal use)
ma_device* get_device() {
@@ -32,6 +33,10 @@ class MiniaudioBackend : public AudioBackend {
// Updated in audio_callback when samples are read from ring buffer
static volatile float realtime_peak_;
+ // Smooth playback time interpolation (updated in callback)
+ static volatile double last_callback_time_; // Absolute CLOCK_MONOTONIC time
+ static volatile int64_t last_callback_samples_;
+
// Static callback required by miniaudio C API
static void audio_callback(ma_device* pDevice, void* pOutput,
const void* pInput, ma_uint32 frameCount);