Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- USBH_Status usbhuvcVSRequest(USB_OTG_CORE_HANDLE *pdev, uint8_t bRequest, uint8_t control, uint16_t wLength, uint8_t * data)
- {
- if(bRequest & 0x80)
- {
- // IN
- USB_Host.Control.setup.b.bmRequestType = USB_D2H | USB_REQ_RECIPIENT_INTERFACE | USB_REQ_TYPE_CLASS;
- USB_Host.Control.setup.b.bRequest = bRequest;
- USB_Host.Control.setup.b.wValue.w = (uint16_t)(control << 8);
- USB_Host.Control.setup.b.wLength.w = wLength;
- USB_Host.Control.setup.b.wIndex.w = UVCD.vs_interfaces[0].bInterfaceNumber;
- USB_Host.Control.buff = data;
- }
- else
- {
- // OUT
- USB_Host.Control.setup.b.bmRequestType = USB_H2D + USB_REQ_RECIPIENT_INTERFACE + USB_REQ_TYPE_CLASS;
- USB_Host.Control.setup.b.bRequest = bRequest;
- USB_Host.Control.setup.b.wValue.w = (uint16_t)(control << 8);
- USB_Host.Control.setup.b.wLength.w = wLength;
- USB_Host.Control.setup.b.wIndex.w = UVCD.vs_interfaces[0].bInterfaceNumber;
- USB_Host.Control.buff = data;
- }
- return USBH_CtlReq(pdev, &USB_Host, data, wLength);
- }
- USBH_Status usbhuvcProbe(USB_OTG_CORE_HANDLE *pdev)
- {
- memset(&UVCD.pc_min, 0, sizeof(UVCD.pc_min));
- memset(&UVCD.pc_max, 0, sizeof(UVCD.pc_max));
- volatile USBH_Status ret = USBH_OK;
- do
- {
- USBH_Process(pdev, &USB_Host);
- ret = usbhuvcVSRequest(pdev, UVC_SET_CUR, UVC_CTRL_VS_PROBE_CONTROL, sizeof(UVCD.pc), (uint8_t*)&UVCD.pc);
- } while (ret != USBH_OK);
- do
- {
- USBH_Process(pdev, &USB_Host);
- ret = usbhuvcVSRequest(pdev, UVC_GET_CUR, UVC_CTRL_VS_PROBE_CONTROL, sizeof(UVCD.pc), (uint8_t*)&UVCD.pc);
- } while(ret != USBH_OK);
- do
- {
- USBH_Process(pdev, &USB_Host);
- ret = usbhuvcVSRequest(pdev, UVC_GET_MAX, UVC_CTRL_VS_PROBE_CONTROL, sizeof(UVCD.pc_max), (uint8_t*)&UVCD.pc_max);
- } while(ret != USBH_OK);
- do
- {
- USBH_Process(pdev, &USB_Host);
- ret = usbhuvcVSRequest(pdev, UVC_GET_MIN, UVC_CTRL_VS_PROBE_CONTROL, sizeof(UVCD.pc_min), (uint8_t*)&UVCD.pc_min);
- } while(ret != USBH_OK);
- return ret;
- }
- USBH_Status usbhuvcCommit(USB_OTG_CORE_HANDLE *pdev)
- {
- USBH_Status ret = USBH_OK;
- do
- {
- USBH_Process(pdev, &USB_Host);
- ret = usbhuvcVSRequest(pdev, UVC_SET_CUR, UVC_CTRL_VS_COMMIT_CONTROL, sizeof(UVCD.pc), (uint8_t*)&UVCD.pc);
- } while(ret != USBH_OK);
- return ret;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement