From b55240eb43a92c552003b8b324a385e041f84f12 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 1 Dec 2015 02:10:53 +0000 Subject: fish --- app/usb.c | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) (limited to 'app/usb.c') diff --git a/app/usb.c b/app/usb.c index 2dfac76..d464ea4 100644 --- a/app/usb.c +++ b/app/usb.c @@ -21,7 +21,7 @@ const struct usb_device_descriptor dev = { const struct usb_interface ifaces[] = { { .num_altsetting = 1, - .altsetting = &crypto_iface, + .altsetting = &keyboard_iface, }, { .num_altsetting = 1, @@ -47,7 +47,8 @@ static const char *usb_strings[] = { "bootpad", "bootpad", "composite", - "bootpad", + "bootpad keyboard", + "bootpad control", "bootpad dfu device", }; @@ -57,6 +58,34 @@ usbd_device *usbd_dev; int usb_is_suspended = 0; +int usb_running =0; + +static int time_since_sof; + + + +void usb_tick(void) +{ +#ifndef SLIM +char buf[16]; +#endif + +time_since_sof++; + +if (time_since_sof>100) usb_running=0; + +#ifndef SLIM +sprintf(buf,"%d",time_since_sof); +lcd_write(buf,0,0); +#endif + +} + +static void usb_sof(void) +{ +usb_running=1; +time_since_sof=0; +} static void usb_suspended (void) @@ -107,14 +136,16 @@ usb_control_request (usbd_device * usbd_dev, struct usb_setup_data *req, (void) complete; (void) usbd_dev; - if ((req->bmRequestType != 0x81) || - (req->bRequest != USB_REQ_GET_DESCRIPTOR) || (req->wValue != 0x2200)) + + if ((req->bmRequestType != + (USB_REQ_TYPE_IN | USB_REQ_TYPE_STANDARD | USB_REQ_TYPE_INTERFACE)) + || (req->bRequest != USB_REQ_GET_DESCRIPTOR) || (req->wValue != 0x2200)) return 0; switch (req->wIndex) { case 0: - crypto_get_descriptor (buf, len); + keyboard_get_descriptor (buf, len); return 1; } @@ -144,7 +175,7 @@ usb_set_config (usbd_device * usbd_dev, uint16_t wValue) usbd_register_control_callback (usbd_dev, - USB_REQ_TYPE_VENDOR | USB_REQ_TYPE_INTERFACE, + USB_REQ_TYPE_VENDOR | USB_REQ_TYPE_DEVICE, USB_REQ_TYPE_TYPE | USB_REQ_TYPE_RECIPIENT, vendor_control_request); @@ -164,6 +195,7 @@ usb_init (void) usbd_register_set_config_callback (usbd_dev, usb_set_config); usbd_register_suspend_callback (usbd_dev, usb_suspended); usbd_register_resume_callback (usbd_dev, usb_resumed); + usbd_register_sof_callback(usbd_dev, usb_sof); } -- cgit v1.2.3