aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tmk_core/common/action_util.c32
-rw-r--r--tmk_core/common/action_util.h14
-rw-r--r--tmk_core/common/report.c30
-rw-r--r--tmk_core/common/report.h4
4 files changed, 45 insertions, 35 deletions
diff --git a/tmk_core/common/action_util.c b/tmk_core/common/action_util.c
index 511649676..f76398fb9 100644
--- a/tmk_core/common/action_util.c
+++ b/tmk_core/common/action_util.c
@@ -136,38 +136,6 @@ void send_keyboard_report(void) {
136 host_keyboard_send(keyboard_report); 136 host_keyboard_send(keyboard_report);
137} 137}
138 138
139/* key */
140void add_key(uint8_t key)
141{
142#ifdef NKRO_ENABLE
143 if (keyboard_protocol && keymap_config.nkro) {
144 add_key_bit(keyboard_report, key);
145 return;
146 }
147#endif
148 add_key_byte(keyboard_report, key);
149}
150
151void del_key(uint8_t key)
152{
153#ifdef NKRO_ENABLE
154 if (keyboard_protocol && keymap_config.nkro) {
155 del_key_bit(keyboard_report, key);
156 return;
157 }
158#endif
159 del_key_byte(keyboard_report, key);
160}
161
162void clear_keys(void)
163{
164 // not clear mods
165 for (int8_t i = 1; i < KEYBOARD_REPORT_SIZE; i++) {
166 keyboard_report->raw[i] = 0;
167 }
168}
169
170
171/* modifier */ 139/* modifier */
172uint8_t get_mods(void) { return real_mods; } 140uint8_t get_mods(void) { return real_mods; }
173void add_mods(uint8_t mods) { real_mods |= mods; } 141void add_mods(uint8_t mods) { real_mods |= mods; }
diff --git a/tmk_core/common/action_util.h b/tmk_core/common/action_util.h
index 8fb88c0f6..345893151 100644
--- a/tmk_core/common/action_util.h
+++ b/tmk_core/common/action_util.h
@@ -29,9 +29,17 @@ extern report_keyboard_t *keyboard_report;
29void send_keyboard_report(void); 29void send_keyboard_report(void);
30 30
31/* key */ 31/* key */
32void add_key(uint8_t key); 32inline void add_key(uint8_t key) {
33void del_key(uint8_t key); 33 add_key_to_report(keyboard_report, key);
34void clear_keys(void); 34}
35
36inline void del_key(uint8_t key) {
37 del_key_from_report(keyboard_report, key);
38}
39
40inline void clear_keys(void) {
41 clear_keys_from_report(keyboard_report);
42}
35 43
36/* modifier */ 44/* modifier */
37uint8_t get_mods(void); 45uint8_t get_mods(void);
diff --git a/tmk_core/common/report.c b/tmk_core/common/report.c
index 0a67b2534..74c6d3fdd 100644
--- a/tmk_core/common/report.c
+++ b/tmk_core/common/report.c
@@ -175,3 +175,33 @@ void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code)
175 } 175 }
176} 176}
177#endif 177#endif
178
179void add_key_to_report(report_keyboard_t* keyboard_report, int8_t key)
180{
181#ifdef NKRO_ENABLE
182 if (keyboard_protocol && keymap_config.nkro) {
183 add_key_bit(keyboard_report, key);
184 return;
185 }
186#endif
187 add_key_byte(keyboard_report, key);
188}
189
190void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key)
191{
192#ifdef NKRO_ENABLE
193 if (keyboard_protocol && keymap_config.nkro) {
194 del_key_bit(keyboard_report, key);
195 return;
196 }
197#endif
198 del_key_byte(keyboard_report, key);
199}
200
201void clear_keys_from_report(report_keyboard_t* keyboard_report)
202{
203 // not clear mods
204 for (int8_t i = 1; i < KEYBOARD_REPORT_SIZE; i++) {
205 keyboard_report->raw[i] = 0;
206 }
207} \ No newline at end of file
diff --git a/tmk_core/common/report.h b/tmk_core/common/report.h
index 30ce80542..899fc524c 100644
--- a/tmk_core/common/report.h
+++ b/tmk_core/common/report.h
@@ -184,6 +184,10 @@ void add_key_bit(report_keyboard_t* keyboard_report, uint8_t code);
184void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code); 184void del_key_bit(report_keyboard_t* keyboard_report, uint8_t code);
185#endif 185#endif
186 186
187void add_key_to_report(report_keyboard_t* keyboard_report, int8_t key);
188void del_key_from_report(report_keyboard_t* keyboard_report, uint8_t key);
189void clear_keys_from_report(report_keyboard_t* keyboard_report);
190
187#ifdef __cplusplus 191#ifdef __cplusplus
188} 192}
189#endif 193#endif