summaryrefslogtreecommitdiff
path: root/tinyusb
diff options
context:
space:
mode:
Diffstat (limited to 'tinyusb')
-rw-r--r--tinyusb/class/hid_host.c9
-rw-r--r--tinyusb/class/hid_host.h4
-rw-r--r--tinyusb/host/usbh.h1
3 files changed, 13 insertions, 1 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
diff --git a/tinyusb/host/usbh.h b/tinyusb/host/usbh.h
index 2eac1d886..6c4cce89b 100644
--- a/tinyusb/host/usbh.h
+++ b/tinyusb/host/usbh.h
@@ -99,7 +99,6 @@ uint8_t tusbh_device_attached_cb (tusb_descriptor_device_t const *p_desc_de
void tusbh_device_mount_succeed_cb (uint8_t dev_addr) ATTR_WEAK;
void tusbh_device_mount_failed_cb(tusb_error_t error, tusb_descriptor_device_t const *p_desc_device) ATTR_WEAK; // TODO refractor remove desc_device
-
#if TUSB_CFG_OS == TUSB_OS_NONE // TODO move later
//static inline void tusb_tick_tock(void) ATTR_ALWAYS_INLINE;
//static inline void tusb_tick_tock(void)