Changes in uspace/drv/usbkbd/kbddev.c [7f2e33a:ef354b6] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbkbd/kbddev.c
r7f2e33a ref354b6 128 128 0x15, 0x00, // Logical Minimum (0), 129 129 0x25, 0x01, // Logical Maximum (1), 130 //0x85, 0x00, // Report ID, 131 //0xA4, // Push 130 132 0x81, 0x02, // Input (Data, Variable, Absolute), ; Modifier byte 131 0x95, 0x01, // Report Count (1), 132 0x75, 0x08, // Report Size (8), 133 //0xB4, // Pop 134 0x75, 0x08, // Report Size (1), 135 0x95, 0x01, // Report Count (8), 133 136 0x81, 0x01, // Input (Constant), ; Reserved byte 134 137 0x95, 0x05, // Report Count (5), … … 265 268 static void usb_kbd_set_led(usb_kbd_t *kbd_dev) 266 269 { 267 if (kbd_dev->output_size == 0) {268 return;269 }270 271 270 unsigned i = 0; 272 271 … … 290 289 291 290 usb_log_debug("Creating output report.\n"); 292 293 int rc = usb_hid_report_output_translate(kbd_dev->parser,294 kbd_dev->led_path,295 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY,296 kbd_dev->output_buffer,297 kbd_dev->output_ size, kbd_dev->led_data, kbd_dev->led_output_size);291 292 usb_hid_report_output_set_data(kbd_dev->parser, kbd_dev->led_path, 293 USB_HID_PATH_COMPARE_END , kbd_dev->led_data, 294 kbd_dev->led_output_size); 295 int rc = usb_hid_report_output_translate(kbd_dev->parser, 0, 296 kbd_dev->output_buffer, kbd_dev->output_size); 298 297 299 298 if (rc != EOK) { … … 545 544 * according to HID Usage Tables. 546 545 * @param count Number of key codes in report (size of the report). 547 * @param report_id546 * @param modifiers Bitmap of modifiers (Ctrl, Alt, Shift, GUI). 548 547 * @param arg User-specified argument. Expects pointer to the keyboard device 549 548 * structure representing the keyboard. … … 552 551 */ 553 552 static void usb_kbd_process_keycodes(const uint8_t *key_codes, size_t count, 554 uint8_t report_id, void *arg)553 uint8_t modifiers, void *arg) 555 554 { 556 555 if (arg == NULL) { … … 563 562 assert(kbd_dev != NULL); 564 563 565 usb_log_debug("Got keys from parser (report id: % u): %s\n",566 report_id,usb_debug_str_buffer(key_codes, count, 0));564 usb_log_debug("Got keys from parser (report id: %d): %s\n", modifiers, 565 usb_debug_str_buffer(key_codes, count, 0)); 567 566 568 567 if (count != kbd_dev->key_count) { … … 614 613 usb_hid_report_path_t *path = usb_hid_report_path(); 615 614 usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0); 616 usb_hid_report_path_set_report_id(path, 0); 617 618 int rc = usb_hid_parse_report(kbd_dev->parser, buffer, 619 actual_size, path, 620 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 621 callbacks, kbd_dev); 615 616 int rc = usb_hid_parse_report(kbd_dev->parser, buffer, actual_size); 617 usb_hid_descriptor_print (kbd_dev->parser); 622 618 623 619 usb_hid_report_path_free (path); … … 663 659 memset(kbd_dev, 0, sizeof(usb_kbd_t)); 664 660 665 kbd_dev->parser = (usb_hid_report_ parser_t *)(malloc(sizeof(666 usb_hid_report_ parser_t)));661 kbd_dev->parser = (usb_hid_report_t *)(malloc(sizeof( 662 usb_hid_report_t))); 667 663 if (kbd_dev->parser == NULL) { 668 664 usb_log_fatal("No memory!\n"); … … 732 728 733 729 /* Initialize the report parser. */ 734 rc = usb_hid_parser_init(kbd_dev->parser);735 if (rc != EOK) {736 usb_log_error("Failed to initialize report parser.\n");737 return rc;738 }730 //rc = usb_hid_parser_init(kbd_dev->parser); 731 //if (rc != EOK) { 732 // usb_log_error("Failed to initialize report parser.\n"); 733 // return rc; 734 //} 739 735 740 736 /* Get the report descriptor and parse it. */ … … 767 763 usb_hid_report_path_t *path = usb_hid_report_path(); 768 764 usb_hid_report_path_append_item(path, USB_HIDUT_PAGE_KEYBOARD, 0); 769 770 usb_hid_report_path_set_report_id(path, 0);771 772 765 kbd_dev->key_count = usb_hid_report_input_length( 773 kbd_dev->parser, path, 774 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY); 766 kbd_dev->parser, path, USB_HID_PATH_COMPARE_END); 775 767 usb_hid_report_path_free (path); 776 768 … … 789 781 kbd_dev->output_size = 0; 790 782 kbd_dev->output_buffer = usb_hid_report_output(kbd_dev->parser, 791 &kbd_dev->output_size );792 if (kbd_dev->output_buffer == NULL && kbd_dev->output_size != 0) {783 &kbd_dev->output_size, 0x00); 784 if (kbd_dev->output_buffer == NULL) { 793 785 usb_log_warning("Error creating output report buffer.\n"); 794 786 free(kbd_dev->keys); … … 801 793 usb_hid_report_path_append_item( 802 794 kbd_dev->led_path, USB_HIDUT_PAGE_LED, 0); 795 usb_hid_report_path_set_report_id(kbd_dev->led_path, 0x00); 803 796 804 797 kbd_dev->led_output_size = usb_hid_report_output_size(kbd_dev->parser, 805 kbd_dev->led_path, 806 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY); 798 kbd_dev->led_path, USB_HID_PATH_COMPARE_END); 807 799 808 800 usb_log_debug("Output report size (in items): %zu\n", … … 849 841 * Set Idle rate 850 842 */ 851 usb_kbd_set_led(kbd_dev); 843 usb_kbd_set_led(kbd_dev); 852 844 853 845 usbhid_req_set_idle(&kbd_dev->usb_dev->ctrl_pipe, … … 934 926 // destroy the parser 935 927 if ((*kbd_dev)->parser != NULL) { 936 usb_hid_free_report _parser((*kbd_dev)->parser);928 usb_hid_free_report((*kbd_dev)->parser); 937 929 } 938 930
Note:
See TracChangeset
for help on using the changeset viewer.