X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Fdebug.h;h=3cbe2092d1e9b2fb375dedb5977801bb64267857;hb=7884125b797f0c594e666616caf289122489ec5e;hp=e63d46f0e9e0dbd398da756b45a7d0218f939f8c;hpb=ddb560052a8a336b5cec64ce08399c8299c9b4da;p=qmk_firmware.git diff --git a/common/debug.h b/common/debug.h index e63d46f0e..3cbe2092d 100644 --- a/common/debug.h +++ b/common/debug.h @@ -22,47 +22,96 @@ along with this program. If not, see . #include "print.h" -#define debug(s) do { if (debug_enable) print(s); } while (0) -#define debugln(s) do { if (debug_enable) println(s); } while (0) -#define debug_S(s) do { if (debug_enable) print_S(s); } while (0) -#define debug_P(s) do { if (debug_enable) print_P(s); } while (0) -#define debug_msg(s) do { \ - if (debug_enable) { \ - print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \ - } \ -} while (0) - - - -#define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0) -#define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0) -#define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0) -#define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0) -#define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0) -#define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0) -#define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0) -#define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0) -#define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0) -#define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0) -#define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0) -#define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0) - -#define debug_hex(data) debug_hex8(data) -#define debug_bin(data) debug_bin8(data) -#define debug_bin_reverse(data) debug_bin8(data) - - #ifdef __cplusplus extern "C" { #endif -extern bool debug_enable; -extern bool debug_matrix; -extern bool debug_keyboard; -extern bool debug_mouse; +/* + * Debug output control + */ +typedef union { + struct { + bool enable:1; + bool matrix:1; + bool keyboard:1; + bool mouse:1; + uint8_t reserved:4; + }; + uint8_t raw; +} debug_config_t; + +extern debug_config_t debug_config; #ifdef __cplusplus } #endif +/* for backward compatibility */ +#define debug_enable (debug_config.enable) +#define debug_matrix (debug_config.matrix) +#define debug_keyboard (debug_config.keyboard) +#define debug_mouse (debug_config.mouse) + + +/* + * Debug print utils + */ +#ifndef NO_DEBUG + +#define dprint(s) do { if (debug_enable) print(s); } while (0) +#define dprintln(s) do { if (debug_enable) println(s); } while (0) +#define dprintf(fmt, ...) do { if (debug_enable) xprintf(fmt, ##__VA_ARGS__); } while (0) +#define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s)) + +/* Deprecated. DO NOT USE these anymore, use dprintf instead. */ +#define debug(s) do { if (debug_enable) print(s); } while (0) +#define debugln(s) do { if (debug_enable) println(s); } while (0) +#define debug_msg(s) do { \ + if (debug_enable) { \ + print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \ + } \ +} while (0) +#define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0) +#define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0) +#define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0) +#define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0) +#define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0) +#define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0) +#define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0) +#define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0) +#define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0) +#define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0) +#define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0) +#define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0) +#define debug_hex(data) debug_hex8(data) +#define debug_bin(data) debug_bin8(data) +#define debug_bin_reverse(data) debug_bin8(data) + +#else /* NO_DEBUG */ + +#define dprint(s) +#define dprintln(s) +#define dprintf(fmt, ...) +#define dmsg(s) +#define debug(s) +#define debugln(s) +#define debug_msg(s) +#define debug_dec(data) +#define debug_decs(data) +#define debug_hex4(data) +#define debug_hex8(data) +#define debug_hex16(data) +#define debug_hex32(data) +#define debug_bin8(data) +#define debug_bin16(data) +#define debug_bin32(data) +#define debug_bin_reverse8(data) +#define debug_bin_reverse16(data) +#define debug_bin_reverse32(data) +#define debug_hex(data) +#define debug_bin(data) +#define debug_bin_reverse(data) + +#endif /* NO_DEBUG */ + #endif