Changes in / [fee6381:f8e8738] in mainline


Ignore:
Location:
uspace/lib/usb
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/include/usb/classes/hidparser.h

    rfee6381 rf8e8738  
    9292        /** */ 
    9393        link_t link;
    94 
    9594} usb_hid_report_path_t;
    9695
     
    159158       
    160159        int use_report_id;
    161 
    162         /** */
    163         link_t stack;
     160       
    164161} usb_hid_report_parser_t;     
    165162
  • uspace/lib/usb/src/hidparser.c

    rfee6381 rf8e8738  
    6464int usb_hid_report_reset_local_items();
    6565void usb_hid_free_report_list(link_t *head);
    66 usb_hid_report_item_t *usb_hid_report_item_clone(const usb_hid_report_item_t *item);
     66
    6767/*
    6868 * Data translation private functions
     
    105105    list_initialize(&(parser->output));
    106106    list_initialize(&(parser->feature));
    107 
    108         list_initialize(&(parser->stack));
    109107
    110108        parser->use_report_id = 0;
     
    222220                                        if(!(new_report_item = malloc(sizeof(usb_hid_report_item_t)))) {
    223221                                                return ENOMEM;
    224                                         }                                       
     222                                        }
    225223                                        memcpy(new_report_item,report_item, sizeof(usb_hid_report_item_t));
    226                                         link_initialize(&(new_report_item->link));
    227                                        
    228224                                        /* reset local items */
    229225                                        new_report_item->usage_minimum = 0;
    230226                                        new_report_item->usage_maximum = 0;
    231                                         new_report_item->designator_index = 0;
    232                                         new_report_item->designator_minimum = 0;
    233                                         new_report_item->designator_maximum = 0;
    234                                         new_report_item->string_index = 0;
    235                                         new_report_item->string_minimum = 0;
    236                                         new_report_item->string_maximum = 0;
    237 
    238                                         /* reset usage from current usage path */
    239                                         usb_hid_report_usage_path_t *path = list_get_instance(&usage_path->link, usb_hid_report_usage_path_t, link);
    240                                         path->usage = 0;
    241227                                       
     228                                        link_initialize(&(new_report_item->link));
    242229                                        report_item = new_report_item;
    243230                                                                               
     
    245232                                case USB_HID_REPORT_TAG_PUSH:
    246233                                        // push current state to stack
    247                                         new_report_item = usb_hid_report_item_clone(report_item);
    248                                         list_prepend (&parser->stack, &new_report_item->link);
    249                                        
     234                                        // not yet implemented
    250235                                        break;
    251236                                case USB_HID_REPORT_TAG_POP:
    252237                                        // restore current state from stack
    253                                         if(list_empty (&parser->stack)) {
    254                                                 return EINVAL;
    255                                         }
    256                                        
    257                                         report_item = list_get_instance(&parser->stack, usb_hid_report_item_t, link);
    258                                         list_remove (parser->stack.next);
    259                                        
     238                                        // not yet implemented                                             
    260239                                        break;
    261240                                       
     
    13841363}
    13851364
    1386 
    1387 usb_hid_report_item_t *usb_hid_report_item_clone(const usb_hid_report_item_t *item)
    1388 {
    1389         usb_hid_report_item_t *new_report_item;
    1390        
    1391         if(!(new_report_item = malloc(sizeof(usb_hid_report_item_t)))) {
    1392                 return NULL;
    1393         }                                       
    1394         memcpy(new_report_item,item, sizeof(usb_hid_report_item_t));
    1395         link_initialize(&(new_report_item->link));
    1396 
    1397         return new_report_item;
    1398 }
    1399 
    14001365/**
    14011366 * @}
Note: See TracChangeset for help on using the changeset viewer.