Monado OpenXR Runtime
Loading...
Searching...
No Matches
uvc_driver.c File Reference

Userspace UVC frameserver implementation. More...

#include "util/u_debug.h"
#include "math/m_api.h"
#include "uvc_internal.h"
#include <assert.h>
#include <errno.h>
#include <libusb.h>
#include <stdbool.h>
#include <stdint.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
Include dependency graph for uvc_driver.c:

Macros

#define UVC_TRACE(d, ...)   U_LOG_IFL_T(d->log_level, __VA_ARGS__)
 
#define UVC_DEBUG(d, ...)   U_LOG_IFL_D(d->log_level, __VA_ARGS__)
 
#define UVC_INFO(d, ...)   U_LOG_IFL_I(d->log_level, __VA_ARGS__)
 
#define UVC_WARN(d, ...)   U_LOG_IFL_W(d->log_level, __VA_ARGS__)
 
#define UVC_ERROR(d, ...)   U_LOG_IFL_E(d->log_level, __VA_ARGS__)
 
#define SET_CUR   0x01
 
#define GET_CUR   0x81
 
#define TIMEOUT   1000
 
#define CONTROL_IFACE   0
 
#define VS_PROBE_CONTROL   1
 
#define VS_COMMIT_CONTROL   2
 
#define VERBOSE_DEBUG   0
 

Functions

static struct uvc_fsuvc_fs (struct xrt_fs *xfs)
 Cast to derived type.
 
static void uvc_stream_release_frame (struct xrt_frame *frame)
 
int uvc_set_cur (libusb_device_handle *dev, uint8_t usb_interface, uint8_t entity, uint8_t selector, void *data, uint16_t data_length)
 
int uvc_get_cur (libusb_device_handle *dev, uint8_t usb_interface, uint8_t entity, uint8_t selector, void *data, uint16_t data_length)
 
void process_payload (struct uvc_fs *stream, unsigned char *payload, size_t len)
 
void uvc_fs_set_source_timestamp_callback (struct xrt_fs *fs, get_frame_timestamp_t callback, void *user_data)
 
static void iso_transfer_cb (struct libusb_transfer *transfer)
 
static bool uvc_fs_enumerate_modes (struct xrt_fs *xfs, struct xrt_fs_mode **out_modes, uint32_t *out_count)
 
static bool uvc_fs_configure_capture (struct xrt_fs *xfs, struct xrt_fs_capture_parameters *cp)
 
static bool uvc_fs_is_running (struct xrt_fs *xfs)
 
bool uvc_fs_stream_stop (struct xrt_fs *xfs)
 
bool uvc_fs_stream_start (struct xrt_fs *xfs, struct xrt_frame_sink *xs, enum xrt_fs_capture_type capture_type, uint32_t descriptor_index)
 
static void uvc_fs_node_break_apart (struct xrt_frame_node *node)
 
static void uvc_fs_node_destroy (struct xrt_frame_node *node)
 
static int uvc_get_descriptor_ascii (libusb_device_handle *devh, uint8_t index, unsigned char *buf, int buf_len)
 
int uvc_fs_create (libusb_context *usb_ctx, libusb_device_handle *devh, const struct libusb_device_descriptor *desc, setup_stream_parameters_callback_t setup_stream_parameters_callback, post_init_callback_t post_init_callback, void *user_data, struct xrt_frame_context *xfctx, struct xrt_fs **out_stream)
 
int uvc_fs_destroy (struct xrt_fs *xfs)
 

Detailed Description

Function Documentation

◆ uvc_fs()

static struct uvc_fs * uvc_fs ( struct xrt_fs xfs)
inlinestatic

Cast to derived type.