diff options
Diffstat (limited to 'tinyusb')
| -rw-r--r-- | tinyusb/class/hid_host.c | 9 | ||||
| -rw-r--r-- | tinyusb/class/hid_host.h | 4 | ||||
| -rw-r--r-- | tinyusb/host/usbh.h | 1 |
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) |
