From 0ab903a9e2416f329439d094bc6b6864a3454e37 Mon Sep 17 00:00:00 2001 From: Eugene Sandulenko Date: Fri, 19 Aug 2016 09:38:25 +0200 Subject: COMMON: Added checkers for debug channels. Sometimes there is a need to add debug execution and enable it from the command line. Now it is possible, both with debug levels and channels --- common/debug.cpp | 12 ++++++++++++ common/debug.h | 21 ++++++++++++++++----- 2 files changed, 28 insertions(+), 5 deletions(-) (limited to 'common') diff --git a/common/debug.cpp b/common/debug.cpp index ce34a00445..c61fc63dea 100644 --- a/common/debug.cpp +++ b/common/debug.cpp @@ -120,6 +120,18 @@ bool DebugManager::isDebugChannelEnabled(uint32 channel) { } // End of namespace Common +bool debugLevelSet(int level) { + return level <= gDebugLevel; +} + +bool debugChannelSet(int level, uint32 debugChannels) { + if (gDebugLevel != 11) + if (level > gDebugLevel || !(DebugMan.isDebugChannelEnabled(debugChannels))) + return false; + + return true; +} + #ifndef DISABLE_TEXT_CONSOLE diff --git a/common/debug.h b/common/debug.h index 00bad81fa6..883a0bf29d 100644 --- a/common/debug.h +++ b/common/debug.h @@ -31,11 +31,10 @@ inline void debug(const char *s, ...) {} inline void debug(int level, const char *s, ...) {} inline void debugN(const char *s, ...) {} inline void debugN(int level, const char *s, ...) {} -inline void debugC(int level, uint32 engineChannel, const char *s, ...) {} -inline void debugC(uint32 engineChannel, const char *s, ...) {} -inline void debugCN(int level, uint32 engineChannel, const char *s, ...) {} -inline void debugCN(uint32 engineChannel, const char *s, ...) {} - +inline void debugC(int level, uint32 debugChannels, const char *s, ...) {} +inline void debugC(uint32 debugChannels, const char *s, ...) {} +inline void debugCN(int level, uint32 debugChannels, const char *s, ...) {} +inline void debugCN(uint32 debugChannels, const char *s, ...) {} #else @@ -110,6 +109,18 @@ void debugCN(uint32 debugChannels, const char *s, ...) GCC_PRINTF(2, 3); #endif +/** + * Returns true if the debug level is set to the specified level + */ +bool debugLevelSet(int level); + +/** + * Returns true if the debug level and channel are active + * + * @see enableDebugChannel + */ +bool debugChannelSet(int level, uint32 debugChannels); + /** * The debug level. Initially set to -1, indicating that no debug output * should be shown. Positive values usually imply an increasing number of -- cgit v1.2.3