Mercurial > mplayer.hg
changeset 17691:b73103a82416
Output error messages from the ALSA library through mp_msg() instead of
the default stderr.
author | cladisch |
---|---|
date | Mon, 27 Feb 2006 10:09:05 +0000 |
parents | 9ca95aee8449 |
children | 706bda7356b7 |
files | libao2/ao_alsa.c |
diffstat | 1 files changed, 22 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/libao2/ao_alsa.c Mon Feb 27 10:06:27 2006 +0000 +++ b/libao2/ao_alsa.c Mon Feb 27 10:09:05 2006 +0000 @@ -15,6 +15,7 @@ #include <errno.h> #include <sys/time.h> #include <stdlib.h> +#include <stdarg.h> #include <math.h> #include <string.h> @@ -72,6 +73,25 @@ #undef BUFFERTIME #define SET_CHUNKSIZE +static void alsa_error_handler(const char *file, int line, const char *function, + int err, const char *format, ...) +{ + char tmp[0xc00]; + va_list va; + + va_start(va, format); + vsnprintf(tmp, sizeof tmp, format, va); + va_end(va); + tmp[sizeof tmp - 1] = '\0'; + + if (err) + mp_msg(MSGT_AO, MSGL_ERR, "alsa-lib: %s:%i:(%s) %s: %s\n", + file, line, function, tmp, snd_strerror(err)); + else + mp_msg(MSGT_AO, MSGL_ERR, "alsa-lib: %s:%i:(%s) %s\n", + file, line, function, tmp); +} + /* to set/get/query special features/parameters */ static int control(int cmd, void *arg) { @@ -275,6 +295,8 @@ #else mp_msg(MSGT_AO,MSGL_V,"alsa-init: compiled for ALSA-%s\n", SND_LIB_VERSION_STR); #endif + + snd_lib_error_set_handler(alsa_error_handler); if ((err = snd_card_next(&cards)) < 0 || cards < 0) {