diff options
author | zlago | 2025-07-31 19:59:46 +0200 |
---|---|---|
committer | zlago | 2025-07-31 20:03:26 +0200 |
commit | f9d7e5829c714fb0de1912089d320e036972c6ec (patch) | |
tree | 3ef3e8056e28368605fc565c8726e19719b3b2de /src/portaudio.c | |
parent | c3579a3f8784ad49d081dc8347bbcadacc0829a2 (diff) |
Diffstat (limited to 'src/portaudio.c')
-rw-r--r-- | src/portaudio.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/src/portaudio.c b/src/portaudio.c index 7ff6ca3..e5c5d92 100644 --- a/src/portaudio.c +++ b/src/portaudio.c @@ -36,6 +36,22 @@ int audio_callback(void const *inBuf, void *outBuf, unsigned long const frameCou int (*file_ext(char *file))(struct blob *, struct userdata *); +#include <alsa/asoundlib.h> +#include <stdarg.h> +static void alsa_shut_up(char const *file, int line, char const *function, int err, char const *fmt, ...) { + if (err == 0) { + // duckGPT claims its not unsafe to return before using va_ functions + return; + } + // ALSA lib (real) + fprintf(stderr, "ALSA lib %s:%i:(%s) ", file, line, function); + va_list list; + va_start(list, fmt); + vfprintf(stderr, fmt, list); + va_end(list); + putc('\n', stderr); +} + int main(int argc, char **argv) { if (argc != 2) { eprintf("usage: %s audio-file.{mid,mod,xm,it,s3m}\n", argv[0]); @@ -59,11 +75,13 @@ int main(int argc, char **argv) { signal(SIGINT, sigint_handler); // signal(3) claims this method is deprecated, but.. + snd_lib_error_set_handler(alsa_shut_up); PaError paErr; if ((paErr = Pa_Initialize()) != paNoError) { printf("error: Pa_Initialize: %s\n", Pa_GetErrorText(paErr)); goto error; } + snd_lib_error_set_handler(NULL); PaStream *stream; if ((paErr = Pa_OpenDefaultStream( |