Changeset c32688d in mainline for uspace/lib/usb/src


Ignore:
Timestamp:
2011-03-12T11:30:14Z (14 years ago)
Author:
Matej Klonfar <maklf@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
361e61b, bb41b85
Parents:
33382a9
Message:

bitmap translation

File:
1 edited

Legend:

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

    r33382a9 rc32688d  
    178178                                        }
    179179                                        memcpy(new_report_item,report_item, sizeof(usb_hid_report_item_t));
     180                                        /* reset local items */
     181                                        new_report_item->usage_minimum = 0;
     182                                        new_report_item->usage_maximum = 0;
     183                                       
    180184                                        link_initialize(&(new_report_item->link));
    181185                                        report_item = new_report_item;
     
    501505                usb_log_debug("\tCOUNT: %X\n", report_item->count);
    502506                usb_log_debug("\tSIZE: %X\n", report_item->size);
    503                 usb_log_debug("\tCONSTANT: %X\n", USB_HID_ITEM_FLAG_CONSTANT(report_item->item_flags));
     507                usb_log_debug("\tCONSTANT/VAR: %X\n", USB_HID_ITEM_FLAG_CONSTANT(report_item->item_flags));
     508                usb_log_debug("\tVARIABLE/ARRAY: %X\n", USB_HID_ITEM_FLAG_VARIABLE(report_item->item_flags));
    504509                usb_log_debug("\tUSAGE: %X\n", report_item->usage);
    505510                usb_log_debug("\tUSAGE PAGE: %X\n", report_item->usage_page);
     
    508513                usb_log_debug("\tPHYMIN: %X\n", report_item->physical_minimum);         
    509514                usb_log_debug("\tPHYMAX: %X\n", report_item->physical_maximum);                         
     515                usb_log_debug("\tUSAGEMIN: %X\n", report_item->usage_minimum);
     516                usb_log_debug("\tUSAGEMAX: %X\n", report_item->usage_maximum);
     517               
    510518                usb_log_debug("\n");           
    511519
     
    602610        usb_hid_report_item_t *item;
    603611        uint8_t *keys;
     612        uint8_t item_value;
    604613        size_t key_count=0;
    605614        size_t i=0;
     
    621630                item = list_get_instance(list_item, usb_hid_report_item_t, link);
    622631                if(!USB_HID_ITEM_FLAG_CONSTANT(item->item_flags) &&
    623                    (item->usage_page == BAD_HACK_USAGE_PAGE)) {
     632                   (item->usage_page == path.usage_page)) {
    624633                        for(j=0; j<(size_t)(item->count); j++) {
    625                                 keys[i++] = usb_hid_translate_data(item, data,j);
     634                                if((USB_HID_ITEM_FLAG_VARIABLE(item->item_flags) == 0) ||
     635                                   ((item->usage_minimum == 0) && (item->usage_maximum == 0))) {
     636                                        // variable item
     637                                        keys[i++] = usb_hid_translate_data(item, data,j);
     638                                }
     639                                else {
     640                                        // bitmapa
     641                                        if((item_value = usb_hid_translate_data(item, data, j)) != 0) {
     642                                                keys[i++] = j + item->usage_minimum;
     643                                        }
     644                                        else {
     645                                                keys[i++] = 0;
     646                                        }
     647                                }
    626648                        }
    627649                }
Note: See TracChangeset for help on using the changeset viewer.