Monado OpenXR Runtime
Loading...
Searching...
No Matches
solarxr_interface.h
Go to the documentation of this file.
1// Copyright 2025, rcelyte
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief SolarXR protocol bridge device
6 * @ingroup drv_solarxr
7 */
8
9#pragma once
10
11#include <stdbool.h>
12#include <stddef.h>
13#include <stdint.h>
14struct xrt_device;
16
17#ifdef __cplusplus
18extern "C" {
19#endif
20
21uint32_t
22solarxr_device_create_xdevs(struct xrt_tracking_origin *tracking_origin,
23 struct xrt_device *out_xdevs[],
24 uint32_t out_xdevs_cap);
25
26bool
27solarxr_device_add_feeder_device(struct xrt_device *solarxr, struct xrt_device *xdev);
28
29void
30solarxr_device_remove_feeder_device(struct xrt_device *solarxr, struct xrt_device *xdev);
31
32void
33solarxr_device_clear_feeder_devices(struct xrt_device *solarxr);
34
35static inline struct xrt_device *
36solarxr_device_create(struct xrt_tracking_origin *const tracking_origin)
37{
38 struct xrt_device *out = NULL;
39 solarxr_device_create_xdevs(tracking_origin, &out, 1);
40 return out;
41}
42
43static inline void
44solarxr_device_set_feeder_devices(struct xrt_device *const solarxr,
45 struct xrt_device *const xdevs[],
46 const uint32_t xdev_count)
47{
48 solarxr_device_clear_feeder_devices(solarxr);
49 for (uint32_t i = 0; i < xdev_count; ++i) {
50 solarxr_device_add_feeder_device(solarxr, xdevs[i]);
51 }
52}
53
54
55#ifdef __cplusplus
56}
57#endif
A single HMD or input device.
Definition xrt_device.h:310
struct xrt_tracking_origin * tracking_origin
Always set, pointing to the tracking system for this device.
Definition xrt_device.h:325
A tracking system or device origin.
Definition xrt_tracking.h:75