29#define U_BUILDER_SEARCH_MAX (16)
159 struct xrt_vec3 *global_tracking_origin_offset);
176 bool root_is_unbounded,
177 bool per_app_local_spaces,
xrt_result_t(* u_builder_open_system_fn)(struct xrt_builder *xb, cJSON *config, struct xrt_prober *xp, struct xrt_tracking_origin *origin, struct xrt_system_devices *xsysd, struct xrt_frame_context *xfctx, struct u_builder_roles_helper *ubrh)
Argument to u_builder_roles_helper_open_system and implemented by u_builder::open_system_static_roles...
Definition: u_builders.h:42
#define U_BUILDER_SEARCH_MAX
Max return of the number xrt_prober_device.
Definition: u_builders.h:29
xrt_result_t u_builder_roles_helper_open_system(struct xrt_builder *xb, cJSON *config, struct xrt_prober *xp, struct xrt_session_event_sink *broadcast, struct xrt_system_devices **out_xsysd, struct xrt_space_overseer **out_xso, u_builder_open_system_fn fn)
Helper to create a system devices that has static roles and a appropriate space overseer.
Definition: u_builders.c:197
void u_builder_search(struct xrt_prober *xp, struct xrt_prober_device *const *xpdevs, size_t xpdev_count, const struct u_builder_search_filter *filters, size_t filter_count, struct u_builder_search_results *results)
Find all of the xrt_prober_device that matches any in the given list of u_builder_search_filter filte...
Definition: u_builders.c:68
xrt_result_t u_builder_open_system_static_roles(struct xrt_builder *xb, cJSON *config, struct xrt_prober *xp, struct xrt_session_event_sink *broadcast, struct xrt_system_devices **out_xsysd, struct xrt_space_overseer **out_xso)
Implementation for xrt_builder::open_system to be used with u_builder.
Definition: u_builders.c:261
void u_builder_create_space_overseer_legacy(struct xrt_session_event_sink *broadcast, struct xrt_device *head, struct xrt_device *left, struct xrt_device *right, struct xrt_device **xdevs, uint32_t xdev_count, bool root_is_unbounded, bool per_app_local_spaces, struct xrt_space_overseer **out_xso)
Create a legacy space overseer, most builders probably want to have a more advanced setup then this,...
Definition: u_builders.c:147
struct xrt_prober_device * u_builder_find_prober_device(struct xrt_prober_device *const *xpdevs, size_t xpdev_count, uint16_t vendor_id, uint16_t product_id, enum xrt_bus_type bus_type)
Find the first xrt_prober_device in the prober list.
Definition: u_builders.c:47
void u_builder_setup_tracking_origins(struct xrt_device *head, struct xrt_device *left, struct xrt_device *right, struct xrt_vec3 *global_tracking_origin_offset)
Helper function for setting up tracking origins.
Definition: u_builders.c:106
enum xrt_result xrt_result_t
Result type used across Monado.
This small helper struct is for u_builder_roles_helper_open_system, lets a builder focus on opening d...
Definition: u_builders.h:84
A filter to match the against.
Definition: u_builders.h:56
Results of a search of devices.
Definition: u_builders.h:68
struct xrt_prober_device * xpdevs[(16)]
Out field of found xrt_prober_device.
Definition: u_builders.h:70
size_t xpdev_count
Number of found devices.
Definition: u_builders.h:73
This helper struct makes it easier to implement the builder interface, but it also comes with a set o...
Definition: u_builders.h:107
u_builder_open_system_fn open_system_static_roles
Argument to u_builder_roles_helper_open_system and implemented by u_builder::open_system_static_roles...
Definition: u_builders.h:114
struct xrt_builder base
Base for this struct.
Definition: u_builders.h:109
Sets up a collection of devices and builds a system, a setter upper.
Definition: xrt_prober.h:560
A single HMD or input device.
Definition: xrt_device.h:241
Object used to track all sinks and frame producers in a graph.
Definition: xrt_frame.h:108
A probed device, may or may not be opened.
Definition: xrt_prober.h:85
uint16_t product_id
USB/Bluetooth product ID (PID)
Definition: xrt_prober.h:94
uint16_t vendor_id
USB/Bluetooth vendor ID (VID)
Definition: xrt_prober.h:89
The main prober that probes and manages found but not opened HMD devices that are connected to the sy...
Definition: xrt_prober.h:132
Used internally from producers of events to push events into session, some sinks might multiplex even...
Definition: xrt_session.h:206
Object that oversees and manages spaces, one created for each XR system.
Definition: xrt_space.h:96
A collection of xrt_device, and an interface for identifying the roles they have been assigned.
Definition: xrt_system.h:219
A tracking system or device origin.
Definition: xrt_tracking.h:71
A 3 element vector with single floats.
Definition: xrt_defines.h:271
Common interface to probe for devices.
xrt_bus_type
Bus type of a device.
Definition: xrt_prober.h:63
Header defining xrt space and space overseer.