Changes in uspace/drv/usbhid/usbhid.c [faa44e58:78bfae9] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/usbhid/usbhid.c
rfaa44e58 r78bfae9 37 37 #include <usb/debug.h> 38 38 #include <usb/classes/classes.h> 39 #include <usb/ hid/hid.h>40 #include <usb/ hid/hidparser.h>41 #include <usb/ hid/hidreport.h>42 #include <usb/ hid/request.h>39 #include <usb/classes/hid.h> 40 #include <usb/classes/hidparser.h> 41 #include <usb/classes/hidreport.h> 42 #include <usb/classes/hidreq.h> 43 43 #include <errno.h> 44 44 #include <str_error.h> … … 203 203 204 204 usb_log_debug("Compare flags: %d\n", mapping->compare); 205 size_t size = usb_hid_report_input_length(hid_dev->report, usage_path, 206 mapping->compare); 205 // size_t size = usb_hid_report_size(hid_dev->report, 0, 206 // USB_HID_REPORT_TYPE_INPUT); 207 size_t size = 0; 208 usb_hid_report_field_t *field = usb_hid_report_get_sibling (hid_dev->report, 209 NULL, usage_path, mapping->compare, USB_HID_REPORT_TYPE_INPUT); 210 while(field != NULL) { 211 size++; 212 field = usb_hid_report_get_sibling (hid_dev->report, 213 field, usage_path, mapping->compare, 214 USB_HID_REPORT_TYPE_INPUT); 215 } 216 207 217 usb_log_debug("Size of the input report: %zuB\n", size); 208 209 218 usb_hid_report_path_free(usage_path); 210 219 … … 225 234 } 226 235 227 hid_dev->subdrivers = (usb_hid_subdriver_t *)malloc(count * 236 // add one generic HID subdriver per device 237 238 hid_dev->subdrivers = (usb_hid_subdriver_t *)malloc((count + 1) * 228 239 sizeof(usb_hid_subdriver_t)); 229 240 if (hid_dev->subdrivers == NULL) { … … 238 249 } 239 250 240 hid_dev->subdriver_count = count; 251 hid_dev->subdrivers[count].init = usb_generic_hid_init; 252 hid_dev->subdrivers[count].poll = usb_generic_hid_polling_callback; 253 hid_dev->subdrivers[count].deinit = NULL; 254 hid_dev->subdrivers[count].poll_end = NULL; 255 256 hid_dev->subdriver_count = count + 1; 241 257 242 258 return EOK; … … 457 473 if (hid_dev->subdrivers[i].init != NULL) { 458 474 usb_log_debug("Initializing subdriver %d.\n",i); 459 rc = hid_dev->subdrivers[i].init(hid_dev); 475 rc = hid_dev->subdrivers[i].init(hid_dev, 476 &hid_dev->subdrivers[i].data); 460 477 if (rc != EOK) { 461 478 usb_log_warning("Failed to initialize" … … 522 539 for (i = 0; i < hid_dev->subdriver_count; ++i) { 523 540 if (hid_dev->subdrivers[i].poll != NULL 524 && hid_dev->subdrivers[i].poll(hid_dev, buffer,525 buffer_size)) {541 && hid_dev->subdrivers[i].poll(hid_dev, 542 hid_dev->subdrivers[i].data, buffer, buffer_size)) { 526 543 cont = true; 527 544 } … … 546 563 for (i = 0; i < hid_dev->subdriver_count; ++i) { 547 564 if (hid_dev->subdrivers[i].poll_end != NULL) { 548 hid_dev->subdrivers[i].poll_end(hid_dev, reason); 565 hid_dev->subdrivers[i].poll_end(hid_dev, 566 hid_dev->subdrivers[i].data, reason); 549 567 } 550 568 } … … 627 645 for (i = 0; i < (*hid_dev)->subdriver_count; ++i) { 628 646 if ((*hid_dev)->subdrivers[i].deinit != NULL) { 629 (*hid_dev)->subdrivers[i].deinit(*hid_dev); 647 (*hid_dev)->subdrivers[i].deinit(*hid_dev, 648 (*hid_dev)->subdrivers[i].data); 630 649 } 631 650 }
Note:
See TracChangeset
for help on using the changeset viewer.