diff options
Diffstat (limited to 'app/consumer.c')
| -rw-r--r-- | app/consumer.c | 33 | 
1 files changed, 32 insertions, 1 deletions
diff --git a/app/consumer.c b/app/consumer.c index 044c15b..c61c4cc 100644 --- a/app/consumer.c +++ b/app/consumer.c @@ -58,7 +58,7 @@ static const struct  const struct usb_endpoint_descriptor consumer_endpoint = {    .bLength = USB_DT_ENDPOINT_SIZE,    .bDescriptorType = USB_DT_ENDPOINT, -  .bEndpointAddress = 0x82, +  .bEndpointAddress = CONSUMER_EP,    .bmAttributes = USB_ENDPOINT_ATTR_INTERRUPT,    .wMaxPacketSize = 2,    .bInterval = 0x1 //0x20, @@ -91,3 +91,34 @@ consumer_get_descriptor (uint8_t ** buf, uint16_t * len)    *len = sizeof (consumer_report_descriptor);  } + +	 +static void +consumer_send (uint16_t keys) +{ +  /*Last byte is the power wakeup stuff that we don't yet support */ +  uint8_t buf[CONSUMER_EP_TXN_SIZE] = { keys & 0xff, keys >> 8 }; + +  usbd_ep_write_packet (usbd_dev, CONSUMER_EP, buf, sizeof(buf)); +} + +void consumer_dispatch(int bit,int updown) +{ +static uint16_t keys; + +if (updown) +	keys|=bit; +else +	keys &= ~bit; + + +#ifdef DEBUG +printf("CNS> %02x %02x\r\n",keys & 0xff, keys >>8 ); +#endif + +consumer_send(keys); + + +} +		 +  | 
