Explorar el Código

Workaround for Mac HID SET_IDLE behaviour.

core
tmk hace 12 años
padre
commit
9dec116bc0
Se han modificado 1 ficheros con 5 adiciones y 2 borrados
  1. 5
    2
      pjrc/usb.c

+ 5
- 2
pjrc/usb.c Ver fichero

// //
ISR(USB_GEN_vect) ISR(USB_GEN_vect)
{ {
uint8_t intbits, t, i;
uint8_t intbits, t;
static uint8_t div4=0; static uint8_t div4=0;


intbits = UDINT; intbits = UDINT;
usb_keyboard_idle_count++; usb_keyboard_idle_count++;
if (usb_keyboard_idle_count == usb_keyboard_idle_config) { if (usb_keyboard_idle_count == usb_keyboard_idle_config) {
usb_keyboard_idle_count = 0; usb_keyboard_idle_count = 0;
/* TODO: fix keyboard_report inconsistency */
/* To avoid Mac SET_IDLE behaviour.
UEDATX = keyboard_report_prev->mods; UEDATX = keyboard_report_prev->mods;
UEDATX = 0; UEDATX = 0;
uint8_t keys = usb_keyboard_protocol ? KBD_REPORT_KEYS : 6; uint8_t keys = usb_keyboard_protocol ? KBD_REPORT_KEYS : 6;
for (i=0; i<keys; i++) {
for (uint8_t i=0; i<keys; i++) {
UEDATX = keyboard_report_prev->keys[i]; UEDATX = keyboard_report_prev->keys[i];
} }
UEINTX = 0x3A; UEINTX = 0x3A;
*/
} }
} }
} }