Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usbhid/src/hiddescriptor.c

    r5a6cc679 rb7fd2a0  
    176176
    177177        if(report_item->usages_count > 0){
    178                 usages = malloc(sizeof(uint32_t) * report_item->usages_count);
     178                usages = malloc(sizeof(int32_t) * report_item->usages_count);
    179179                memcpy(usages, report_item->usages, sizeof(int32_t) *
    180180                                report_item->usages_count);
     
    247247                field->size = report_item->size;
    248248
    249                 field->offset = report_item->offset + (i * report_item->size);
     249                if(report_item->type == USB_HID_REPORT_TYPE_INPUT) {
     250                        int offset = report_item->offset + report_item->size * i;
     251                        int field_offset = (offset/8)*8 + (offset/8 + 1) * 8 -
     252                                offset - report_item->size;
     253                        if(field_offset < 0) {
     254                                field->offset = 0;
     255                        }
     256                        else {
     257                                field->offset = field_offset;
     258                        }
     259                }
     260                else {
     261                        field->offset = report_item->offset + (i * report_item->size);
     262                }
     263
    250264
    251265                if(report->use_report_ids != 0) {
     
    882896{
    883897        if(list == NULL || list_empty(list)) {
    884             usb_log_debug("\tempty");
     898            usb_log_debug("\tempty\n");
    885899            return;
    886900        }
     
    888902        list_foreach(*list, ritems_link, usb_hid_report_field_t,
    889903            report_item) {
    890                 usb_log_debug("\t\tOFFSET: %u", report_item->offset);
    891                 usb_log_debug("\t\tSIZE: %zu", report_item->size);
    892                 usb_log_debug("\t\tLOGMIN: %d",
     904                usb_log_debug("\t\tOFFSET: %X\n", report_item->offset);
     905                usb_log_debug("\t\tSIZE: %zu\n", report_item->size);
     906                usb_log_debug("\t\tLOGMIN: %d\n",
    893907                        report_item->logical_minimum);
    894                 usb_log_debug("\t\tLOGMAX: %d",
     908                usb_log_debug("\t\tLOGMAX: %d\n",
    895909                        report_item->logical_maximum);
    896                 usb_log_debug("\t\tPHYMIN: %d",
     910                usb_log_debug("\t\tPHYMIN: %d\n",
    897911                        report_item->physical_minimum);
    898                 usb_log_debug("\t\tPHYMAX: %d",
     912                usb_log_debug("\t\tPHYMAX: %d\n",
    899913                        report_item->physical_maximum);
    900                 usb_log_debug("\t\ttUSAGEMIN: %X",
     914                usb_log_debug("\t\ttUSAGEMIN: %X\n",
    901915                        report_item->usage_minimum);
    902                 usb_log_debug("\t\tUSAGEMAX: %X",
     916                usb_log_debug("\t\tUSAGEMAX: %X\n",
    903917                               report_item->usage_maximum);
    904                 usb_log_debug("\t\tUSAGES COUNT: %zu",
     918                usb_log_debug("\t\tUSAGES COUNT: %zu\n",
    905919                        report_item->usages_count);
    906920
    907                 usb_log_debug("\t\tVALUE: %X", report_item->value);
    908                 usb_log_debug("\t\ttUSAGE: %X", report_item->usage);
    909                 usb_log_debug("\t\tUSAGE PAGE: %X", report_item->usage_page);
     921                usb_log_debug("\t\tVALUE: %X\n", report_item->value);
     922                usb_log_debug("\t\ttUSAGE: %X\n", report_item->usage);
     923                usb_log_debug("\t\tUSAGE PAGE: %X\n", report_item->usage_page);
    910924
    911925                usb_hid_print_usage_path(report_item->collection_path);
     926
     927                usb_log_debug("\n");
    912928        }
    913929}
     
    927943        list_foreach(report->reports, reports_link,
    928944            usb_hid_report_description_t, report_des) {
    929                 usb_log_debug("Report ID: %d", report_des->report_id);
    930                 usb_log_debug("\tType: %d", report_des->type);
    931                 usb_log_debug("\tLength: %zu", report_des->bit_length);
    932                 usb_log_debug("\tB Size: %zu",
     945                usb_log_debug("Report ID: %d\n", report_des->report_id);
     946                usb_log_debug("\tType: %d\n", report_des->type);
     947                usb_log_debug("\tLength: %zu\n", report_des->bit_length);
     948                usb_log_debug("\tB Size: %zu\n",
    933949                        usb_hid_report_byte_size(report,
    934950                                report_des->report_id,
    935951                                report_des->type));
    936                 usb_log_debug("\tItems: %zu", report_des->item_length);
     952                usb_log_debug("\tItems: %zu\n", report_des->item_length);
    937953
    938954                usb_hid_descriptor_print_list(&report_des->report_items);
Note: See TracChangeset for help on using the changeset viewer.