static uint8_t USBD_MIDI_MSC_Setup(void *pdev, USB_SETUP_REQ *req) {
	{
	  PRINTF("     USBD_MIDI_MSC_Setup, req->wIndex: %d \n",req->wIndex);
	  switch (req->bmRequest & USB_REQ_RECIPIENT_MASK)
	  {
	  case USB_REQ_RECIPIENT_INTERFACE:
	    if (req->wIndex == MSC_INTERFACE)
	    {
	      return (USBD_MSC_Setup (pdev, req));
	    }
	    else
	    {
	      return (USBD_MIDI_Setup(pdev, req));
	    }

	  case USB_REQ_RECIPIENT_ENDPOINT:
	    if (req->wIndex == MIDI_IN_EP)
	    {
	      return (USBD_MIDI_Setup (pdev, req));
	    }
	    else
	    {
	      return (USBD_MSC_Setup(pdev, req));
	    }
	  }
	  return USBD_OK;
	}
}
Пример #2
0
/**
  * @brief  USBD_MSC_HID_Setup
  *         Handle the MSC_HID specific requests
  * @param  pdev: instance
  * @param  req: usb requests
  * @retval status
  */
static uint8_t  USBD_MSC_HID_Setup (void  *pdev, 
                                    USB_SETUP_REQ *req)
{
  switch (req->bmRequest & USB_REQ_RECIPIENT_MASK)
  {
  case USB_REQ_RECIPIENT_INTERFACE:
    if (req->wIndex == HID_INTERFACE)
    {
      return (USBD_HID_Setup (pdev, req));
    }
    else
    {
      return (USBD_MSC_Setup(pdev, req));
    }
    
  case USB_REQ_RECIPIENT_ENDPOINT:
    if (req->wIndex == HID_IN_EP)
    {
      return (USBD_HID_Setup (pdev, req));   
    }
    else
    {
      return (USBD_MSC_Setup(pdev, req));
    }
  }   
  return USBD_OK;
}