COMPOSITEDDriver_RequestHandler
Default mainpageat91libusbdevicecompositeCOMPOSITEDDriver_RequestHandler
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);
    }
}