Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/drv/usbkbd/main.c

    rfbddf94 r45019865  
    9090 * Callbacks for parser
    9191 */
    92 static void usbkbd_process_keycodes(const uint8_t *key_codes, size_t count,
    93                                     uint8_t modifiers, void *arg)
     92static void usbkbd_process_keycodes(const uint16_t *key_codes, size_t count,
     93                                    void *arg)
    9494{
    9595        printf("Got keys: ");
     
    130130                assert(actual_size == length);
    131131
    132                 //dump_hid_class_descriptor(0, USB_DESCTYPE_HID_REPORT,
    133                 //    kbd_dev->conf->interfaces[i].report_desc, length);
     132                dump_hid_class_descriptor(0, USB_DESCTYPE_HID_REPORT,
     133                    kbd_dev->conf->interfaces[i].report_desc, length);
    134134        }
    135135
     
    189189        }
    190190       
    191         //usbkbd_print_config(kbd_dev->conf);
    192 
    193         /*
    194          * TODO:
    195          * 1) select one configuration (lets say the first)
    196          * 2) how many interfaces?? how to select one??
    197      *    ("The default setting for an interface is always alternate setting zero.")
    198          * 3) find endpoint which is IN and INTERRUPT (parse), save its number
    199      *    as the endpoint for polling
    200          */
     191        usbkbd_print_config(kbd_dev->conf);
    201192       
    202193        return EOK;
     
    217208        // get phone to my HC and save it as my parent's phone
    218209        // TODO: maybe not a good idea if DDF will use parent_phone
    219         int rc = kbd_dev->device->parent_phone = usb_drv_hc_connect_auto(dev, 0);
    220         if (rc < 0) {
    221                 printf("Problem setting phone to HC.\n");
    222                 free(kbd_dev);
    223                 return NULL;
    224         }
    225 
    226         rc = kbd_dev->address = usb_drv_get_my_address(dev->parent_phone, dev);
    227         if (rc < 0) {
    228                 printf("Problem getting address of the device.\n");
    229                 free(kbd_dev);
    230                 return NULL;
    231         }
     210        kbd_dev->device->parent_phone = usb_drv_hc_connect_auto(dev, 0);
     211
     212        kbd_dev->address = usb_drv_get_my_address(dev->parent_phone,
     213            dev);
    232214
    233215        // doesn't matter now that we have no address
     
    257239                                        uint8_t *buffer, size_t actual_size)
    258240{
     241        /*
     242         * here, the parser will be called, probably with some callbacks
     243         * now only take last 6 bytes and process, i.e. send to kbd
     244         */
     245
    259246        usb_hid_report_in_callbacks_t *callbacks =
    260247            (usb_hid_report_in_callbacks_t *)malloc(
     
    262249        callbacks->keyboard = usbkbd_process_keycodes;
    263250
    264         //usb_hid_parse_report(kbd_dev->parser, buffer, actual_size, callbacks,
    265         //    NULL);
    266         printf("Calling usb_hid_boot_keyboard_input_report()...\n)");
    267         usb_hid_boot_keyboard_input_report(buffer, actual_size, callbacks, NULL);
     251        usb_hid_parse_report(kbd_dev->parser, buffer, actual_size, callbacks,
     252            NULL);
    268253}
    269254
Note: See TracChangeset for help on using the changeset viewer.