diff options
Diffstat (limited to 'tmk_core/common/report.c')
-rw-r--r-- | tmk_core/common/report.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/tmk_core/common/report.c b/tmk_core/common/report.c index 1bcb6f2ad..2a7fc006c 100644 --- a/tmk_core/common/report.c +++ b/tmk_core/common/report.c | |||
@@ -21,6 +21,16 @@ | |||
21 | #include "util.h" | 21 | #include "util.h" |
22 | #include <string.h> | 22 | #include <string.h> |
23 | 23 | ||
24 | #ifdef RING_BUFFERED_6KRO_REPORT_ENABLE | ||
25 | # define RO_ADD(a, b) ((a + b) % KEYBOARD_REPORT_KEYS) | ||
26 | # define RO_SUB(a, b) ((a - b + KEYBOARD_REPORT_KEYS) % KEYBOARD_REPORT_KEYS) | ||
27 | # define RO_INC(a) RO_ADD(a, 1) | ||
28 | # define RO_DEC(a) RO_SUB(a, 1) | ||
29 | static int8_t cb_head = 0; | ||
30 | static int8_t cb_tail = 0; | ||
31 | static int8_t cb_count = 0; | ||
32 | #endif | ||
33 | |||
24 | /** \brief has_anykey | 34 | /** \brief has_anykey |
25 | * | 35 | * |
26 | * FIXME: Needs doc | 36 | * FIXME: Needs doc |
@@ -54,7 +64,7 @@ uint8_t get_first_key(report_keyboard_t* keyboard_report) { | |||
54 | return i << 3 | biton(keyboard_report->nkro.bits[i]); | 64 | return i << 3 | biton(keyboard_report->nkro.bits[i]); |
55 | } | 65 | } |
56 | #endif | 66 | #endif |
57 | #ifdef USB_6KRO_ENABLE | 67 | #ifdef RING_BUFFERED_6KRO_REPORT_ENABLE |
58 | uint8_t i = cb_head; | 68 | uint8_t i = cb_head; |
59 | do { | 69 | do { |
60 | if (keyboard_report->keys[i] != 0) { | 70 | if (keyboard_report->keys[i] != 0) { |
@@ -99,7 +109,7 @@ bool is_key_pressed(report_keyboard_t* keyboard_report, uint8_t key) { | |||
99 | * FIXME: Needs doc | 109 | * FIXME: Needs doc |
100 | */ | 110 | */ |
101 | void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { | 111 | void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { |
102 | #ifdef USB_6KRO_ENABLE | 112 | #ifdef RING_BUFFERED_6KRO_REPORT_ENABLE |
103 | int8_t i = cb_head; | 113 | int8_t i = cb_head; |
104 | int8_t empty = -1; | 114 | int8_t empty = -1; |
105 | if (cb_count) { | 115 | if (cb_count) { |
@@ -166,7 +176,7 @@ void add_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { | |||
166 | * FIXME: Needs doc | 176 | * FIXME: Needs doc |
167 | */ | 177 | */ |
168 | void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { | 178 | void del_key_byte(report_keyboard_t* keyboard_report, uint8_t code) { |
169 | #ifdef USB_6KRO_ENABLE | 179 | #ifdef RING_BUFFERED_6KRO_REPORT_ENABLE |
170 | uint8_t i = cb_head; | 180 | uint8_t i = cb_head; |
171 | if (cb_count) { | 181 | if (cb_count) { |
172 | do { | 182 | do { |