summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoriain <iain@linux.intel.com>2011-08-25 15:59:22 +0100
committeriain <iain@linux.intel.com>2011-08-25 15:59:22 +0100
commit513672a0b880e666e4317e4db997175f9a7bde01 (patch)
treee5e35448fc1e76f66f61170aa59d257bf939c106
parent6712b13ab09bdd08a79d0adefc4bb61cf64abdd8 (diff)
Create a debugging system for Gypsy Daemon
-rw-r--r--src/Makefile.am1
-rw-r--r--src/gypsy-debug.h39
2 files changed, 40 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index cc37403..98aab14 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -15,6 +15,7 @@ gypsy_daemon_LDADD = \
NOINST_H_FILES = \
gypsy-client.h \
+ gypsy-debug.h \
gypsy-garmin-parser.h \
gypsy-marshal-internal.h \
gypsy-nmea-parser.h \
diff --git a/src/gypsy-debug.h b/src/gypsy-debug.h
new file mode 100644
index 0000000..1c2cf53
--- /dev/null
+++ b/src/gypsy-debug.h
@@ -0,0 +1,39 @@
+#ifndef __GYPSY_DEBUG_H__
+#define __GYPSY_DEBUG_H__
+
+#include <glib.h>
+
+G_BEGIN_DECLS
+
+typedef enum {
+ GYPSY_DEBUG_NMEA = 1 << 0,
+} GypsyDebugFlags;
+
+#define GYPSY_HAS_DEBUG(type) ((gypsy_debug_flags & GYPSY_DEBUG_##type) != FALSE)
+
+extern guint gypsy_debug_flags;
+
+#ifdef __GNUC__
+
+#define GYPSY_NOTE(type,x,a...) G_STMT_START { \
+ if (G_UNLIKELY (CLUTTER_HAS_DEBUG (type))) \
+ { _gypsy_message ("[" #type "] " G_STRLOC ": " x, ##a); } \
+ } G_STMT_END
+
+#else /* !__GNUC__ */
+
+#define GYPSY_NOTE(type,...) G_STMT_START { \
+ if (G_UNLIKELY (CLUTTER_HAS_DEBUG (type))) { \
+ char *_fmt = g_strdup_printf (__VA_ARGS__); \
+ _gypsy_message ("[" #type "] " G_STRLOC ": %s", _fmt); \
+ g_free (_fmt); \
+ } \
+ } G_STMT_END
+
+#endif
+
+void _gypsy_message (const char *format, ...);
+
+G_END_DECLS
+
+#endif /* __GYPSY_DEBUG_H__ */