# 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
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
--- /dev/null
+/*
+ * 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
+
#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)));
-
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);
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;
+}