Changes in uspace/drv/usbhid/kbddev.c [6bb456c:d477734] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/kbddev.c
r6bb456c rd477734 63 63 static const size_t BOOTP_BUFFER_SIZE = 8; 64 64 static const size_t BOOTP_BUFFER_OUT_SIZE = 1; 65 static const uint8_t BOOTP_ERROR_ROLLOVER = 1; 65 66 static const uint8_t IDLE_RATE = 0; 66 67 … … 181 182 usb_debug_str_buffer(buffer, BOOTP_BUFFER_OUT_SIZE, 0)); 182 183 183 uint16_t value = 0;184 value |= (USB_HID_REPORT_TYPE_OUTPUT << 8);185 186 184 assert(kbd_dev->hid_dev != NULL); 187 185 assert(kbd_dev->hid_dev->initialized); 188 usbhid_req_set_report(kbd_dev->hid_dev, value, buffer,189 BOOTP_BUFFER_OUT_SIZE);186 usbhid_req_set_report(kbd_dev->hid_dev, USB_HID_REPORT_TYPE_OUTPUT, 187 buffer, BOOTP_BUFFER_OUT_SIZE); 190 188 } 191 189 … … 322 320 const uint8_t *key_codes) 323 321 { 324 // TODO: phantom state!!325 326 322 unsigned int key; 327 323 unsigned int i, j; 324 325 /* 326 * First of all, check if the kbd have reported phantom state. 327 */ 328 i = 0; 329 // all fields should report Error Rollover 330 while (i < kbd_dev->keycode_count && 331 key_codes[i] == BOOTP_ERROR_ROLLOVER) { 332 ++i; 333 } 334 if (i == kbd_dev->keycode_count) { 335 usb_log_debug("Phantom state occured.\n"); 336 // phantom state, do nothing 337 return; 338 } 328 339 329 340 // TODO: quite dummy right now, think of better implementation … … 344 355 key = usbhid_parse_scancode(kbd_dev->keycodes[j]); 345 356 usbhid_kbd_push_ev(kbd_dev, KEY_RELEASE, key); 346 usb_log_debug2(" \nKey released: %d\n", key);357 usb_log_debug2("Key released: %d\n", key); 347 358 } else { 348 359 // found, nothing happens … … 364 375 // not found, i.e. new key pressed 365 376 key = usbhid_parse_scancode(key_codes[i]); 366 usb_log_debug2(" \nKey pressed: %d (keycode: %d)\n", key,377 usb_log_debug2("Key pressed: %d (keycode: %d)\n", key, 367 378 key_codes[i]); 368 379 usbhid_kbd_push_ev(kbd_dev, KEY_PRESS, key); … … 375 386 // if (key_codes[i] != 0) { 376 387 // key = usbhid_parse_scancode(key_codes[i]); 377 // usb_log_debug2(" \nKey pressed: %d (keycode: %d)\n", key,388 // usb_log_debug2("Key pressed: %d (keycode: %d)\n", key, 378 389 // key_codes[i]); 379 390 // usbhid_kbd_push_ev(kbd_dev, KEY_PRESS, key);
Note:
See TracChangeset
for help on using the changeset viewer.