VSF Documented
Data Structures | Macros | Typedefs | Enumerations | Functions | Variables
vsf_usbh_uvc.c File Reference
#include "component/usb/vsf_usb_cfg.h"
#include "kernel/vsf_kernel.h"
#include "../../vsf_usbh.h"
#include "./vsf_usbh_uvc.h"
#include "hal/vsf_hal.h"

Data Structures

struct  vk_usbh_uvc_t
 

Macros

#define __VSF_SIMPLE_STREAM_CLASS_INHERIT__
 
#define __VSF_EDA_CLASS_INHERIT__
 
#define __VSF_USBH_CLASS_IMPLEMENT_CLASS__
 
#define __VSF_USBH_UVC_CLASS_IMPLEMENT
 
#define VSF_USBH_UVC_CFG_URB_WITH_BUFFER   ENABLED
 
#define vsf_usbh_uvc_task_t   vsf_eda_t
 

Typedefs

typedef struct vk_usbh_uvc_t vk_usbh_uvc_t
 

Enumerations

enum  {
  USB_VIDEO_SUBCLASS_VIDEOCONTROL = 0x01 ,
  USB_VIDEO_SUBCLASS_VIDEOSTREAMING = 0x02
}
 
enum  {
  VSF_USBH_UVC_EVT_CONNECT = VSF_EVT_USER + 0 ,
  VSF_USBH_UVC_EVT_DISCONNECT = VSF_EVT_USER + 1 ,
  VSF_USBH_UVC_EVT_STREAM = VSF_EVT_USER + 2 ,
  VSF_USBH_UVC_EVT_SUBMIT_REQ = VSF_EVT_USER + 3
}
 

Functions

void vsf_usbh_uvc_on_new (void *uvc, usb_uvc_vc_interface_header_desc_t *vc_header, usb_uvc_vs_interface_header_desc_t *vs_header)
 
void vsf_usbh_uvc_on_del (void *uvc)
 
int16_t vsf_usbh_uvc_get_desc (uint8_t *buf, uint_fast16_t size, uint_fast8_t subtype, void **ptr)
 
usb_uvc_format_desc_tvsf_usbh_uvc_get_format (void *uvc_ptr, uint_fast8_t format_idx)
 
vsf_err_t __vsf_usbh_uvc_submit_req (void *uvc_ptr, void *data, struct usb_ctrlrequest_t *req)
 
vsf_err_t vsf_usbh_uvc_connect_stream (void *param, uint_fast8_t format_idx, uint_fast8_t frame_idx, vsf_stream_t *stream)
 
void vsf_usbh_uvc_disconnect_stream (void *param)
 
void __vk_usbh_uvc_stream_evthandler (vsf_stream_t *stream, void *param, vsf_stream_evt_t evt)
 

Variables

const vk_usbh_class_drv_t vk_usbh_uvc_drv
 

Macro Definition Documentation

◆ __VSF_SIMPLE_STREAM_CLASS_INHERIT__

#define __VSF_SIMPLE_STREAM_CLASS_INHERIT__

◆ __VSF_EDA_CLASS_INHERIT__

#define __VSF_EDA_CLASS_INHERIT__

◆ __VSF_USBH_CLASS_IMPLEMENT_CLASS__

#define __VSF_USBH_CLASS_IMPLEMENT_CLASS__

◆ __VSF_USBH_UVC_CLASS_IMPLEMENT

#define __VSF_USBH_UVC_CLASS_IMPLEMENT

◆ VSF_USBH_UVC_CFG_URB_WITH_BUFFER

#define VSF_USBH_UVC_CFG_URB_WITH_BUFFER   ENABLED

◆ vsf_usbh_uvc_task_t

#define vsf_usbh_uvc_task_t   vsf_eda_t

Typedef Documentation

◆ vk_usbh_uvc_t

typedef struct vk_usbh_uvc_t vk_usbh_uvc_t

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
USB_VIDEO_SUBCLASS_VIDEOCONTROL 
USB_VIDEO_SUBCLASS_VIDEOSTREAMING 

◆ anonymous enum

anonymous enum
Enumerator
VSF_USBH_UVC_EVT_CONNECT 
VSF_USBH_UVC_EVT_DISCONNECT 
VSF_USBH_UVC_EVT_STREAM 
VSF_USBH_UVC_EVT_SUBMIT_REQ 

Function Documentation

◆ vsf_usbh_uvc_on_new()

void vsf_usbh_uvc_on_new ( void *  uvc,
usb_uvc_vc_interface_header_desc_t vc_header,
usb_uvc_vs_interface_header_desc_t vs_header 
)
extern

◆ vsf_usbh_uvc_on_del()

void vsf_usbh_uvc_on_del ( void *  uvc)
extern

◆ vsf_usbh_uvc_get_desc()

int16_t vsf_usbh_uvc_get_desc ( uint8_t buf,
uint_fast16_t  size,
uint_fast8_t  subtype,
void **  ptr 
)

◆ vsf_usbh_uvc_get_format()

usb_uvc_format_desc_t * vsf_usbh_uvc_get_format ( void *  uvc_ptr,
uint_fast8_t  format_idx 
)

◆ __vsf_usbh_uvc_submit_req()

vsf_err_t __vsf_usbh_uvc_submit_req ( void *  uvc_ptr,
void *  data,
struct usb_ctrlrequest_t req 
)

◆ vsf_usbh_uvc_connect_stream()

vsf_err_t vsf_usbh_uvc_connect_stream ( void *  param,
uint_fast8_t  format_idx,
uint_fast8_t  frame_idx,
vsf_stream_t stream 
)

◆ vsf_usbh_uvc_disconnect_stream()

void vsf_usbh_uvc_disconnect_stream ( void *  param)

◆ __vk_usbh_uvc_stream_evthandler()

void __vk_usbh_uvc_stream_evthandler ( vsf_stream_t stream,
void *  param,
vsf_stream_evt_t  evt 
)

Variable Documentation

◆ vk_usbh_uvc_drv

const vk_usbh_class_drv_t vk_usbh_uvc_drv
Initial value:
= {
.name = "uvc",
.dev_id_num = dimof(__vk_usbh_uvc_dev_id),
.dev_ids = __vk_usbh_uvc_dev_id,
.probe = __vk_usbh_uvc_probe,
.disconnect = __vk_usbh_uvc_disconnect,
}
#define dimof(__arr)
Definition __type.h:155