Added configurable error handlers.

This commit is contained in:
Jaroslav Kysela 2000-11-25 16:36:18 +00:00
parent 34c76ccf73
commit 49affda3a0
5 changed files with 29 additions and 15 deletions

View file

@ -3,8 +3,9 @@ sysinclude_HEADERS = asoundlib.h
# This is the order they will be concatenated into asoundlib.h!
#
header_files=header.h version.h error.h control.h mixer.h pcm.h rawmidi.h \
timer.h hwdep.h seq.h seqmid.h conv.h instr.h conf.h footer.h
header_files=header.h version.h global.h error.h control.h mixer.h pcm.h \
rawmidi.h timer.h hwdep.h seq.h seqmid.h conv.h instr.h conf.h \
footer.h
noinst_HEADERS=$(header_files) search.h list.h aserver.h

View file

@ -11,6 +11,10 @@ extern "C" {
const char *snd_strerror(int errnum);
typedef void (snd_lib_error_handler_t)(const char *file, int line, const char *function, int err, const char *fmt, ...) /* __attribute__ ((weak, format (printf, 5, 6))) */;
extern snd_lib_error_handler_t *snd_lib_error;
extern int snd_lib_error_set_handler(snd_lib_error_handler_t *handler);
#ifdef __cplusplus
}
#endif

14
include/global.h Normal file
View file

@ -0,0 +1,14 @@
/*
* Global defines
*/
#define SND_DEV_TYPE_PCM 0
#define SND_DEV_TYPE_CONTROL 1
#define SND_DEV_TYPE_RAWMIDI 2
#define SND_DEV_TYPE_TIMER 3
#define SND_DEV_TYPE_HWDEP 4
#define SND_DEV_TYPE_SEQ 5
#define SND_TRANSPORT_TYPE_SHM 0
#define SND_TRANSPORT_TYPE_TCP 1

View file

@ -36,15 +36,3 @@
#define ATTRIBUTE_UNUSED __attribute__ ((__unused__))
#endif
#define SND_DEV_TYPE_PCM 0
#define SND_DEV_TYPE_CONTROL 1
#define SND_DEV_TYPE_RAWMIDI 2
#define SND_DEV_TYPE_TIMER 3
#define SND_DEV_TYPE_HWDEP 4
#define SND_DEV_TYPE_SEQ 5
#define SND_TRANSPORT_TYPE_SHM 0
#define SND_TRANSPORT_TYPE_TCP 1
extern void snd_lib_error(const char *file, int line, const char *function, int err, const char *fmt, ...) __attribute__ ((weak, format (printf, 5, 6)));

View file

@ -44,7 +44,7 @@ const char *snd_strerror(int errnum)
return snd_error_codes[errnum];
}
void snd_lib_error(const char *file, int line, const char *function, int err, const char *fmt, ...)
static void snd_lib_error_default(const char *file, int line, const char *function, int err, const char *fmt, ...)
{
va_list arg;
va_start(arg, fmt);
@ -56,3 +56,10 @@ void snd_lib_error(const char *file, int line, const char *function, int err, co
va_end(arg);
}
snd_lib_error_handler_t *snd_lib_error = snd_lib_error_default;
int snd_lib_error_set_handler(snd_lib_error_handler_t *handler)
{
snd_lib_error = handler == NULL ? snd_lib_error_default : handler;
return 0;
}