X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=usb_keyboard.c;h=57e23d5fce951a61c52a73e1636f88bf48a86291;hb=7ad93f7850cd3d20260628b10a8b123d97736e4e;hp=7055a653fb6d057afbe8472205573b26e4567887;hpb=51f17f02317700e64b3c1113fe230d78bac7fecd;p=max%2Ftmk_keyboard.git diff --git a/usb_keyboard.c b/usb_keyboard.c index 7055a653..57e23d5f 100644 --- a/usb_keyboard.c +++ b/usb_keyboard.c @@ -28,7 +28,7 @@ uint8_t usb_keyboard_idle_count=0; // 1=num lock, 2=caps lock, 4=scroll lock, 8=compose, 16=kana volatile uint8_t usb_keyboard_leds=0; -// enable NKRO +// enable USB NKRO bool usb_keyboard_nkro = false; @@ -42,7 +42,7 @@ int8_t usb_keyboard_send_report(usb_keyboard_report_t *report) { int8_t result = 0; -#ifdef NKRO_ENABLE +#ifdef USB_NKRO_ENABLE if (usb_keyboard_nkro) result = _send_report(report, KBD2_ENDPOINT, 0, KBD2_REPORT_KEYS); else @@ -106,7 +106,7 @@ static inline void _add_key_byte(uint8_t code); static inline void _add_key_bit(uint8_t code); void usb_keyboard_add_key(uint8_t code) { -#ifdef NKRO_ENABLE +#ifdef USB_NKRO_ENABLE if (usb_keyboard_nkro) { _add_key_bit(code); return; @@ -131,7 +131,7 @@ void usb_keyboard_del_code(uint8_t code) void usb_keyboard_del_key(uint8_t code) { -#ifdef NKRO_ENABLE +#ifdef USB_NKRO_ENABLE if ((code>>3) < KEYS_MAX) { usb_keyboard_keys[code>>3] &= ~(1<<(code&7)); } @@ -169,7 +169,7 @@ bool usb_keyboard_has_mod(void) uint8_t usb_keyboard_get_key(void) { -#ifdef NKRO_ENABLE +#ifdef USB_NKRO_ENABLE if (usb_keyboard_nkro) { uint8_t i = 0; for (; i < KEYS_MAX && !usb_keyboard_keys[i]; i++); @@ -211,7 +211,8 @@ static inline int8_t _send_report(usb_keyboard_report_t *report, uint8_t endpoin UENUM = endpoint; } UEDATX = report->mods; - UEDATX = 0; + if (!usb_keyboard_nkro) + UEDATX = 0; for (uint8_t i = keys_start; i < keys_end; i++) { UEDATX = report->keys[i]; }