/* USB Device Endpoint 0 Event Callback - CDC specific handling (Out Request To Interface) Parameters: none Return Value: TRUE - Out class request ok, FALSE - Out class request not supported  */
__WEAK BOOL USBD_EndPoint0_Out_CDC_ReqToIF(void)
/* USB Device Endpoint 0 Event Callback - CDC specific handling (Out Request To Interface) Parameters: none Return Value: TRUE - Out class request ok, FALSE - Out class request not supported  */
__WEAK BOOL USBD_EndPoint0_Out_CDC_ReqToIF(void)
{
    if ((USBD_SetupPacket.wIndexL == usbd_cdc_acm_cif_num) ||
            (USBD_SetupPacket.wIndexL == usbd_cdc_acm_dif_num)) {
        switch (USBD_SetupPacket.bRequest) {
            case CDC_SEND_ENCAPSULATED_COMMAND:
                if (USBD_CDC_ACM_SendEncapsulatedCommand()) {
                    USBD_StatusInStage();
                    return (__TRUE);
                }
                break;
            case CDC_SET_COMM_FEATURE:
                if (USBD_CDC_ACM_SetCommFeature(USBD_SetupPacket.wValue)) {
                    USBD_StatusInStage();
                    return (__TRUE);
                }
                break;
            case CDC_SET_LINE_CODING:
                if (USBD_CDC_ACM_SetLineCoding()) {
                    USBD_StatusInStage();
                    return (__TRUE);
                }
                break;
        }
    }
    return (__FALSE);
}