Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbhid/kbddev.c

    rd477734 r6bb456c  
    6363static const size_t BOOTP_BUFFER_SIZE = 8;
    6464static const size_t BOOTP_BUFFER_OUT_SIZE = 1;
    65 static const uint8_t BOOTP_ERROR_ROLLOVER = 1;
    6665static const uint8_t IDLE_RATE = 0;
    6766
     
    182181            usb_debug_str_buffer(buffer, BOOTP_BUFFER_OUT_SIZE, 0));
    183182       
     183        uint16_t value = 0;
     184        value |= (USB_HID_REPORT_TYPE_OUTPUT << 8);
     185
    184186        assert(kbd_dev->hid_dev != NULL);
    185187        assert(kbd_dev->hid_dev->initialized);
    186         usbhid_req_set_report(kbd_dev->hid_dev, USB_HID_REPORT_TYPE_OUTPUT,
    187             buffer, BOOTP_BUFFER_OUT_SIZE);
     188        usbhid_req_set_report(kbd_dev->hid_dev, value, buffer,
     189            BOOTP_BUFFER_OUT_SIZE);
    188190}
    189191
     
    320322    const uint8_t *key_codes)
    321323{
     324        // TODO: phantom state!!
     325       
    322326        unsigned int key;
    323327        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         }
    339328       
    340329        // TODO: quite dummy right now, think of better implementation
     
    355344                        key = usbhid_parse_scancode(kbd_dev->keycodes[j]);
    356345                        usbhid_kbd_push_ev(kbd_dev, KEY_RELEASE, key);
    357                         usb_log_debug2("Key released: %d\n", key);
     346                        usb_log_debug2("\nKey released: %d\n", key);
    358347                } else {
    359348                        // found, nothing happens
     
    375364                        // not found, i.e. new key pressed
    376365                        key = usbhid_parse_scancode(key_codes[i]);
    377                         usb_log_debug2("Key pressed: %d (keycode: %d)\n", key,
     366                        usb_log_debug2("\nKey pressed: %d (keycode: %d)\n", key,
    378367                            key_codes[i]);
    379368                        usbhid_kbd_push_ev(kbd_dev, KEY_PRESS, key);
     
    386375//              if (key_codes[i] != 0) {
    387376//                      key = usbhid_parse_scancode(key_codes[i]);
    388 //                      usb_log_debug2("Key pressed: %d (keycode: %d)\n", key,
     377//                      usb_log_debug2("\nKey pressed: %d (keycode: %d)\n", key,
    389378//                          key_codes[i]);
    390379//                      usbhid_kbd_push_ev(kbd_dev, KEY_PRESS, key);
Note: See TracChangeset for help on using the changeset viewer.