]> code.delx.au - pulseaudio/blobdiff - src/pulsecore/log.h
Get rid of some warnings: -Wunused-result
[pulseaudio] / src / pulsecore / log.h
index 633227f306eb7bdae9efb3c272d71659d94bdd54..ad04e7bd661fb034fdd30847fe10a200c175d9db 100644 (file)
@@ -9,7 +9,7 @@
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published
 
   PulseAudio is free software; you can redistribute it and/or modify
   it under the terms of the GNU Lesser General Public License as published
-  by the Free Software Foundation; either version 2 of the License,
+  by the Free Software Foundation; either version 2.1 of the License,
   or (at your option) any later version.
 
   PulseAudio is distributed in the hope that it will be useful, but
   or (at your option) any later version.
 
   PulseAudio is distributed in the hope that it will be useful, but
@@ -25,6 +25,8 @@
 
 #include <stdarg.h>
 #include <stdlib.h>
 
 #include <stdarg.h>
 #include <stdlib.h>
+
+#include <pulsecore/macro.h>
 #include <pulse/gccmacro.h>
 
 /* A simple logging subsystem */
 #include <pulse/gccmacro.h>
 
 /* A simple logging subsystem */
@@ -33,8 +35,9 @@
 typedef enum pa_log_target {
     PA_LOG_STDERR,  /* default */
     PA_LOG_SYSLOG,
 typedef enum pa_log_target {
     PA_LOG_STDERR,  /* default */
     PA_LOG_SYSLOG,
-    PA_LOG_USER,    /* to user specified function */
-    PA_LOG_NULL     /* to /dev/null */
+    PA_LOG_NULL,    /* to /dev/null */
+    PA_LOG_FD,      /* to a file descriptor, e.g. a char device */
+    PA_LOG_TARGET_MAX
 } pa_log_target_t;
 
 typedef enum pa_log_level {
 } pa_log_target_t;
 
 typedef enum pa_log_level {
@@ -46,16 +49,41 @@ typedef enum pa_log_level {
     PA_LOG_LEVEL_MAX
 } pa_log_level_t;
 
     PA_LOG_LEVEL_MAX
 } pa_log_level_t;
 
+typedef enum pa_log_flags {
+    PA_LOG_COLORS      = 0x01, /* Show colorful output */
+    PA_LOG_PRINT_TIME  = 0x02, /* Show time */
+    PA_LOG_PRINT_FILE  = 0x04, /* Show source file */
+    PA_LOG_PRINT_META  = 0x08, /* Show extended locaton information */
+    PA_LOG_PRINT_LEVEL = 0x10, /* Show log level prefix */
+} pa_log_flags_t;
+
+typedef enum pa_log_merge {
+    PA_LOG_SET,
+    PA_LOG_UNSET,
+    PA_LOG_RESET
+} pa_log_merge_t;
+
 /* Set an identification for the current daemon. Used when logging to syslog. */
 void pa_log_set_ident(const char *p);
 
 /* Set an identification for the current daemon. Used when logging to syslog. */
 void pa_log_set_ident(const char *p);
 
-typedef void (*pa_log_func_t)(pa_log_level_t t, const char*s);
+/* Set a log target. */
+void pa_log_set_target(pa_log_target_t t);
+
+/* Maximal log level */
+void pa_log_set_level(pa_log_level_t l);
 
 
-/* Set another log target. If t is PA_LOG_USER you may specify a function that is called every log string */
-void pa_log_set_target(pa_log_target_t t, pa_log_func_t func);
+/* Set flags */
+void pa_log_set_flags(pa_log_flags_t flags, pa_log_merge_t merge);
 
 
-/* Minimal log level */
-void pa_log_set_maximal_level(pa_log_level_t l);
+/* Set the file descriptor of the logging device.
+   Daemon conf is in charge of opening this device */
+void pa_log_set_fd(int fd);
+
+/* Enable backtrace */
+void pa_log_set_show_backtrace(unsigned nlevels);
+
+/* Skip the first backtrace frames */
+void pa_log_set_skip_backtrace(unsigned nlevels);
 
 void pa_log_level_meta(
         pa_log_level_t level,
 
 void pa_log_level_meta(
         pa_log_level_t level,
@@ -63,6 +91,7 @@ void pa_log_level_meta(
         int line,
         const char *func,
         const char *format, ...) PA_GCC_PRINTF_ATTR(5,6);
         int line,
         const char *func,
         const char *format, ...) PA_GCC_PRINTF_ATTR(5,6);
+
 void pa_log_levelv_meta(
         pa_log_level_t level,
         const char*file,
 void pa_log_levelv_meta(
         pa_log_level_t level,
         const char*file,
@@ -71,8 +100,14 @@ void pa_log_levelv_meta(
         const char *format,
         va_list ap);
 
         const char *format,
         va_list ap);
 
-void pa_log_level(pa_log_level_t level, const char *format, ...) PA_GCC_PRINTF_ATTR(2,3);
-void pa_log_levelv(pa_log_level_t level, const char *format, va_list ap);
+void pa_log_level(
+        pa_log_level_t level,
+        const char *format, ...) PA_GCC_PRINTF_ATTR(2,3);
+
+void pa_log_levelv(
+        pa_log_level_t level,
+        const char *format,
+        va_list ap);
 
 #if __STDC_VERSION__ >= 199901L
 
 
 #if __STDC_VERSION__ >= 199901L
 
@@ -83,6 +118,7 @@ void pa_log_levelv(pa_log_level_t level, const char *format, va_list ap);
 #define pa_log_notice(...) pa_log_level_meta(PA_LOG_NOTICE, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #define pa_log_warn(...)   pa_log_level_meta(PA_LOG_WARN,   __FILE__, __LINE__, __func__, __VA_ARGS__)
 #define pa_log_error(...)  pa_log_level_meta(PA_LOG_ERROR,  __FILE__, __LINE__, __func__, __VA_ARGS__)
 #define pa_log_notice(...) pa_log_level_meta(PA_LOG_NOTICE, __FILE__, __LINE__, __func__, __VA_ARGS__)
 #define pa_log_warn(...)   pa_log_level_meta(PA_LOG_WARN,   __FILE__, __LINE__, __func__, __VA_ARGS__)
 #define pa_log_error(...)  pa_log_level_meta(PA_LOG_ERROR,  __FILE__, __LINE__, __func__, __VA_ARGS__)
+#define pa_logl(level, ...)  pa_log_level_meta(level,  __FILE__, __LINE__, __func__, __VA_ARGS__)
 
 #else
 
 
 #else
 
@@ -104,4 +140,6 @@ LOG_FUNC(error, PA_LOG_ERROR)
 
 #define pa_log pa_log_error
 
 
 #define pa_log pa_log_error
 
+pa_bool_t pa_log_ratelimit(pa_log_level_t level);
+
 #endif
 #endif