summaryrefslogtreecommitdiff
path: root/src/audio
diff options
context:
space:
mode:
Diffstat (limited to 'src/audio')
-rw-r--r--src/audio/miniaudio_backend.cc32
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) */
}