X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=protocol%2Fvusb%2Fvusb.c;h=7d0292ed171336022bf16ee7c54fa40f3217dd72;hb=30864ea5e48c15796cc2e3e2ba4a9b50322d82a4;hp=1d5f4a852809219140fe42d409ac405f9b218bca;hpb=3c822b511e7af60332a7e5a938c08bafb2516ba3;p=max%2Ftmk_keyboard.git diff --git a/protocol/vusb/vusb.c b/protocol/vusb/vusb.c index 1d5f4a85..7d0292ed 100644 --- a/protocol/vusb/vusb.c +++ b/protocol/vusb/vusb.c @@ -35,6 +35,13 @@ static report_keyboard_t kbuf[KBUF_SIZE]; static uint8_t kbuf_head = 0; static uint8_t kbuf_tail = 0; +typedef struct { + uint8_t modifier; + uint8_t reserved; + uint8_t keycode[6]; +} keyboard_report_t; + +static keyboard_report_t keyboard_report; // sent to PC /* transfer keyboard report from buffer */ void vusb_transfer_keyboard(void) @@ -88,6 +95,10 @@ static void send_keyboard(report_keyboard_t *report) } else { debug("kbuf: full\n"); } + + // NOTE: send key strokes of Macro + usbPoll(); + vusb_transfer_keyboard(); } @@ -164,8 +175,8 @@ usbRequest_t *rq = (void *)data; if(rq->bRequest == USBRQ_HID_GET_REPORT){ debug("GET_REPORT:"); /* we only have one report type, so don't look at wValue */ - usbMsgPtr = (void *)keyboard_report; - return sizeof(*keyboard_report); + usbMsgPtr = (void *)&keyboard_report; + return sizeof(keyboard_report); }else if(rq->bRequest == USBRQ_HID_GET_IDLE){ debug("GET_IDLE: "); //debug_hex(vusb_idle_rate); @@ -228,7 +239,7 @@ uchar usbFunctionWrite(uchar *data, uchar len) * * from an example in HID spec appendix */ -PROGMEM uchar keyboard_hid_report[] = { +const PROGMEM uchar keyboard_hid_report[] = { 0x05, 0x01, // Usage Page (Generic Desktop), 0x09, 0x06, // Usage (Keyboard), 0xA1, 0x01, // Collection (Application), @@ -271,7 +282,7 @@ PROGMEM uchar keyboard_hid_report[] = { * http://www.keil.com/forum/15671/ * http://www.microsoft.com/whdc/device/input/wheel.mspx */ -PROGMEM uchar mouse_hid_report[] = { +const PROGMEM uchar mouse_hid_report[] = { /* mouse */ 0x05, 0x01, // USAGE_PAGE (Generic Desktop) 0x09, 0x02, // USAGE (Mouse) @@ -354,7 +365,7 @@ PROGMEM uchar mouse_hid_report[] = { * contains: device, interface, HID and endpoint descriptors */ #if USB_CFG_DESCR_PROPS_CONFIGURATION -PROGMEM char usbDescriptorConfiguration[] = { /* USB configuration descriptor */ +const PROGMEM char usbDescriptorConfiguration[] = { /* USB configuration descriptor */ 9, /* sizeof(usbDescriptorConfiguration): length of descriptor in bytes */ USBDESCR_CONFIG, /* descriptor type */ 9 + (9 + 9 + 7) + (9 + 9 + 7), 0,