diff options
| -rw-r--r-- | src/audio/miniaudio_backend.cc | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/audio/miniaudio_backend.cc b/src/audio/miniaudio_backend.cc index baaf9bb..0e6fce5 100644 --- a/src/audio/miniaudio_backend.cc +++ b/src/audio/miniaudio_backend.cc @@ -6,8 +6,7 @@ #include "audio.h" #include "ring_buffer.h" #include "util/debug.h" -#include <stdio.h> -#include <stdlib.h> // for abort() +#include "util/fatal_error.h" // Static callback for miniaudio (C API requirement) void MiniaudioBackend::audio_callback(ma_device* pDevice, void* pOutput, @@ -63,11 +62,12 @@ void MiniaudioBackend::audio_callback(ma_device* pDevice, void* pOutput, timing_initialized = 1; // Check for re-entrant calls - if (callback_reentry > 0) { - DEBUG_AUDIO("FATAL: Callback re-entered! depth=%d\n", callback_reentry); - abort(); - } - callback_reentry++; + FATAL_CODE_BEGIN + if (callback_reentry > 0) { + FATAL_ERROR("Callback re-entered! depth=%d", callback_reentry); + } + callback_reentry++; + FATAL_CODE_END // Check if frameCount changed unexpectedly if (last_frameCount != 0 && frameCount != last_frameCount) { @@ -77,10 +77,8 @@ void MiniaudioBackend::audio_callback(ma_device* pDevice, void* pOutput, last_frameCount = frameCount; // Validate device state - if (!pDevice || pDevice->sampleRate == 0) { - DEBUG_AUDIO("FATAL: Invalid device in callback!\n"); - abort(); - } + FATAL_CHECK(!pDevice || pDevice->sampleRate == 0, + "Invalid device in callback!\n"); // Check actual sample rate matches our expectation if (pDevice->sampleRate != 32000) { @@ -97,11 +95,9 @@ void MiniaudioBackend::audio_callback(ma_device* pDevice, void* pOutput, float* fOutput = (float*)pOutput; // BOUNDS CHECK: Sanity check on frameCount - if (frameCount > 8192 || frameCount == 0) { - fprintf(stderr, "AUDIO CALLBACK ERROR: frameCount=%u (unreasonable!)\n", - frameCount); - abort(); - } + FATAL_CHECK(frameCount > 8192 || frameCount == 0, + "AUDIO CALLBACK ERROR: frameCount=%u (unreasonable!)\n", + frameCount); // Read from ring buffer instead of calling synth directly AudioRingBuffer* ring_buffer = audio_get_ring_buffer(); @@ -152,7 +148,9 @@ void MiniaudioBackend::audio_callback(ma_device* pDevice, void* pOutput, #if defined(DEBUG_LOG_AUDIO) // Clear reentry flag - callback_reentry--; + FATAL_CODE_BEGIN + callback_reentry--; + FATAL_CODE_END #endif /* defined(DEBUG_LOG_AUDIO) */ } |
