]> git.gir.st - tmk_keyboard.git/blob - common/debug.h
Merge branch 'add_build_options'
[tmk_keyboard.git] / common / debug.h
1 /*
2 Copyright 2011 Jun Wako <wakojun@gmail.com>
3
4 This program is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18 #ifndef DEBUG_H
19 #define DEBUG_H 1
20
21 #include <stdbool.h>
22 #include "print.h"
23
24
25 #ifndef NO_DEBUG
26
27 #define debug(s) do { if (debug_enable) print(s); } while (0)
28 #define debugln(s) do { if (debug_enable) println(s); } while (0)
29 #define debug_S(s) do { if (debug_enable) print_S(s); } while (0)
30 #define debug_P(s) do { if (debug_enable) print_P(s); } while (0)
31 #define debug_msg(s) do { \
32 if (debug_enable) { \
33 print(__FILE__); print(" at "); print_dec(__LINE__); print(" in "); print(": "); print(s); \
34 } \
35 } while (0)
36 #define debug_dec(data) do { if (debug_enable) print_dec(data); } while (0)
37 #define debug_decs(data) do { if (debug_enable) print_decs(data); } while (0)
38 #define debug_hex4(data) do { if (debug_enable) print_hex4(data); } while (0)
39 #define debug_hex8(data) do { if (debug_enable) print_hex8(data); } while (0)
40 #define debug_hex16(data) do { if (debug_enable) print_hex16(data); } while (0)
41 #define debug_hex32(data) do { if (debug_enable) print_hex32(data); } while (0)
42 #define debug_bin8(data) do { if (debug_enable) print_bin8(data); } while (0)
43 #define debug_bin16(data) do { if (debug_enable) print_bin16(data); } while (0)
44 #define debug_bin32(data) do { if (debug_enable) print_bin32(data); } while (0)
45 #define debug_bin_reverse8(data) do { if (debug_enable) print_bin_reverse8(data); } while (0)
46 #define debug_bin_reverse16(data) do { if (debug_enable) print_bin_reverse16(data); } while (0)
47 #define debug_bin_reverse32(data) do { if (debug_enable) print_bin_reverse32(data); } while (0)
48 #define debug_hex(data) debug_hex8(data)
49 #define debug_bin(data) debug_bin8(data)
50 #define debug_bin_reverse(data) debug_bin8(data)
51
52 #else
53
54 #define debug(s)
55 #define debugln(s)
56 #define debug_S(s)
57 #define debug_P(s)
58 #define debug_msg(s)
59 #define debug_dec(data)
60 #define debug_decs(data)
61 #define debug_hex4(data)
62 #define debug_hex8(data)
63 #define debug_hex16(data)
64 #define debug_hex32(data)
65 #define debug_bin8(data)
66 #define debug_bin16(data)
67 #define debug_bin32(data)
68 #define debug_bin_reverse8(data)
69 #define debug_bin_reverse16(data)
70 #define debug_bin_reverse32(data)
71 #define debug_hex(data)
72 #define debug_bin(data)
73 #define debug_bin_reverse(data)
74
75 #endif
76
77
78 #ifdef __cplusplus
79 extern "C" {
80 #endif
81
82 extern bool debug_enable;
83 extern bool debug_matrix;
84 extern bool debug_keyboard;
85 extern bool debug_mouse;
86
87 #ifdef __cplusplus
88 }
89 #endif
90
91 #endif
Imprint / Impressum