aboutsummaryrefslogtreecommitdiffstats
path: root/protocol
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2012-06-28 20:15:56 +0900
committertmk <nobody@nowhere>2012-06-28 20:15:56 +0900
commit3d81d5221eac9ca9620ba9043a250dcb8371b22e (patch)
treeae8f467e1691d42e01feaebc968aaade989924f3 /protocol
parenta9a3610dd4a168e473d2d6a2eb3fbc37aabb46c9 (diff)
downloadfirmware-3d81d5221eac9ca9620ba9043a250dcb8371b22e.tar.gz
firmware-3d81d5221eac9ca9620ba9043a250dcb8371b22e.tar.bz2
firmware-3d81d5221eac9ca9620ba9043a250dcb8371b22e.zip
Add consumer/system control feature to LUFA.
Diffstat (limited to 'protocol')
-rw-r--r--protocol/vusb/main.c5
-rw-r--r--protocol/vusb/vusb.c37
2 files changed, 15 insertions, 27 deletions
diff --git a/protocol/vusb/main.c b/protocol/vusb/main.c
index 1ba40a27a..3deb82238 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 1dff5dea2..4e11836e1 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));
}