Ejemplo n.º 1
0
void hidd_kbd_class_reset(USBD* usbd, void* param)
{
    HIDD_KBD* hidd = (HIDD_KBD*)param;

    usbd_usb_ep_close(usbd, USB_EP_IN | hidd->in_ep);
    usbd_unregister_endpoint(usbd, hidd->iface, hidd->in_ep);
    usbd_unregister_interface(usbd, hidd->iface, &__HIDD_KBD_CLASS);

    hidd_kbd_destroy(hidd);
}
Ejemplo n.º 2
0
void mscd_class_reset(USBD* usbd, void* param)
{
    MSCD* mscd = (MSCD*)param;

    mscd_flush(usbd, mscd);
    usbd_unregister_endpoint(usbd, mscd->iface_num, mscd->ep_num);
    usbd_unregister_interface(usbd, mscd->iface_num, &__MSCD_CLASS);
    usbd_usb_ep_close(usbd, mscd->ep_num);
    usbd_usb_ep_close(usbd, USB_EP_IN | mscd->ep_num);
    mscd_destroy(mscd);
}
Ejemplo n.º 3
0
void cdc_acmd_class_reset(USBD* usbd, void* param)
{
    CDC_ACMD* cdc_acmd = (CDC_ACMD*)param;

#if (USBD_CDC_ACM_TX_STREAM_SIZE)
    stream_stop_listen(cdc_acmd->tx_stream);
    stream_flush(cdc_acmd->tx_stream);
    usbd_usb_ep_close(usbd, USB_EP_IN | cdc_acmd->data_ep);
#endif //USBD_CDC_ACM_TX_STREAM_SIZE
#if (USBD_CDC_ACM_RX_STREAM_SIZE)
    stream_flush(cdc_acmd->rx_stream);
    usbd_usb_ep_close(usbd, cdc_acmd->data_ep);
#endif //USBD_CDC_ACM_RX_STREAM_SIZE

    usbd_unregister_endpoint(usbd, cdc_acmd->data_iface, cdc_acmd->data_ep);
    usbd_unregister_interface(usbd, cdc_acmd->data_iface, &__CDC_ACMD_CLASS);
    if (cdc_acmd->control_ep)
    {
        usbd_usb_ep_close(usbd, USB_EP_IN | cdc_acmd->control_ep);
        usbd_unregister_endpoint(usbd, cdc_acmd->control_iface, cdc_acmd->control_ep);
        usbd_unregister_interface(usbd, cdc_acmd->control_iface, &__CDC_ACMD_CLASS);
    }
    cdc_acmd_destroy(cdc_acmd);
}