Browse Source

libobs/util: Add func to get current log handler

jp9000 11 years ago
parent
commit
4bdcbe0600
2 changed files with 15 additions and 8 deletions
  1. 10 5
      libobs/util/base.c
  2. 5 3
      libobs/util/base.h

+ 10 - 5
libobs/util/base.c

@@ -78,13 +78,18 @@ NORETURN static void def_crash_handler(const char *format, va_list args,
 	UNUSED_PARAMETER(param);
 }
 
-static void (*log_handler)(int log_level, const char *, va_list, void *) =
-		def_log_handler;
+static log_handler_t log_handler = def_log_handler;
 static void (*crash_handler)(const char *, va_list, void *) = def_crash_handler;
 
-void base_set_log_handler(
-	void (*handler)(int log_level, const char *, va_list, void *),
-	void *param)
+void base_get_log_handler(log_handler_t *handler, void **param)
+{
+	if (handler)
+		*handler = log_handler;
+	if (param)
+		*param = log_param;
+}
+
+void base_set_log_handler(log_handler_t handler, void *param)
 {
 	if (!handler)
 		handler = def_log_handler;

+ 5 - 3
libobs/util/base.h

@@ -65,9 +65,11 @@ enum {
 	LOG_DEBUG   = 400
 };
 
-EXPORT void base_set_log_handler(
-		void (*handler)(int log_level, const char *, va_list, void *),
-		void *param);
+typedef void (*log_handler_t)(int lvl, const char *msg, va_list args, void *p);
+
+EXPORT void base_get_log_handler(log_handler_t *handler, void **param);
+EXPORT void base_set_log_handler(log_handler_t handler, void *param);
+
 EXPORT void base_set_crash_handler(
 		void (*handler)(const char *, va_list, void *),
 		void *param);