diff options
Diffstat (limited to 'src/audio')
| -rw-r--r-- | src/audio/audio.cc | 15 | ||||
| -rw-r--r-- | src/audio/audio.h | 2 |
2 files changed, 17 insertions, 0 deletions
diff --git a/src/audio/audio.cc b/src/audio/audio.cc index 6249479..517e376 100644 --- a/src/audio/audio.cc +++ b/src/audio/audio.cc @@ -38,7 +38,9 @@ void audio_init() { printf("Failed to open playback device.\n"); return; } +} +void audio_start() { if (ma_device_start(&g_device) != MA_SUCCESS) { printf("Failed to start playback device.\n"); ma_device_uninit(&g_device); @@ -46,6 +48,19 @@ void audio_init() { } } +void audio_render_silent(float duration_sec) { + const int sample_rate = 32000; + const int chunk_size = 512; + int total_frames = (int)(duration_sec * sample_rate); + float buffer[chunk_size * 2]; // Stereo + + while (total_frames > 0) { + int frames_to_render = (total_frames > chunk_size) ? chunk_size : total_frames; + synth_render(buffer, frames_to_render); + total_frames -= frames_to_render; + } +} + void audio_update() { } diff --git a/src/audio/audio.h b/src/audio/audio.h index dd43d97..67c83c2 100644 --- a/src/audio/audio.h +++ b/src/audio/audio.h @@ -5,5 +5,7 @@ #pragma once void audio_init(); +void audio_start(); // Starts the audio device callback +void audio_render_silent(float duration_sec); // Fast-forwards audio state void audio_update(); void audio_shutdown(); |
