From 3d81d5221eac9ca9620ba9043a250dcb8371b22e Mon Sep 17 00:00:00 2001 From: tmk Date: Thu, 28 Jun 2012 20:15:56 +0900 Subject: Add consumer/system control feature to LUFA. --- protocol/vusb/main.c | 5 ----- protocol/vusb/vusb.c | 37 +++++++++++++++---------------------- 2 files changed, 15 insertions(+), 27 deletions(-) (limited to 'protocol') diff --git a/protocol/vusb/main.c b/protocol/vusb/main.c index 1ba40a27a2..3deb82238a 100644 --- a/protocol/vusb/main.c +++ b/protocol/vusb/main.c @@ -62,11 +62,6 @@ int main(void) debug("initForUsbConnectivity()\n"); initForUsbConnectivity(); - int i; - while(--i){ /* To configured */ - usbPoll(); - _delay_ms(1); - } debug("main loop\n"); while (1) { diff --git a/protocol/vusb/vusb.c b/protocol/vusb/vusb.c index 1dff5dea26..4e11836e16 100644 --- a/protocol/vusb/vusb.c +++ b/protocol/vusb/vusb.c @@ -107,32 +107,25 @@ static void send_mouse(report_mouse_t *report) } } -/* + typedef struct { - uint8_t report_id; - uint8_t data0; - uint8_t data1; -} __attribute__ ((packed)) vusb_system_report_t; -*/ + uint8_t report_id; + uint16_t usage; +} __attribute__ ((packed)) report_extra_t; static void send_system(uint16_t data) { -/* - // Not need static? - static uint8_t report[] = { REPORT_ID_SYSTEM, 0, 0 }; - report[1] = data&0xFF; - report[2] = (data>>8)&0xFF; -*/ -/* - vusb_system_report_t r = { + static uint16_t last_data = 0; + if (data == last_data) return; + last_data = data; + + report_extra_t report = { .report_id = REPORT_ID_SYSTEM, - .data0 = data&0xFF, - .data1 = (data>>8)&0xFF + .usage = data }; if (usbInterruptIsReady3()) { - usbSetInterrupt3((void *)&r, sizeof(vusb_system_report_t)); + usbSetInterrupt3((void *)&report, sizeof(report)); } -*/ } static void send_consumer(uint16_t data) @@ -141,10 +134,10 @@ static void send_consumer(uint16_t data) if (data == last_data) return; last_data = data; - // Not need static? - static uint8_t report[] = { REPORT_ID_CONSUMER, 0, 0 }; - report[1] = data&0xFF; - report[2] = (data>>8)&0xFF; + report_extra_t report = { + .report_id = REPORT_ID_CONSUMER, + .usage = data + }; if (usbInterruptIsReady3()) { usbSetInterrupt3((void *)&report, sizeof(report)); } -- cgit v1.2.3