// 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;
{
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
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;
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));
}
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++);
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];
}