internal static extern UvcError uvc_probe_stream_ctrl(UvcDeviceHandle devh, out StreamControl ctrl);
internal static extern UvcError uvc_get_stream_ctrl_format_size( UvcDeviceHandle devh, out StreamControl ctrl, FrameFormat format, int width, int height, int fps);
internal static extern IntPtr uvc_get_format_descs(UvcDeviceHandle devh);
internal static extern void uvc_print_diag(UvcDeviceHandle devh, IntPtr stream);
internal static extern UvcError uvc_open(UvcDevice dev, out UvcDeviceHandle devh);
internal static extern UvcError uvc_stream_open_ctrl( UvcDeviceHandle devh, out UvcStreamHandle strmh, StreamControl ctrl);
internal static extern int uvc_get_ctrl(UvcDeviceHandle devh, byte unit, byte ctrl, IntPtr data, int len, RequestCode req_code);
internal static extern UvcError uvc_get_exposure_abs(UvcDeviceHandle devh, out uint time, RequestCode req_code);
internal static extern UvcError uvc_set_exposure_abs(UvcDeviceHandle devh, uint time);
internal static extern UvcError uvc_get_ae_priority(UvcDeviceHandle devh, out byte priority, RequestCode req_code);
internal static extern UvcError uvc_set_ae_priority(UvcDeviceHandle devh, byte priority);
internal static extern UvcError uvc_set_ae_mode(UvcDeviceHandle devh, byte mode);
internal static extern UvcError uvc_get_ae_mode(UvcDeviceHandle devh, out byte mode, RequestCode req_code);
internal static extern int uvc_set_ctrl(UvcDeviceHandle devh, byte unit, byte ctrl, IntPtr data, int len);
internal static extern UvcError uvc_start_iso_streaming( UvcDeviceHandle devh, ref StreamControl ctrl, FrameCallback cb, IntPtr user_ptr);
internal static extern UvcError uvc_get_exposure_rel(UvcDeviceHandle devh, out sbyte step, RequestCode req_code);
internal static extern void uvc_stop_streaming(UvcDeviceHandle devh);
internal static extern UvcError uvc_set_exposure_rel(UvcDeviceHandle devh, sbyte step);
internal DeviceHandle(UvcDeviceHandle deviceHandle) { handle = deviceHandle; }
internal static extern int uvc_get_ctrl_len(UvcDeviceHandle devh, byte unit, byte ctrl);