From a6cf4f228e3036c4df69066df524b3fde74b271c Mon Sep 17 00:00:00 2001 From: hathach Date: Tue, 9 Apr 2013 03:13:27 +0700 Subject: add tusbh_hid_mouse_isr & tusbh_hid_keyboard_isr callback with xfer_complete & error event --- tinyusb/class/hid_host.c | 9 +++++++++ tinyusb/class/hid_host.h | 4 ++++ 2 files changed, 13 insertions(+) (limited to 'tinyusb/class') diff --git a/tinyusb/class/hid_host.c b/tinyusb/class/hid_host.c index 054aefcdd..3668af9c0 100644 --- a/tinyusb/class/hid_host.c +++ b/tinyusb/class/hid_host.c @@ -227,6 +227,10 @@ void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event) if ( pipehandle_is_equal(pipe_hdl, keyboard_data[pipe_hdl.dev_addr-1].pipe_hdl) ) { keyboard_data[pipe_hdl.dev_addr-1].status = (event == TUSB_EVENT_XFER_COMPLETE) ? TUSB_INTERFACE_STATUS_COMPLETE : TUSB_INTERFACE_STATUS_ERROR; + if (tusbh_hid_keyboard_isr) + { + tusbh_hid_keyboard_isr(pipe_hdl.dev_addr, 0, event); + } return; } #endif @@ -235,6 +239,11 @@ void hidh_isr(pipe_handle_t pipe_hdl, tusb_event_t event) if ( pipehandle_is_equal(pipe_hdl, mouse_data[pipe_hdl.dev_addr-1].pipe_hdl) ) { mouse_data[pipe_hdl.dev_addr-1].status = (event == TUSB_EVENT_XFER_COMPLETE) ? TUSB_INTERFACE_STATUS_COMPLETE : TUSB_INTERFACE_STATUS_ERROR; + if (tusbh_hid_mouse_isr) + { + tusbh_hid_mouse_isr(pipe_hdl.dev_addr, 0, event); + } + return; } #endif diff --git a/tinyusb/class/hid_host.h b/tinyusb/class/hid_host.h index 81a443bd5..82004b180 100644 --- a/tinyusb/class/hid_host.h +++ b/tinyusb/class/hid_host.h @@ -65,6 +65,8 @@ bool tusbh_hid_keyboard_is_supported(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT; tusb_error_t tusbh_hid_keyboard_get_report(uint8_t dev_addr, uint8_t instance_num, uint8_t * const report) ATTR_WARN_UNUSED_RESULT; tusb_interface_status_t tusbh_hid_keyboard_status(uint8_t dev_addr, uint8_t instance_num) ATTR_WARN_UNUSED_RESULT; +//------------- Application Callback -------------// +void tusbh_hid_keyboard_isr(uint8_t dev_addr, uint8_t instance_num, tusb_event_t event) ATTR_WEAK; //--------------------------------------------------------------------+ // MOUSE Public API @@ -72,6 +74,8 @@ tusb_interface_status_t tusbh_hid_keyboard_status(uint8_t dev_addr, uint8_t inst bool tusbh_hid_mouse_is_supported(uint8_t dev_addr) ATTR_PURE ATTR_WARN_UNUSED_RESULT; tusb_error_t tusbh_hid_mouse_get_report(uint8_t dev_addr, uint8_t instance_num, uint8_t * const report) ATTR_WARN_UNUSED_RESULT; tusb_interface_status_t tusbh_hid_mouse_status(uint8_t dev_addr, uint8_t instance_num) ATTR_WARN_UNUSED_RESULT; +//------------- Application Callback -------------// +void tusbh_hid_mouse_isr(uint8_t dev_addr, uint8_t instance_num, tusb_event_t event) ATTR_WEAK; //--------------------------------------------------------------------+ // GENERIC Public API -- cgit v1.3.1