diff options
author | Eugene Sandulenko | 2017-01-09 09:10:09 +0100 |
---|---|---|
committer | Eugene Sandulenko | 2017-01-09 09:22:35 +0100 |
commit | eab2e06169d2d6447f24f04ef04f1adc342c8aac (patch) | |
tree | 48fcb9e3aa8b9bf2226ad1b029dbe311e97809e5 | |
parent | f63b9d0fcb50ff4a976d0dcbfb132f43902454a3 (diff) | |
download | scummvm-rg350-eab2e06169d2d6447f24f04ef04f1adc342c8aac.tar.gz scummvm-rg350-eab2e06169d2d6447f24f04ef04f1adc342c8aac.tar.bz2 scummvm-rg350-eab2e06169d2d6447f24f04ef04f1adc342c8aac.zip |
COMMON: Enhanced debug channel checks.
Now it is possible to enforce checking by specifying level -1,
that is, debug level 11 will not turn it on.
-rw-r--r-- | common/debug-channels.h | 2 | ||||
-rw-r--r-- | common/debug.cpp | 8 | ||||
-rw-r--r-- | common/debug.h | 1 |
3 files changed, 6 insertions, 5 deletions
diff --git a/common/debug-channels.h b/common/debug-channels.h index 1414a1053a..0fb8006803 100644 --- a/common/debug-channels.h +++ b/common/debug-channels.h @@ -117,7 +117,7 @@ public: /** * Test whether the given debug channel is enabled. */ - bool isDebugChannelEnabled(uint32 channel); + bool isDebugChannelEnabled(uint32 channel, bool enforce = false); private: typedef HashMap<String, DebugChannel, IgnoreCase_Hash, IgnoreCase_EqualTo> DebugChannelMap; diff --git a/common/debug.cpp b/common/debug.cpp index c61fc63dea..5db8990db8 100644 --- a/common/debug.cpp +++ b/common/debug.cpp @@ -110,9 +110,9 @@ void DebugManager::disableAllDebugChannels() { disableDebugChannel(i->_value.name); } -bool DebugManager::isDebugChannelEnabled(uint32 channel) { +bool DebugManager::isDebugChannelEnabled(uint32 channel, bool enforce) { // Debug level 11 turns on all special debug level messages - if (gDebugLevel == 11) + if (gDebugLevel == 11 && enforce == false) return true; else return (gDebugChannelsEnabled & channel) != 0; @@ -125,8 +125,8 @@ bool debugLevelSet(int level) { } bool debugChannelSet(int level, uint32 debugChannels) { - if (gDebugLevel != 11) - if (level > gDebugLevel || !(DebugMan.isDebugChannelEnabled(debugChannels))) + if (gDebugLevel != 11 || level == -1) + if ((level != -1 && level > gDebugLevel) || !(DebugMan.isDebugChannelEnabled(debugChannels, level == -1))) return false; return true; diff --git a/common/debug.h b/common/debug.h index 883a0bf29d..5ec37f2f1e 100644 --- a/common/debug.h +++ b/common/debug.h @@ -117,6 +117,7 @@ bool debugLevelSet(int level); /** * Returns true if the debug level and channel are active * + * @param level debug level to check against. If set to -1, only channel check is active * @see enableDebugChannel */ bool debugChannelSet(int level, uint32 debugChannels); |