diff options
author | tmk <nobody@nowhere> | 2012-06-28 20:15:56 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2012-06-28 20:15:56 +0900 |
commit | 3d81d5221eac9ca9620ba9043a250dcb8371b22e (patch) | |
tree | ae8f467e1691d42e01feaebc968aaade989924f3 /protocol/vusb | |
parent | a9a3610dd4a168e473d2d6a2eb3fbc37aabb46c9 (diff) |
Add consumer/system control feature to LUFA.
Diffstat (limited to 'protocol/vusb')
-rw-r--r-- | protocol/vusb/main.c | 5 | ||||
-rw-r--r-- | protocol/vusb/vusb.c | 37 |
2 files changed, 15 insertions, 27 deletions
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)); } |