Output error messages from the ALSA library through mp_msg() instead of

the default stderr.


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@17692 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
cladisch 2006-02-27 10:09:05 +00:00
parent 434f6b2347
commit 6ccd999a89
1 changed files with 22 additions and 0 deletions

View File

@ -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 @@ static int alsa_can_pause = 0;
#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)
{
@ -276,6 +296,8 @@ static int init(int rate_hz, int channels, int format, int flags)
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)
{
mp_msg(MSGT_AO,MSGL_ERR,"alsa-init: no soundcards found: %s\n", snd_strerror(err));