From 81943a9f8ccec40fbed7326556dcd4c0b4e869a7 Mon Sep 17 00:00:00 2001 From: Max Horn Date: Sun, 1 Mar 2009 21:47:57 +0000 Subject: COMMON: added a debugC variant which only takes a debug channel mask svn-id: r39054 --- common/debug.cpp | 17 +++++++++++++++-- common/debug.h | 12 +++++++++++- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/common/debug.cpp b/common/debug.cpp index 1a1ea437df..1aa5809b00 100644 --- a/common/debug.cpp +++ b/common/debug.cpp @@ -214,12 +214,25 @@ void debugN(int level, const char *s, ...) { va_end(va); } -void debugC(int level, uint32 engine_level, const char *s, ...) { +void debugC(int level, uint32 debugChannels, const char *s, ...) { va_list va; // FIXME: Seems gDebugLevel 11 has a special meaning? Document that! if (gDebugLevel != 11) - if (level > gDebugLevel || !(Common::gDebugLevelsEnabled & engine_level)) + if (level > gDebugLevel || !(Common::gDebugLevelsEnabled & debugChannels)) + return; + + va_start(va, s); + debugHelper(s, va); + va_end(va); +} + +void debugC(uint32 debugChannels, const char *s, ...) { + va_list va; + + // FIXME: Seems gDebugLevel 11 has a special meaning? Document that! + if (gDebugLevel != 11) + if (!(Common::gDebugLevelsEnabled & debugChannels)) return; va_start(va, s); diff --git a/common/debug.h b/common/debug.h index 8cdecd749e..21b7fbb0f2 100644 --- a/common/debug.h +++ b/common/debug.h @@ -105,6 +105,7 @@ inline void debug(const char *s, ...) {} inline void debug(int level, const char *s, ...) {} inline void debugN(int level, const char *s, ...) {} inline void debugC(int level, uint32 engine_level, const char *s, ...) {} +inline void debugC(uint32 engine_level, const char *s, ...) {} #else @@ -141,7 +142,16 @@ void debugN(int level, const char *s, ...) GCC_PRINTF(2, 3); * * @see enableDebugChannel */ -void debugC(int level, uint32 engine_level, const char *s, ...) GCC_PRINTF(3, 4); +void debugC(int level, uint32 debugChannels, const char *s, ...) GCC_PRINTF(3, 4); + +/** + * Print a debug message to the text console (stderr), but only if + * the specified special debug level is active. + * Automatically appends a newline. + * + * @see enableDebugChannel + */ +void debugC(uint32 debugChannels, const char *s, ...) GCC_PRINTF(2, 3); #endif -- cgit v1.2.3