aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common/debug.h
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common/debug.h')
-rw-r--r--tmk_core/common/debug.h173
1 files changed, 114 insertions, 59 deletions
diff --git a/tmk_core/common/debug.h b/tmk_core/common/debug.h
index 3cbe2092d..f9d611bb0 100644
--- a/tmk_core/common/debug.h
+++ b/tmk_core/common/debug.h
@@ -21,7 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
21#include <stdbool.h> 21#include <stdbool.h>
22#include "print.h" 22#include "print.h"
23 23
24
25#ifdef __cplusplus 24#ifdef __cplusplus
26extern "C" { 25extern "C" {
27#endif 26#endif
@@ -31,11 +30,11 @@ extern "C" {
31 */ 30 */
32typedef union { 31typedef union {
33 struct { 32 struct {
34 bool enable:1; 33 bool enable : 1;
35 bool matrix:1; 34 bool matrix : 1;
36 bool keyboard:1; 35 bool keyboard : 1;
37 bool mouse:1; 36 bool mouse : 1;
38 uint8_t reserved:4; 37 uint8_t reserved : 4;
39 }; 38 };
40 uint8_t raw; 39 uint8_t raw;
41} debug_config_t; 40} debug_config_t;
@@ -47,70 +46,126 @@ extern debug_config_t debug_config;
47#endif 46#endif
48 47
49/* for backward compatibility */ 48/* for backward compatibility */
50#define debug_enable (debug_config.enable) 49#define debug_enable (debug_config.enable)
51#define debug_matrix (debug_config.matrix) 50#define debug_matrix (debug_config.matrix)
52#define debug_keyboard (debug_config.keyboard) 51#define debug_keyboard (debug_config.keyboard)
53#define debug_mouse (debug_config.mouse) 52#define debug_mouse (debug_config.mouse)
54
55 53
56/* 54/*
57 * Debug print utils 55 * Debug print utils
58 */ 56 */
59#ifndef NO_DEBUG 57#ifndef NO_DEBUG
60 58
61#define dprint(s) do { if (debug_enable) print(s); } while (0) 59# define dprint(s) \
62#define dprintln(s) do { if (debug_enable) println(s); } while (0) 60 do { \
63#define dprintf(fmt, ...) do { if (debug_enable) xprintf(fmt, ##__VA_ARGS__); } while (0) 61 if (debug_enable) print(s); \
64#define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s)) 62 } while (0)
63# define dprintln(s) \
64 do { \
65 if (debug_enable) println(s); \
66 } while (0)
67# define dprintf(fmt, ...) \
68 do { \
69 if (debug_enable) xprintf(fmt, ##__VA_ARGS__); \
70 } while (0)
71# define dmsg(s) dprintf("%s at %s: %S\n", __FILE__, __LINE__, PSTR(s))
65 72
66/* Deprecated. DO NOT USE these anymore, use dprintf instead. */ 73/* Deprecated. DO NOT USE these anymore, use dprintf instead. */
67#define debug(s) do { if (debug_enable) print(s); } while (0) 74# define debug(s) \
68#define debugln(s) do { if (debug_enable) println(s); } while (0) 75 do { \
69#define debug_msg(s) do { \ 76 if (debug_enable) print(s); \
70 if (debug_enable) { \ 77 } while (0)
71 print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \ 78# define debugln(s) \
72 } \ 79 do { \
73} while (0) 80 if (debug_enable) println(s); \
74#define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0) 81 } while (0)
75#define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0) 82# define debug_msg(s) \
76#define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0) 83 do { \
77#define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0) 84 if (debug_enable) { \
78#define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0) 85 print(__FILE__); \
79#define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0) 86 print(" at "); \
80#define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0) 87 print_dec(__LINE__); \
81#define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0) 88 print(" in "); \
82#define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0) 89 print(": "); \
83#define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0) 90 print(s); \
84#define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0) 91 } \
85#define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0) 92 } while (0)
86#define debug_hex(data) debug_hex8(data) 93# define debug_dec(data) \
87#define debug_bin(data) debug_bin8(data) 94 do { \
88#define debug_bin_reverse(data) debug_bin8(data) 95 if (debug_enable) print_dec(data); \
96 } while (0)
97# define debug_decs(data) \
98 do { \
99 if (debug_enable) print_decs(data); \
100 } while (0)
101# define debug_hex4(data) \
102 do { \
103 if (debug_enable) print_hex4(data); \
104 } while (0)
105# define debug_hex8(data) \
106 do { \
107 if (debug_enable) print_hex8(data); \
108 } while (0)
109# define debug_hex16(data) \
110 do { \
111 if (debug_enable) print_hex16(data); \
112 } while (0)
113# define debug_hex32(data) \
114 do { \
115 if (debug_enable) print_hex32(data); \
116 } while (0)
117# define debug_bin8(data) \
118 do { \
119 if (debug_enable) print_bin8(data); \
120 } while (0)
121# define debug_bin16(data) \
122 do { \
123 if (debug_enable) print_bin16(data); \
124 } while (0)
125# define debug_bin32(data) \
126 do { \
127 if (debug_enable) print_bin32(data); \
128 } while (0)
129# define debug_bin_reverse8(data) \
130 do { \
131 if (debug_enable) print_bin_reverse8(data); \
132 } while (0)
133# define debug_bin_reverse16(data) \
134 do { \
135 if (debug_enable) print_bin_reverse16(data); \
136 } while (0)
137# define debug_bin_reverse32(data) \
138 do { \
139 if (debug_enable) print_bin_reverse32(data); \
140 } while (0)
141# define debug_hex(data) debug_hex8(data)
142# define debug_bin(data) debug_bin8(data)
143# define debug_bin_reverse(data) debug_bin8(data)
89 144
90#else /* NO_DEBUG */ 145#else /* NO_DEBUG */
91 146
92#define dprint(s) 147# define dprint(s)
93#define dprintln(s) 148# define dprintln(s)
94#define dprintf(fmt, ...) 149# define dprintf(fmt, ...)
95#define dmsg(s) 150# define dmsg(s)
96#define debug(s) 151# define debug(s)
97#define debugln(s) 152# define debugln(s)
98#define debug_msg(s) 153# define debug_msg(s)
99#define debug_dec(data) 154# define debug_dec(data)
100#define debug_decs(data) 155# define debug_decs(data)
101#define debug_hex4(data) 156# define debug_hex4(data)
102#define debug_hex8(data) 157# define debug_hex8(data)
103#define debug_hex16(data) 158# define debug_hex16(data)
104#define debug_hex32(data) 159# define debug_hex32(data)
105#define debug_bin8(data) 160# define debug_bin8(data)
106#define debug_bin16(data) 161# define debug_bin16(data)
107#define debug_bin32(data) 162# define debug_bin32(data)
108#define debug_bin_reverse8(data) 163# define debug_bin_reverse8(data)
109#define debug_bin_reverse16(data) 164# define debug_bin_reverse16(data)
110#define debug_bin_reverse32(data) 165# define debug_bin_reverse32(data)
111#define debug_hex(data) 166# define debug_hex(data)
112#define debug_bin(data) 167# define debug_bin(data)
113#define debug_bin_reverse(data) 168# define debug_bin_reverse(data)
114 169
115#endif /* NO_DEBUG */ 170#endif /* NO_DEBUG */
116 171