add usbd_event_handler for users
This commit is contained in:
@@ -80,22 +80,12 @@ static int cdc_acm_class_interface_request_handler(struct usb_setup_packet *setu
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void cdc_notify_handler(uint8_t event, void *arg)
|
||||
{
|
||||
switch (event) {
|
||||
case USBD_EVENT_RESET:
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
struct usbd_interface *usbd_cdc_acm_init_intf(struct usbd_interface *intf)
|
||||
{
|
||||
intf->class_interface_handler = cdc_acm_class_interface_request_handler;
|
||||
intf->class_endpoint_handler = NULL;
|
||||
intf->vendor_handler = NULL;
|
||||
intf->notify_handler = cdc_notify_handler;
|
||||
intf->notify_handler = NULL;
|
||||
|
||||
return intf;
|
||||
}
|
||||
|
||||
@@ -143,15 +143,37 @@ int usbd_ep_start_read(const uint8_t ep, uint8_t *data, uint32_t data_len);
|
||||
|
||||
/* usb dcd irq callback */
|
||||
|
||||
/**
|
||||
* @brief Usb connect irq callback.
|
||||
*/
|
||||
void usbd_event_connect_handler(void);
|
||||
|
||||
/**
|
||||
* @brief Usb disconnect irq callback.
|
||||
*/
|
||||
void usbd_event_disconnect_handler(void);
|
||||
|
||||
/**
|
||||
* @brief Usb resume irq callback.
|
||||
*/
|
||||
void usbd_event_resume_handler(void);
|
||||
|
||||
/**
|
||||
* @brief Usb suspend irq callback.
|
||||
*/
|
||||
void usbd_event_suspend_handler(void);
|
||||
|
||||
/**
|
||||
* @brief Usb reset irq callback.
|
||||
*/
|
||||
void usbd_event_reset_handler(void);
|
||||
|
||||
/**
|
||||
* @brief Usb setup packet recv irq callback.
|
||||
* @param[in] psetup setup packet.
|
||||
*/
|
||||
void usbd_event_ep0_setup_complete_handler(uint8_t *psetup);
|
||||
|
||||
/**
|
||||
* @brief In ep transfer complete irq callback.
|
||||
* @param[in] ep Endpoint address corresponding to the one
|
||||
@@ -159,6 +181,7 @@ void usbd_event_ep0_setup_complete_handler(uint8_t *psetup);
|
||||
* @param[in] nbytes How many nbytes have transferred.
|
||||
*/
|
||||
void usbd_event_ep_in_complete_handler(uint8_t ep, uint32_t nbytes);
|
||||
|
||||
/**
|
||||
* @brief Out ep transfer complete irq callback.
|
||||
* @param[in] ep Endpoint address corresponding to the one
|
||||
@@ -167,10 +190,6 @@ void usbd_event_ep_in_complete_handler(uint8_t ep, uint32_t nbytes);
|
||||
*/
|
||||
void usbd_event_ep_out_complete_handler(uint8_t ep, uint32_t nbytes);
|
||||
|
||||
/**
|
||||
* @}
|
||||
*/
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -553,6 +553,7 @@ static bool usbd_std_device_req_handler(struct usb_setup_packet *setup, uint8_t
|
||||
usbd_core_cfg.configuration = value;
|
||||
usbd_core_cfg.configured = true;
|
||||
usbd_class_event_notify_handler(USBD_EVENT_CONFIGURED, NULL);
|
||||
usbd_event_handler(USBD_EVENT_CONFIGURED);
|
||||
usbd_configure_done_callback();
|
||||
}
|
||||
*len = 0;
|
||||
@@ -947,22 +948,22 @@ static void usbd_class_event_notify_handler(uint8_t event, void *arg)
|
||||
|
||||
void usbd_event_connect_handler(void)
|
||||
{
|
||||
usbd_class_event_notify_handler(USBD_EVENT_CONNECTED, NULL);
|
||||
usbd_event_handler(USBD_EVENT_CONNECTED);
|
||||
}
|
||||
|
||||
void usbd_event_disconnect_handler(void)
|
||||
{
|
||||
usbd_class_event_notify_handler(USBD_EVENT_DISCONNECTED, NULL);
|
||||
usbd_event_handler(USBD_EVENT_DISCONNECTED);
|
||||
}
|
||||
|
||||
void usbd_event_resume_handler(void)
|
||||
{
|
||||
usbd_class_event_notify_handler(USBD_EVENT_RESUME, NULL);
|
||||
usbd_event_handler(USBD_EVENT_RESUME);
|
||||
}
|
||||
|
||||
void usbd_event_suspend_handler(void)
|
||||
{
|
||||
usbd_class_event_notify_handler(USBD_EVENT_SUSPEND, NULL);
|
||||
usbd_event_handler(USBD_EVENT_SUSPEND);
|
||||
}
|
||||
|
||||
void usbd_event_reset_handler(void)
|
||||
@@ -985,6 +986,7 @@ void usbd_event_reset_handler(void)
|
||||
usbd_ep_open(&ep0_cfg);
|
||||
|
||||
usbd_class_event_notify_handler(USBD_EVENT_RESET, NULL);
|
||||
usbd_event_handler(USBD_EVENT_RESET);
|
||||
}
|
||||
|
||||
void usbd_event_ep0_setup_complete_handler(uint8_t *psetup)
|
||||
@@ -1174,8 +1176,11 @@ static void usbdev_rx_thread(void *argument)
|
||||
#ifdef CONFIG_USBDEV_ADVANCE_DESC
|
||||
void usbd_desc_register(struct usb_descriptor *desc)
|
||||
{
|
||||
memset(&usbd_core_cfg, 0, sizeof(struct usbd_core_cfg_priv));
|
||||
|
||||
usbd_core_cfg.descriptors = desc;
|
||||
usbd_core_cfg.intf_offset = 0;
|
||||
|
||||
tx_msg[0].ep = 0x80;
|
||||
tx_msg[0].cb = usbd_event_ep0_in_complete_handler;
|
||||
rx_msg[0].ep = 0x00;
|
||||
@@ -1184,8 +1189,11 @@ void usbd_desc_register(struct usb_descriptor *desc)
|
||||
#else
|
||||
void usbd_desc_register(const uint8_t *desc)
|
||||
{
|
||||
memset(&usbd_core_cfg, 0, sizeof(struct usbd_core_cfg_priv));
|
||||
|
||||
usbd_core_cfg.descriptors = desc;
|
||||
usbd_core_cfg.intf_offset = 0;
|
||||
|
||||
tx_msg[0].ep = 0x80;
|
||||
tx_msg[0].cb = usbd_event_ep0_in_complete_handler;
|
||||
rx_msg[0].ep = 0x00;
|
||||
@@ -1267,3 +1275,24 @@ int usbd_deinitialize(void)
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
__WEAK void usbd_event_handler(uint8_t event)
|
||||
{
|
||||
switch (event) {
|
||||
case USBD_EVENT_RESET:
|
||||
break;
|
||||
case USBD_EVENT_CONNECTED:
|
||||
break;
|
||||
case USBD_EVENT_DISCONNECTED:
|
||||
break;
|
||||
case USBD_EVENT_RESUME:
|
||||
break;
|
||||
case USBD_EVENT_SUSPEND:
|
||||
break;
|
||||
case USBD_EVENT_CONFIGURED:
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,6 +93,8 @@ void usbd_configure_done_callback(void);
|
||||
int usbd_initialize(void);
|
||||
int usbd_deinitialize(void);
|
||||
|
||||
void usbd_event_handler(uint8_t event);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user