summaryrefslogtreecommitdiff
path: root/protocol/vusb/vusb.c
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2012-06-28 16:51:56 +0900
committertmk <nobody@nowhere>2012-06-28 16:51:56 +0900
commita9a3610dd4a168e473d2d6a2eb3fbc37aabb46c9 (patch)
tree89f274c6cf58a9b4fcd8d768dda78da10afac3b9 /protocol/vusb/vusb.c
parenteffa5914bff71fa7ad6506271c9ba4baa32a1eca (diff)
Add LUFA mouse feature and fix mouse report.
- add LUFA boot mouse feature - remove report_id from mouse report - fix LUFA descriptor
Diffstat (limited to 'protocol/vusb/vusb.c')
-rw-r--r--protocol/vusb/vusb.c31
1 files changed, 28 insertions, 3 deletions
diff --git a/protocol/vusb/vusb.c b/protocol/vusb/vusb.c
index 0bfe21e92e..1dff5dea26 100644
--- a/protocol/vusb/vusb.c
+++ b/protocol/vusb/vusb.c
@@ -91,23 +91,48 @@ static void send_keyboard(report_keyboard_t *report)
}
+typedef struct {
+ uint8_t report_id;
+ report_mouse_t report;
+} __attribute__ ((packed)) vusb_mouse_report_t;
+
static void send_mouse(report_mouse_t *report)
{
- report->report_id = REPORT_ID_MOUSE;
+ vusb_mouse_report_t r = {
+ .report_id = REPORT_ID_MOUSE,
+ .report = *report
+ };
if (usbInterruptIsReady3()) {
- usbSetInterrupt3((void *)report, sizeof(*report));
+ usbSetInterrupt3((void *)&r, sizeof(vusb_mouse_report_t));
}
}
+/*
+typedef struct {
+ uint8_t report_id;
+ uint8_t data0;
+ uint8_t data1;
+} __attribute__ ((packed)) vusb_system_report_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 = {
+ .report_id = REPORT_ID_SYSTEM,
+ .data0 = data&0xFF,
+ .data1 = (data>>8)&0xFF
+ };
if (usbInterruptIsReady3()) {
- usbSetInterrupt3((void *)&report, sizeof(report));
+ usbSetInterrupt3((void *)&r, sizeof(vusb_system_report_t));
}
+*/
}
static void send_consumer(uint16_t data)