summaryrefslogtreecommitdiff
path: root/tinyusb/class
diff options
context:
space:
mode:
authorhathach <[email protected]>2013-04-09 03:13:27 +0700
committerhathach <[email protected]>2013-04-09 03:13:27 +0700
commita6cf4f228e3036c4df69066df524b3fde74b271c (patch)
tree68635dd493e3b9cdf1c76587cd86701c1f122acb /tinyusb/class
parent11dff6f9789c9765788111d677ec69d1ef1f2ce9 (diff)
add tusbh_hid_mouse_isr & tusbh_hid_keyboard_isr callback with xfer_complete & error event
Diffstat (limited to 'tinyusb/class')
-rw-r--r--tinyusb/class/hid_host.c9
-rw-r--r--tinyusb/class/hid_host.h4
2 files changed, 13 insertions, 0 deletions
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