Changeset 63517c2 in mainline for uspace/drv
- Timestamp:
- 2011-04-21T08:33:44Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 020559c9
- Parents:
- da1dd48 (diff), e50cd7f (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - Location:
- uspace/drv
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/kbd/kbddev.c
rda1dd48 r63517c2 320 320 // TODO: COMPOSE and KANA 321 321 322 usb_log_debug("Creating output report .\n");323 324 int rc = usb_hid_report_output_translate(hid_dev->parser,325 kbd_dev->led_path,326 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY,327 kbd_dev->output_buffer,328 kbd_dev->output_ size, kbd_dev->led_data, kbd_dev->led_output_size);322 usb_log_debug("Creating output report: %s\n", usb_debug_str_buffer ((uint8_t *)kbd_dev->led_data, kbd_dev->led_output_size * 4, 0)); 323 324 usb_hid_report_output_set_data(hid_dev->parser, kbd_dev->led_path, 325 USB_HID_PATH_COMPARE_END , kbd_dev->led_data, 326 kbd_dev->led_output_size); 327 int rc = usb_hid_report_output_translate(hid_dev->parser, 0, 328 kbd_dev->output_buffer, kbd_dev->output_size); 329 329 330 330 if (rc != EOK) { … … 649 649 //usb_hid_report_path_set_report_id(path, 0); 650 650 651 int rc = usb_hid_parse_report(hid_dev->parser, buffer, 652 actual_size, path, 653 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 654 &usb_kbd_parser_callbacks, hid_dev); 655 651 int rc = usb_hid_parse_report(hid_dev->parser, buffer, actual_size); 652 usb_hid_report_field_t *field = usb_hid_report_get_sibling(hid_dev->parser, 653 NULL, path, USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 654 USB_HID_REPORT_TYPE_INPUT); 655 656 while(field != NULL) { 657 usb_log_debug("FIELD (%X) - VALUE(%X) USAGE(%X)\n", field, field->value, field->usage); 658 field = usb_hid_report_get_sibling(hid_dev->parser, field, path, 659 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 660 USB_HID_REPORT_TYPE_INPUT); 661 } 662 663 656 664 usb_hid_report_path_free(path); 657 665 … … 766 774 kbd_dev->output_size = 0; 767 775 kbd_dev->output_buffer = usb_hid_report_output(hid_dev->parser, 768 &kbd_dev->output_size );769 if (kbd_dev->output_buffer == NULL && kbd_dev->output_size != 0) {776 &kbd_dev->output_size, 0x00); 777 if (kbd_dev->output_buffer == NULL) { 770 778 usb_log_warning("Error creating output report buffer.\n"); 771 779 free(kbd_dev->keys); 772 free(kbd_dev); 773 return ENOMEM; 780 return ENOMEM; /* TODO: other error code */ 774 781 } 775 782 -
uspace/drv/usbhid/lgtch-ultrax/lgtch-ultrax.c
rda1dd48 r63517c2 81 81 usb_hid_report_path_t *path = usb_hid_report_path(); 82 82 usb_hid_report_path_append_item(path, 0xc, 0); 83 usb_hid_report_path_set_report_id(path, 1);83 usb_hid_report_path_set_report_id(path, 0); 84 84 85 int rc = usb_hid_parse_report(hid_dev->parser, buffer, 86 buffer_size, path, 87 USB_HID_PATH_COMPARE_END | USB_HID_PATH_COMPARE_USAGE_PAGE_ONLY, 88 &usb_lgtch_parser_callbacks, hid_dev); 85 int rc = usb_hid_parse_report(hid_dev->parser, buffer, buffer_size); 86 87 usb_hid_report_field_t *field = usb_hid_report_get_sibling(hid_dev->parser, NULL, path, USB_HID_PATH_COMPARE_END , USB_HID_REPORT_TYPE_INPUT); 88 while(field != NULL) { 89 usb_log_debug("KEY VALUE(%X) USAGE(%X)\n", field->value, field->usage); 90 } 91 89 92 90 93 usb_hid_report_path_free(path); -
uspace/drv/usbhid/usbhid.c
rda1dd48 r63517c2 341 341 } 342 342 343 hid_dev->parser = (usb_hid_report_ parser_t *)(malloc(sizeof(344 usb_hid_report_ parser_t)));343 hid_dev->parser = (usb_hid_report_t *)(malloc(sizeof( 344 usb_hid_report_t))); 345 345 if (hid_dev->parser == NULL) { 346 346 usb_log_fatal("No memory!\n"); … … 382 382 return rc; 383 383 } 384 385 /* Initialize the report parser. */ 386 rc = usb_hid_parser_init(hid_dev->parser); 387 if (rc != EOK) { 388 usb_log_error("Failed to initialize report parser.\n"); 389 //usb_hid_free(&hid_dev); 390 return rc; 391 } 392 384 393 385 /* Get the report descriptor and parse it. */ 394 386 rc = usb_hid_process_report_descriptor(hid_dev->usb_dev, … … 592 584 // destroy the parser 593 585 if ((*hid_dev)->parser != NULL) { 594 usb_hid_free_report _parser((*hid_dev)->parser);586 usb_hid_free_report((*hid_dev)->parser); 595 587 } 596 588 -
uspace/drv/usbhid/usbhid.h
rda1dd48 r63517c2 91 91 92 92 /** HID Report parser. */ 93 usb_hid_report_ parser_t *parser;93 usb_hid_report_t *parser; 94 94 95 95 /** Arbitrary data (e.g. a special structure for handling keyboard). */ -
uspace/drv/usbkbd/kbddev.c
rda1dd48 r63517c2 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), … … 268 271 return; 269 272 } 270 273 271 274 unsigned i = 0; 272 275 … … 290 293 291 294 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);295 296 usb_hid_report_output_set_data(kbd_dev->parser, kbd_dev->led_path, 297 USB_HID_PATH_COMPARE_END , kbd_dev->led_data, 298 kbd_dev->led_output_size); 299 int rc = usb_hid_report_output_translate(kbd_dev->parser, 0, 300 kbd_dev->output_buffer, kbd_dev->output_size); 298 301 299 302 if (rc != EOK) { … … 563 566 assert(kbd_dev != NULL); 564 567 565 usb_log_debug("Got keys from parser (report id: % u): %s\n",566 report_id,usb_debug_str_buffer(key_codes, count, 0));568 usb_log_debug("Got keys from parser (report id: %d): %s\n", report_id, 569 usb_debug_str_buffer(key_codes, count, 0)); 567 570 568 571 if (count != kbd_dev->key_count) { … … 614 617 usb_hid_report_path_t *path = usb_hid_report_path(); 615 618 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); 619 620 int rc = usb_hid_parse_report(kbd_dev->parser, buffer, actual_size); 621 usb_hid_descriptor_print (kbd_dev->parser); 622 622 623 623 usb_hid_report_path_free (path); … … 663 663 memset(kbd_dev, 0, sizeof(usb_kbd_t)); 664 664 665 kbd_dev->parser = (usb_hid_report_ parser_t *)(malloc(sizeof(666 usb_hid_report_ parser_t)));665 kbd_dev->parser = (usb_hid_report_t *)(malloc(sizeof( 666 usb_hid_report_t))); 667 667 if (kbd_dev->parser == NULL) { 668 668 usb_log_fatal("No memory!\n"); … … 732 732 733 733 /* 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 }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 //} 739 739 740 740 /* Get the report descriptor and parse it. */ … … 771 771 772 772 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); 773 kbd_dev->parser, path, USB_HID_PATH_COMPARE_END); 775 774 usb_hid_report_path_free (path); 776 775 … … 789 788 kbd_dev->output_size = 0; 790 789 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) {790 &kbd_dev->output_size, 0x00); 791 if (kbd_dev->output_buffer == NULL) { 793 792 usb_log_warning("Error creating output report buffer.\n"); 794 793 free(kbd_dev->keys); … … 801 800 usb_hid_report_path_append_item( 802 801 kbd_dev->led_path, USB_HIDUT_PAGE_LED, 0); 802 usb_hid_report_path_set_report_id(kbd_dev->led_path, 0x00); 803 803 804 804 kbd_dev->led_output_size = usb_hid_report_output_size(kbd_dev->parser, … … 849 849 * Set Idle rate 850 850 */ 851 usb_kbd_set_led(kbd_dev); 851 usb_kbd_set_led(kbd_dev); 852 852 853 853 usbhid_req_set_idle(&kbd_dev->usb_dev->ctrl_pipe, … … 934 934 // destroy the parser 935 935 if ((*kbd_dev)->parser != NULL) { 936 usb_hid_free_report _parser((*kbd_dev)->parser);936 usb_hid_free_report((*kbd_dev)->parser); 937 937 } 938 938 -
uspace/drv/usbkbd/kbddev.h
rda1dd48 r63517c2 106 106 107 107 /** HID Report parser. */ 108 usb_hid_report_ parser_t *parser;108 usb_hid_report_t *parser; 109 109 110 110 /** State of the structure (for checking before use).
Note:
See TracChangeset
for help on using the changeset viewer.