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 { |
