12#include "xrt/xrt_config_have.h"
26#include <libuvc/libuvc.h>
39#define P_PROBER_BLUETOOTH_PRODUCT_COUNT 64
41#define P_TRACE(d, ...) U_LOG_IFL_T(d->log_level, __VA_ARGS__)
42#define P_DEBUG(d, ...) U_LOG_IFL_D(d->log_level, __VA_ARGS__)
43#define P_INFO(d, ...) U_LOG_IFL_I(d->log_level, __VA_ARGS__)
44#define P_WARN(d, ...) U_LOG_IFL_W(d->log_level, __VA_ARGS__)
45#define P_ERROR(d, ...) U_LOG_IFL_E(d->log_level, __VA_ARGS__)
83 const char *manufacturer;
99 char product[P_PROBER_BLUETOOTH_PRODUCT_COUNT];
102#ifdef XRT_HAVE_LIBUVC
146#ifdef XRT_HAVE_LIBUSB
150 libusb_device **list;
155#ifdef XRT_HAVE_LIBUVC
174 size_t num_disabled_drivers;
175 char **disabled_drivers;
218 const char *product_name,
232p_tracking_init(
struct prober *p);
241p_tracking_teardown(
struct prober *p);
247#ifdef XRT_HAVE_LIBUSB
256p_libusb_init(
struct prober *p);
262p_libusb_teardown(
struct prober *p);
268p_libusb_probe(
struct prober *p);
274p_libusb_get_string_descriptor(
struct prober *p,
277 unsigned char *buffer,
291#ifdef XRT_HAVE_LIBUVC
300p_libuvc_init(
struct prober *p);
306p_libuvc_teardown(
struct prober *p);
312p_libuvc_probe(
struct prober *p);
319#ifdef XRT_HAVE_LIBUDEV
328p_udev_probe(
struct prober *p);
u_logging_level
Logging level enum.
Definition: u_logging.h:40
#define XRT_MAX_AUTO_PROBERS
The maximum number of xrt_auto_prober instances that can be handled.
Definition: xrt_prober.h:57
A single device found by a prober.
Definition: p_prober.h:74
A hidraw interface that a prober_device exposes.
Definition: p_prober.h:52
A v4l interface that a prober_device exposes.
Definition: p_prober.h:61
Definition: p_prober.h:124
size_t builder_count
The number of created builders.
Definition: p_prober.h:139
void p_dump_device(struct prober *p, struct prober_device *pdev, int id, bool use_stdout)
Dump the given device to stdout.
Definition: p_dump.c:75
int p_dev_get_usb_dev(struct prober *p, uint16_t bus, uint16_t addr, uint16_t vendor_id, uint16_t product_id, struct prober_device **out_pdev)
Get or create a prober_device from the device.
Definition: p_prober.c:161
int p_dev_get_bluetooth_dev(struct prober *p, uint64_t id, uint16_t vendor_id, uint16_t product_id, const char *product_name, struct prober_device **out_pdev)
Get or create a prober_device from the device.
Definition: p_prober.c:203
bool list_locked
Has the list been locked.
Definition: p_prober.h:144
struct xrt_builder ** builders
List of created builder.
Definition: p_prober.h:134
Definition: u_config_json.h:30
An interface to be exposed by a device driver that should probe for the existence of its own device o...
Definition: xrt_prober.h:761
Sets up a collection of devices and builds a system, a setter upper.
Definition: xrt_prober.h:560
A probed device, may or may not be opened.
Definition: xrt_prober.h:85
enum xrt_bus_type bus
Device bus type.
Definition: xrt_prober.h:99
Main root of all of the probing device.
Definition: xrt_prober.h:809
Entry for a single device.
Definition: xrt_prober.h:706
uint16_t product_id
USB/Bluetooth product ID (PID) to filter on.
Definition: xrt_prober.h:715
uint16_t vendor_id
USB/Bluetooth vendor ID (VID) to filter on.
Definition: xrt_prober.h:710
The main prober that probes and manages found but not opened HMD devices that are connected to the sy...
Definition: xrt_prober.h:132
Code to manage the settings file.
Basic logging functionality.
Header holding common defines.
Auto detect OS and certain features.
Common interface to probe for devices.
xrt_prober_string
String descriptor types.
Definition: xrt_prober.h:73
Common settings structs to be transferred between different parts of Monado, mainly for tracking and ...