From 52f18f37848615b9ebe8d749c16eea114b24f524 Mon Sep 17 00:00:00 2001 From: hathach Date: Mon, 3 Jun 2013 14:37:41 +0700 Subject: [PATCH] refractor device mouse main.c & tusbd_hid_mouse_send_report --- demos/device/keyboard/main.c | 29 ++++++++++++++++++++--------- tinyusb/class/hid_device.c | 7 ++----- tinyusb/class/hid_device.h | 2 +- 3 files changed, 23 insertions(+), 15 deletions(-) diff --git a/demos/device/keyboard/main.c b/demos/device/keyboard/main.c index 8f4d263a..c0f0b2ac 100644 --- a/demos/device/keyboard/main.c +++ b/demos/device/keyboard/main.c @@ -18,6 +18,7 @@ void print_greeting(void); void led_blinking_task(void * p_para); void keyboard_device_app_task(void * p_para); +void mouse_device_app_task(void * p_para); int main(void) { @@ -40,15 +41,7 @@ int main(void) #endif #if TUSB_CFG_DEVICE_HID_MOUSE - if (usb_isConfigured()) - { - static uint32_t count =0; - if (count < 8) - { - count++; - tusb_hid_mouse_send(0, 20, 20); - } - } + mouse_device_app_task(NULL); #endif } @@ -116,6 +109,24 @@ void keyboard_device_app_task(void * p_para) } #endif +#if TUSB_CFG_DEVICE_HID_MOUSE +void mouse_device_app_task(void * p_para) +{ + if (usb_isConfigured()) + { + static uint32_t count =0; + if (count < 8) + { + count++; + tusbd_hid_mouse_send_report( + &(tusb_mouse_report_t) { + .x = 20, + .y = 20 } ); + } + } +} +#endif + //--------------------------------------------------------------------+ // HELPER FUNCTION //--------------------------------------------------------------------+ diff --git a/tinyusb/class/hid_device.c b/tinyusb/class/hid_device.c index 6d4d46fc..958d7489 100644 --- a/tinyusb/class/hid_device.c +++ b/tinyusb/class/hid_device.c @@ -200,7 +200,7 @@ tusb_error_t tusbd_hid_keyboard_send_report(tusb_keyboard_report_t *p_kbd_report #endif #if TUSB_CFG_DEVICE_HID_MOUSE -tusb_error_t tusb_hid_mouse_send(uint8_t buttons, int8_t x, int8_t y) +tusb_error_t tusbd_hid_mouse_send_report(tusb_mouse_report_t *p_mouse_report) { // uint32_t start_time = systickGetSecondsActive(); // while (bMouseChanged) // TODO Block while previous key hasn't been sent - can use fifo to improve this @@ -213,10 +213,7 @@ tusb_error_t tusb_hid_mouse_send(uint8_t buttons, int8_t x, int8_t y) return TUSB_ERROR_FAILED; } - hid_mouse_report.buttons = buttons; - hid_mouse_report.x = x; - hid_mouse_report.y = y; - + hid_mouse_report = *p_mouse_report; bMouseChanged = true; return TUSB_ERROR_NONE; diff --git a/tinyusb/class/hid_device.h b/tinyusb/class/hid_device.h index d3a87fb8..b4d98028 100644 --- a/tinyusb/class/hid_device.h +++ b/tinyusb/class/hid_device.h @@ -58,7 +58,7 @@ // KEYBOARD Application API //--------------------------------------------------------------------+ tusb_error_t tusbd_hid_keyboard_send_report(tusb_keyboard_report_t *p_kbd_report); -tusb_error_t tusbd_hid_mouse_send_report(uint8_t buttons, int8_t x, int8_t y); +tusb_error_t tusbd_hid_mouse_send_report(tusb_mouse_report_t *p_mouse_report); //--------------------------------------------------------------------+ // USBD-CLASS DRIVER API