Description
Source
Call Graph
Start Line: 179
void COMPOSITEDDriver_RequestHandler(const USBGenericRequest *request)
{
// Check if this is a class request
if (USBGenericRequest_GetType(request) == USBGenericRequest_CLASS) {
unsigned char rc = 0;
// AUDIO class request
#if defined(usb_CDCAUDIO) || defined(usb_HIDAUDIO)
if (rc == 0) {
rc = AUDDFunctionDriver_RequestHandler(request);
}
#endif
// CDC class request
#if defined(usb_CDCAUDIO) || defined(usb_CDCHID) || defined(usb_CDCMSD) || defined(usb_CDCCDC)
if (rc == 0) {
rc = CDCDFunctionDriver_RequestHandler(request);
}
#endif
// MSD class request
#if defined(usb_CDCMSD) || defined(usb_HIDMSD)
if (rc == 0) {
rc = MSDDFunctionDriver_RequestHandler(request);
}
#endif
// HID class request
#if defined(usb_CDCHID) || defined(usb_HIDAUDIO) || defined(usb_HIDMSD)
if (rc == 0) {
rc = HIDDFunctionDriver_RequestHandler(request);
}
#endif
if (!rc) {
TRACE_WARNING(
"COMPOSITEDDriver_RequestHandler: Unsupported request (%d)\n\r",
USBGenericRequest_GetRequest(request));
USBD_Stall(0);
}
}
// Check if this is a standard request
else if (USBGenericRequest_GetType(request) == USBGenericRequest_STANDARD) {
unsigned char rc = 0;
#if defined(usb_CDCHID) || defined(usb_HIDAUDIO) || defined(usb_HIDMSD)
rc = HIDDFunctionDriver_RequestHandler(request);
#endif
#if defined(usb_CDCMSD) || defined(usb_HIDMSD)
if (rc == 0) {
rc = MSDDFunctionDriver_RequestHandler(request);
}
#endif
// Forward request to the standard handler
if (rc == 0) {
USBDDriver_RequestHandler(&(usbdDriver), request);
}
}
// Unsupported request type
else {
TRACE_WARNING(
"COMPOSITEDDriver_RequestHandler: Unsupported request type (%d)\n\r",
USBGenericRequest_GetType(request));
USBD_Stall(0);
}
}