1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170
|
/* ScummVM - Graphic Adventure Engine
*
* ScummVM is the legal property of its developers, whose names
* are too numerous to list here. Please refer to the COPYRIGHT
* file distributed with this source distribution.
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
#ifndef COMMON_DEBUG_H
#define COMMON_DEBUG_H
#include "common/scummsys.h"
#ifdef DISABLE_TEXT_CONSOLE
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 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
/**
* @defgroup common_debug Debug functions
* @ingroup common
*
* @brief Functions for printing debug messages.
* @{
*/
/**
* Print a debug message to the text console (stdout).
* Automatically appends a newline.
*/
void debug(MSVC_PRINTF const char *s, ...) GCC_PRINTF(1, 2);
/**
* Print a debug message to the text console (stdout), but only if
* the gDebugLevel equals at least the specified level.
* As a rule of thumb, the more important the message, the lower the level.
* Automatically appends a newline.
*/
void debug(int level, MSVC_PRINTF const char *s, ...) GCC_PRINTF(2, 3);
/**
* Print a debug message to the text console (stdout).
* Does not append a newline.
*/
void debugN(MSVC_PRINTF const char *s, ...) GCC_PRINTF(1, 2);
/**
* Print a debug message to the text console (stdout), but only if
* the gDebugLevel equals at least the specified level.
* As a rule of thumb, the more important the message, the lower the level.
* Does not append a newline.
*/
void debugN(int level, MSVC_PRINTF const char *s, ...) GCC_PRINTF(2, 3);
/**
* Print a debug message to the text console (stdout), but only if
* the gDebugLevel equals at least the specified level AND
* if the specified special debug level is active.
* As a rule of thumb, the more important the message, the lower the level.
* Automatically appends a newline.
* @see enableDebugChannel
*
* @param level Debug level that must be active for the message to be printed.
* @param debugChannels Bitfield of channels to check against.
* @param s Message to print.
*/
void debugC(int level, uint32 debugChannels, MSVC_PRINTF const char *s, ...) GCC_PRINTF(3, 4);
/**
* Print a debug message to the text console (stdout), but only if
* the gDebugLevel equals at least the specified level AND
* if the specified special debug level is active.
* As a rule of thumb, the more important the message, the lower the level.
* Does not append a newline automatically.
* @see enableDebugChannel
*
* @param level Debug level that must be active for the message to be printed.
* @param debugChannels Bitfield of channels to check against.
* @param s Message to print.
*
*/
void debugCN(int level, uint32 debugChannels, MSVC_PRINTF const char *s, ...) GCC_PRINTF(3, 4);
/**
* Print a debug message to the text console (stdout), but only if
* the specified special debug level is active.
* Automatically appends a newline.
* @see enableDebugChannel
*
* @param debugChannels Bitfield of channels to check against.
* @param s Message to print.
*/
void debugC(uint32 debugChannels, MSVC_PRINTF const char *s, ...) GCC_PRINTF(2, 3);
/**
* Print a debug message to the text console (stdout), but only if
* the specified special debug level is active.
* Does not append a newline automatically.
* @see enableDebugChannel
*
* @param debugChannels Bitfield of channels to check against.
* @param s Message to print.
*/
void debugCN(uint32 debugChannels, MSVC_PRINTF const char *s, ...) GCC_PRINTF(2, 3);
#endif
/**
* Check whether the debug level is set to the specified level.
*/
bool debugLevelSet(int level);
/**
* Check whether the debug level and channel are active.
*
* @param level Debug level to check against. If set to -1, only channel check is active.
* @param debugChannels Bitfield of channels to check against.
* @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 that an increasing number of
* debug output shall be generated. The higher the value, the more verbose the
* information (although the exact semantics are up to the engines).
*/
extern int gDebugLevel;
/**
* Specify whether to show only the debug channels and suppress
* the non-channeled output.
*
* This option is useful when you want to have higher levels of channels
* visible without the noise from other subsystems or OSystem.
*/
extern bool gDebugChannelsOnly;
/** Global constant for EventRecorder debug channel. */
enum GlobalDebugLevels {
kDebugGlobalDetection = 100000,
kDebugLevelEventRec,
kDebugLevelMainGUI,
kDebugLevelMacGUI,
};
/** @} */
#endif
|