Changes in / [7351dc3:2f593872] in mainline


Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/src/hidparser.c

    r7351dc3 r2f593872  
    112112        usb_hid_report_item_t *new_report_item;
    113113
    114         size_t offset_input=0;
    115         size_t offset_output=0;
    116         size_t offset_feature=0;
     114        size_t offset=0;
    117115       
    118116
     
    120118                return ENOMEM;
    121119        }
    122         memset(report_item, 0, sizeof(usb_hid_report_item_t));
    123        
    124120        link_initialize(&(report_item->link)); 
    125121
     
    147143                                        // store report item to report and create the new one
    148144                                        usb_log_debug("\nNEW REPORT ITEM: %X",tag);
     145
     146                                        report_item->offset = offset;
     147                                        offset += report_item->count * report_item->size;
    149148                                       
    150149                                        switch(tag) {
    151150                                                case USB_HID_REPORT_TAG_INPUT:
    152                                                         report_item->offset = offset_input;
    153                                                         offset_input += report_item->count * report_item->size;
    154151                                                        usb_log_debug(" - INPUT\n");
    155152                                                        list_append(&(report_item->link), &(parser->input));
    156153                                                        break;
    157154                                                case USB_HID_REPORT_TAG_OUTPUT:
    158                                                         report_item->offset = offset_output;
    159                                                         offset_output += report_item->count * report_item->size;
    160155                                                        usb_log_debug(" - OUTPUT\n");
    161156                                                                list_append(&(report_item->link), &(parser->output));
     
    163158                                                        break;
    164159                                                case USB_HID_REPORT_TAG_FEATURE:
    165                                                         report_item->offset = offset_feature;
    166                                                         offset_feature += report_item->count * report_item->size;
    167160                                                        usb_log_debug(" - FEATURE\n");
    168161                                                                list_append(&(report_item->link), &(parser->feature));
     
    659652        }
    660653
    661         if((item->physical_minimum == 0) && (item->physical_maximum == 0)) {
     654        if((item->physical_minimum == 0) && (item->physical_maximum ==0)) {
    662655                item->physical_minimum = item->logical_minimum;
    663656                item->physical_maximum = item->logical_maximum;         
    664657        }
    665658
    666         if(item->physical_maximum == item->physical_minimum){
    667             resolution = 1;
    668         }
    669         else {
    670             resolution = (item->logical_maximum - item->logical_minimum) /
    671                 ((item->physical_maximum - item->physical_minimum) *
    672                 (usb_pow(10,(item->unit_exponent))));
    673         }
     659        resolution = (item->logical_maximum - item->logical_minimum) / ((item->physical_maximum - item->physical_minimum) * (usb_pow(10,(item->unit_exponent))));
    674660        offset = item->offset + (j * item->size);
    675661       
     
    708694
    709695                usb_log_debug2("offset %d\n", offset);
    710        
    711696                usb_log_debug2("foo %x\n", *foo);
    712697                usb_log_debug2("maska %x\n",  mask);
     
    714699        }
    715700
    716         usb_log_debug2("---\n\n"); 
     701        usb_log_debug2("---\n\n");
    717702
    718703        return (int)(((value - item->logical_minimum) / resolution) + item->physical_minimum);
Note: See TracChangeset for help on using the changeset viewer.