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.
This commit is contained in:
Eugene Sandulenko 2017-01-09 09:10:09 +01:00
parent f63b9d0fcb
commit eab2e06169
3 changed files with 6 additions and 5 deletions

View file

@ -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;