Monado OpenXR Runtime
monado.h
Go to the documentation of this file.
1// Copyright 2019-2023, Collabora, Ltd.
2// Copyright 2025-2026, NVIDIA CORPORATION.
3// SPDX-License-Identifier: BSL-1.0
4/*!
5 * @file
6 * @brief Interface of libmonado
7 * @author Jakob Bornecrantz <jakob@collabora.com>
8 * @author Rylie Pavlik <rylie.pavlik@collabora.com>
9 */
10
11#include <stdint.h>
12#include <stdbool.h>
13
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19
20/*
21 *
22 * Enums, defines and objects.
23 *
24 */
25
26//! Major version of the API.
27#define MND_API_VERSION_MAJOR 1
28//! Minor version of the API.
29#define MND_API_VERSION_MINOR 6
30//! Patch version of the API.
31#define MND_API_VERSION_PATCH 0
32
33/*!
34 * Result codes for operations, negative are errors, zero or positives are
35 * success.
36 */
37typedef enum mnd_result
38{
39 MND_SUCCESS = 0,
40 MND_ERROR_INVALID_VERSION = -1,
41 MND_ERROR_INVALID_VALUE = -2,
42 MND_ERROR_CONNECTING_FAILED = -3,
43 MND_ERROR_OPERATION_FAILED = -4,
44 //! Supported in version 1.1 and above.
46 //! Supported in version 1.2 and above.
48 //! Supported in version 1.3 and above.
50 //! Supported in version 1.5 and above.
53
54/*!
55 * Bitflags for client application state.
56 */
57typedef enum mnd_client_flags
58{
59 MND_CLIENT_PRIMARY_APP = (1u << 0u),
60 MND_CLIENT_SESSION_ACTIVE = (1u << 1u),
61 MND_CLIENT_SESSION_VISIBLE = (1u << 2u),
62 MND_CLIENT_SESSION_FOCUSED = (1u << 3u),
63 MND_CLIENT_SESSION_OVERLAY = (1u << 4u),
64 //! @deprecated Deprecated in version 1.6.
66 //! Supported in version 1.6 and above.
68 //! Supported in version 1.6 and above.
70 //! Supported in version 1.6 and above.
72 //! Supported in version 1.6 and above.
75
76/*!
77 * A property to get from a thing (currently only devices).
78 *
79 * Supported in version 1.2 and above.
80 */
81typedef enum mnd_property
82{
83 //! Supported in version 1.2 and above.
85 //! Supported in version 1.2 and above.
87 //! Supported in version 1.4.0 and above.
89 //! Supported in version 1.4.0 and above.
91 //! Supported in version 1.4.0 and above.
93 //! Supported in version 1.5.0 and above.
96
97/*!
98 * Opaque type for libmonado state
99 */
100typedef struct mnd_root mnd_root_t;
101
102/*!
103 * A pose composed of a position and orientation.
104 */
105typedef struct mnd_pose
106{
107 struct
108 {
109 float x, y, z, w;
110 } orientation;
111 struct
112 {
113 float x, y, z;
114 } position;
116
117/*!
118 * Types of reference space.
119 */
121{
122 MND_SPACE_REFERENCE_TYPE_VIEW,
123 MND_SPACE_REFERENCE_TYPE_LOCAL,
124 MND_SPACE_REFERENCE_TYPE_LOCAL_FLOOR,
125 MND_SPACE_REFERENCE_TYPE_STAGE,
126 MND_SPACE_REFERENCE_TYPE_UNBOUNDED,
128
129/*!
130 * Bitflags for IO blocking.
131 *
132 * Bitflags are only to be used here, this should not be used as a template
133 * for future libmonado interfaces.
134 *
135 * Supported in version 1.6.0 and above.
136 */
138{
139 MND_IO_BLOCK_POSES = (1u << 0u),
140 MND_IO_BLOCK_HT = (1u << 1u),
141 MND_IO_BLOCK_INPUTS = (1u << 2u),
142 MND_IO_BLOCK_OUTPUTS = (1u << 3u),
144
145/*
146 *
147 * Functions
148 *
149 */
150
151/*!
152 * Returns the version of the API (not Monado itself), follows the versioning
153 * semantics of https://semver.org/ standard. In short if the major version
154 * mismatch then the interface is incompatible.
155 *
156 * @param[out] out_major Major version number, must be valid pointer.
157 * @param[out] out_minor Minor version number, must be valid pointer.
158 * @param[out] out_patch Patch version number, must be valid pointer.
159 *
160 * Always succeeds, or crashes if any pointer isn't valid.
161 */
162void
163mnd_api_get_version(uint32_t *out_major, uint32_t *out_minor, uint32_t *out_patch);
164
165/*!
166 * Create libmonado state and connect to service
167 *
168 * @param[out] out_root Address to populate with the opaque state type.
169 * @return MND_SUCCESS on success
170 */
172mnd_root_create(mnd_root_t **out_root);
173
174/*!
175 * Destroy libmonado state, disconnecting from the service, and zeroing the
176 * pointer.
177 *
178 * @param root_ptr Pointer to your libmonado state. Null-checked, will be set to null.
179 */
180void
181mnd_root_destroy(mnd_root_t **root_ptr);
182
183/*!
184 * Update our local cached copy of the client list
185 *
186 * @param root The libmonado state.
187 * @return MND_SUCCESS on success
188 */
191
192/*!
193 * Get the number of active clients
194 *
195 * This value only changes on calls to @ref mnd_root_update_client_list
196 *
197 * @param root The libmonado state.
198 * @param[out] out_num Pointer to value to populate with the number of clients.
199 *
200 * @pre Called @ref mnd_root_update_client_list at least once
201 *
202 * @return MND_SUCCESS on success
203 */
205mnd_root_get_number_clients(mnd_root_t *root, uint32_t *out_num);
206
207/*!
208 * Get the id from the current client list.
209 *
210 * @param root The libmonado state.
211 * @param index Index to retrieve id for.
212 * @param[out] out_client_id Pointer to value to populate with the id at the given index.
213 */
215mnd_root_get_client_id_at_index(mnd_root_t *root, uint32_t index, uint32_t *out_client_id);
216
217/*!
218 * Get the name of the client at the given index.
219 *
220 * The string returned is only valid until the next call into libmonado.
221 *
222 * @param root The libmonado state.
223 * @param client_id ID of client to retrieve name from.
224 * @param[out] out_name Pointer to populate with the client name.
225 *
226 * @pre Called @ref mnd_root_update_client_list at least once
227 *
228 * @return MND_SUCCESS on success
229 */
231mnd_root_get_client_name(mnd_root_t *root, uint32_t client_id, const char **out_name);
232
233/*!
234 * Get the state flags of the client at the given index.
235 *
236 * This result only changes on calls to @ref mnd_root_update_client_list
237 *
238 * @param root The libmonado state.
239 * @param client_id ID of client to retrieve flags from.
240 * @param[out] out_flags Pointer to populate with the flags, a bitwise combination of @ref mnd_client_flags.
241 *
242 * @pre Called @ref mnd_root_update_client_list at least once
243 *
244 * @return MND_SUCCESS on success
245 */
247mnd_root_get_client_state(mnd_root_t *root, uint32_t client_id, uint32_t *out_flags);
248
249/*!
250 * Set the client at the given index as "primary".
251 *
252 * @param root The libmonado state.
253 * @param client_id ID of the client set as primary.
254 *
255 * @pre Called @ref mnd_root_update_client_list at least once
256 *
257 * @return MND_SUCCESS on success
258 */
260mnd_root_set_client_primary(mnd_root_t *root, uint32_t client_id);
261
262/*!
263 * Set the client at the given index as "focused".
264 *
265 * @param root The libmonado state.
266 * @param client_id ID of the client set as focused.
267 *
268 * @pre Called @ref mnd_root_update_client_list at least once
269 *
270 * @return MND_SUCCESS on success
271 */
273mnd_root_set_client_focused(mnd_root_t *root, uint32_t client_id);
274
275/*!
276 * Toggle io activity for the client at the given index.
277 *
278 * @deprecated Deprecated in version 1.6.
279 *
280 * @param root The libmonado state.
281 * @param client_id ID of the client to toggle IO for.
282 *
283 * @pre Called @ref mnd_root_update_client_list at least once
284 *
285 * @return MND_SUCCESS on success
286 */
288mnd_root_toggle_client_io_active(mnd_root_t *root, uint32_t client_id);
289
290/*!
291 * Block certain types of IO for the client at the given index.
292 *
293 * Supported in version 1.6 and above.
294 *
295 * @param root The libmonado state.
296 * @param client_id ID of the client to block IO for.
297 * @param block_flags Which types of IO to block.
298 */
300mnd_root_set_client_io_blocks(mnd_root_t *root, uint32_t client_id, mnd_io_block_flags_t block_flags);
301
302/*!
303 * Get the number of devices
304 *
305 * @param root The libmonado state.
306 * @param[out] out_device_count Pointer to value to populate with the number of devices.
307 *
308 * @return MND_SUCCESS on success
309 */
311mnd_root_get_device_count(mnd_root_t *root, uint32_t *out_device_count);
312
313/*!
314 * Get boolean property for the device at the given index.
315 *
316 * Supported in version 1.2 and above.
317 *
318 * @param root The libmonado state.
319 * @param device_index Index of device to retrieve name from.
320 * @param prop A boolean property enum.
321 * @param[out] out_bool Pointer to populate with the boolean.
322 *
323 * @return MND_SUCCESS on success
324 */
326mnd_root_get_device_info_bool(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, bool *out_bool);
327
328/*!
329 * Get int32_t property for the device at the given index.
330 *
331 * Supported in version 1.2 and above.
332 *
333 * @param root The libmonado state.
334 * @param device_index Index of device to retrieve name from.
335 * @param prop A int32_t property enum.
336 * @param[out] out_i32 Pointer to populate with the int32_t.
337 *
338 * @return MND_SUCCESS on success
339 */
341mnd_root_get_device_info_i32(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, uint32_t *out_i32);
342
343/*!
344 * Get uint32_t property for the device at the given index.
345 *
346 * Supported in version 1.2 and above.
347 *
348 * @param root The libmonado state.
349 * @param device_index Index of device to retrieve name from.
350 * @param prop A uint32_t property enum.
351 * @param[out] out_u32 Pointer to populate with the uint32_t.
352 *
353 * @return MND_SUCCESS on success
354 */
356mnd_root_get_device_info_u32(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, uint32_t *out_u32);
357
358/*!
359 * Get float property for the device at the given index.
360 *
361 * Supported in version 1.2 and above.
362 *
363 * @param root The libmonado state.
364 * @param device_index Index of device to retrieve name from.
365 * @param prop A float property enum.
366 * @param[out] out_float Pointer to populate with the float.
367 *
368 * @return MND_SUCCESS on success
369 */
371mnd_root_get_device_info_float(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, float *out_float);
372
373/*!
374 * Get string property for the device at the given index.
375 *
376 * Supported in version 1.2 and above.
377 *
378 * @param root The libmonado state.
379 * @param device_index Index of device to retrieve name from.
380 * @param prop A string property enum.
381 * @param[out] out_string Pointer to populate with the string.
382 *
383 * @return MND_SUCCESS on success
384 */
386mnd_root_get_device_info_string(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, const char **out_string);
387
388/*!
389 * Get device info at the given index.
390 *
391 * @deprecated Deprecated in version 1.2, scheduled for removal in version 2.0.0 currently.
392 *
393 * @param root The libmonado state.
394 * @param device_index Index of device to retrieve name from.
395 * @param[out] out_device_id Pointer to value to populate with the device id at the given index.
396 * @param[out] out_dev_name Pointer to populate with the device name.
397 *
398 * @return MND_SUCCESS on success
399 */
401mnd_root_get_device_info(mnd_root_t *root, uint32_t device_index, uint32_t *out_device_id, const char **out_dev_name);
402
403/*!
404 * Get the device index associated for a given role name.
405 *
406 *
407 * @param root The libmonado state.
408 * @param role_name Name of the role. Possible values are:
409 * - "head"
410 * - "left"
411 * - "right"
412 * - "gamepad"
413 * - "eyes"
414 * - "hand-tracking-unobstructed-[left|right]"
415 * - "hand-tracking-conforming-[left|right]"
416 *
417 * **DEPRECATED**: The role names "hand-tracking-[left|right]"
418 * are deprecated as of v1.5. They now map to
419 * "hand-tracking-unobstructed-[left|right]" and are
420 * scheduled for removal in v2.0.
421 *
422 * @param[out] out_index Pointer to value to populate with the device index
423 * associated with given role name, -1 if not role is set.
424 *
425 * @return MND_SUCCESS on success
426 */
428mnd_root_get_device_from_role(mnd_root_t *root, const char *role_name, int32_t *out_index);
429
430/*!
431 * Trigger a recenter of the local spaces.
432 *
433 * Supported in version 1.1 and above.
434 *
435 * @param root The libmonado state.
436 *
437 * @return MND_SUCCESS on success
438 */
441
442/*!
443 * Get the current offset value of the specified reference space.
444 *
445 * Supported in version 1.3 and above.
446 *
447 * @param root The libmonado state.
448 * @param type The reference space.
449 * @param[out] out_offset A pointer to where the offset should be written.
450 *
451 * @return MND_SUCCESS on success
452 */
455
456/*!
457 * Apply an offset to the specified reference space.
458 *
459 * Supported in version 1.3 and above.
460 *
461 * @param root The libmonado state.
462 * @param type The reference space.
463 * @param offset A pointer to valid xrt_pose.
464 *
465 * @return MND_SUCCESS on success
466 */
469
470/*!
471 * Read the current offset of a tracking origin.
472 *
473 * Supported in version 1.3 and above.
474 *
475 * @param root The libmonado state.
476 * @param origin_index The index of the tracking origin into the internal list.
477 * @param[out] out_offset A pointer to where the offset should be written.
478 *
479 * @return MND_SUCCESS on success
480 */
482mnd_root_get_tracking_origin_offset(mnd_root_t *root, uint32_t origin_index, mnd_pose_t *out_offset);
483
484/*!
485 * Apply an offset to the specified tracking origin.
486 *
487 * Supported in version 1.3 and above.
488 *
489 * @param root The libmonado state.
490 * @param origin_index The index of the tracking origin into the internal list.
491 * @param offset A pointer to valid xrt_pose.
492 *
493 * @return MND_SUCCESS on success
494 */
496mnd_root_set_tracking_origin_offset(mnd_root_t *root, uint32_t origin_index, const mnd_pose_t *offset);
497
498/*!
499 * Retrieve the number of tracking origins available.
500 *
501 * Supported in version 1.3 and above.
502 *
503 * @param root The libmonado state.
504 * @param out_track_count Pointer to where the count should be written.
505 *
506 * @return MND_SUCCESS on success
507 */
509mnd_root_get_tracking_origin_count(mnd_root_t *root, uint32_t *out_track_count);
510
511/*!
512 * Retrieve the name of the indicated tracking origin.
513 *
514 * Supported in version 1.3 and above.
515 *
516 * @param root The libmonado state.
517 * @param origin_index The index of the tracking origin into the internal list.
518 * @param out_string The pointer to write the name's pointer to.
519 *
520 * @return MND_SUCCESS on success
521 */
523mnd_root_get_tracking_origin_name(mnd_root_t *root, uint32_t origin_index, const char **out_string);
524
525/*!
526 * Get battery status of a device.
527 *
528 * @param root The libmonado state.
529 * @param device_index Index of device to retrieve battery info from.
530 * @param[out] out_present Pointer to value to populate with whether the device provides battery status info.
531 * @param[out] out_charging Pointer to value to populate with whether the device is currently being charged.
532 * @param[out] out_charge Pointer to value to populate with the battery charge as a value between 0 and 1.
533 *
534 * @return MND_SUCCESS on success
535 */
538 mnd_root_t *root, uint32_t device_index, bool *out_present, bool *out_charging, float *out_charge);
539
540/*!
541 * Get current brightness of a display device.
542 *
543 * @param root The libmonado state.
544 * @param device_index Index of device to retrieve brightness from.
545 * @param[out] out_brightness Pointer to value to populate with the current device brightness, where 0 is 0%, and 1 is
546 * 100%.
547 *
548 * @return MND_SUCCESS on success
549 */
551mnd_root_get_device_brightness(mnd_root_t *root, uint32_t device_index, float *out_brightness);
552
553/*!
554 * @brief Set the display brightness.
555 *
556 * @param root The libmonado state.
557 * @param device_index Index of device to retrieve battery info from.
558 * @param[in] brightness Desired display brightness, usually between 0 and 1. Some devices may
559 * allow exceeding 1 if the supported range exceeds 100%, but it will be clamped to
560 * the supported range.
561 * @param[in] relative Whether to add \a brightness to the current brightness, instead of overwriting
562 * the current brightness.
563 *
564 * @return MND_SUCCESS on success
565 */
567mnd_root_set_device_brightness(mnd_root_t *root, uint32_t device_index, float brightness, bool relative);
568
569#ifdef __cplusplus
570}
571#endif
mnd_result_t mnd_root_get_tracking_origin_name(mnd_root_t *root, uint32_t origin_index, const char **out_string)
Retrieve the name of the indicated tracking origin.
Definition: monado.c:678
mnd_result_t mnd_root_create(mnd_root_t **out_root)
Create libmonado state and connect to service.
Definition: monado.c:200
mnd_result_t mnd_root_get_device_info_bool(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, bool *out_bool)
Get boolean property for the device at the given index.
Definition: monado.c:424
mnd_result_t mnd_root_get_device_info_string(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, const char **out_string)
Get string property for the device at the given index.
Definition: monado.c:492
mnd_result
Result codes for operations, negative are errors, zero or positives are success.
Definition: monado.h:38
@ MND_ERROR_INVALID_PROPERTY
Supported in version 1.2 and above.
Definition: monado.h:47
@ MND_ERROR_UNSUPPORTED_OPERATION
Supported in version 1.5 and above.
Definition: monado.h:51
@ MND_ERROR_INVALID_OPERATION
Supported in version 1.3 and above.
Definition: monado.h:49
@ MND_ERROR_RECENTERING_NOT_SUPPORTED
Supported in version 1.1 and above.
Definition: monado.h:45
void mnd_api_get_version(uint32_t *out_major, uint32_t *out_minor, uint32_t *out_patch)
Returns the version of the API (not Monado itself), follows the versioning semantics of https://semve...
Definition: monado.c:185
enum mnd_result mnd_result_t
Result codes for operations, negative are errors, zero or positives are success.
mnd_result_t mnd_root_get_client_state(mnd_root_t *root, uint32_t client_id, uint32_t *out_flags)
Get the state flags of the client at the given index.
Definition: monado.c:317
mnd_result_t mnd_root_get_reference_space_offset(mnd_root_t *root, mnd_reference_space_type_t type, mnd_pose_t *out_offset)
Get the current offset value of the specified reference space.
Definition: monado.c:602
mnd_property
A property to get from a thing (currently only devices).
Definition: monado.h:82
@ MND_PROPERTY_SUPPORTS_POSITION_BOOL
Supported in version 1.4.0 and above.
Definition: monado.h:90
@ MND_PROPERTY_SUPPORTS_BRIGHTNESS_BOOL
Supported in version 1.5.0 and above.
Definition: monado.h:94
@ MND_PROPERTY_NAME_STRING
Supported in version 1.2 and above.
Definition: monado.h:84
@ MND_PROPERTY_SUPPORTS_ORIENTATION_BOOL
Supported in version 1.4.0 and above.
Definition: monado.h:92
@ MND_PROPERTY_TRACKING_ORIGIN_U32
Supported in version 1.4.0 and above.
Definition: monado.h:88
@ MND_PROPERTY_SERIAL_STRING
Supported in version 1.2 and above.
Definition: monado.h:86
void mnd_root_destroy(mnd_root_t **root_ptr)
Destroy libmonado state, disconnecting from the service, and zeroing the pointer.
Definition: monado.c:244
mnd_result_t mnd_root_get_client_name(mnd_root_t *root, uint32_t client_id, const char **out_name)
Get the name of the client at the given index.
Definition: monado.c:300
mnd_result_t mnd_root_get_device_battery_status(mnd_root_t *root, uint32_t device_index, bool *out_present, bool *out_charging, float *out_charge)
Get battery status of a device.
Definition: monado.c:692
mnd_result_t mnd_root_recenter_local_spaces(mnd_root_t *root)
Trigger a recenter of the local spaces.
Definition: monado.c:590
mnd_result_t mnd_root_get_device_from_role(mnd_root_t *root, const char *role_name, int32_t *out_index)
Get the device index associated for a given role name.
Definition: monado.c:525
enum mnd_io_block_flags mnd_io_block_flags_t
Bitflags for IO blocking.
struct mnd_pose mnd_pose_t
A pose composed of a position and orientation.
mnd_reference_space_type
Types of reference space.
Definition: monado.h:121
mnd_result_t mnd_root_get_device_info_i32(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, uint32_t *out_i32)
Get int32_t property for the device at the given index.
Definition: monado.c:443
mnd_result_t mnd_root_update_client_list(mnd_root_t *root)
Update our local cached copy of the client list.
Definition: monado.c:264
mnd_result_t mnd_root_set_reference_space_offset(mnd_root_t *root, mnd_reference_space_type_t type, const mnd_pose_t *offset)
Apply an offset to the specified reference space.
Definition: monado.c:615
mnd_result_t mnd_root_set_tracking_origin_offset(mnd_root_t *root, uint32_t origin_index, const mnd_pose_t *offset)
Apply an offset to the specified tracking origin.
Definition: monado.c:648
mnd_result_t mnd_root_get_client_id_at_index(mnd_root_t *root, uint32_t index, uint32_t *out_client_id)
Get the id from the current client list.
Definition: monado.c:289
mnd_result_t mnd_root_set_client_focused(mnd_root_t *root, uint32_t client_id)
Set the client at the given index as "focused".
Definition: monado.c:363
enum mnd_client_flags mnd_client_flags_t
Bitflags for client application state.
mnd_result_t mnd_root_set_device_brightness(mnd_root_t *root, uint32_t device_index, float brightness, bool relative)
Set the display brightness.
Definition: monado.c:739
mnd_result_t mnd_root_toggle_client_io_active(mnd_root_t *root, uint32_t client_id)
Toggle io activity for the client at the given index.
Definition: monado.c:378
mnd_io_block_flags
Bitflags for IO blocking.
Definition: monado.h:138
enum mnd_reference_space_type mnd_reference_space_type_t
Types of reference space.
mnd_client_flags
Bitflags for client application state.
Definition: monado.h:58
@ MND_CLIENT_POSES_BLOCKED
Supported in version 1.6 and above.
Definition: monado.h:67
@ MND_CLIENT_HT_BLOCKED
Supported in version 1.6 and above.
Definition: monado.h:69
@ MND_CLIENT_INPUTS_BLOCKED
Supported in version 1.6 and above.
Definition: monado.h:71
@ MND_CLIENT_OUTPUTS_BLOCKED
Supported in version 1.6 and above.
Definition: monado.h:73
@ MND_CLIENT_IO_ACTIVE
Definition: monado.h:65
mnd_result_t mnd_root_get_device_count(mnd_root_t *root, uint32_t *out_device_count)
Get the number of devices.
Definition: monado.c:413
mnd_result_t mnd_root_get_device_info(mnd_root_t *root, uint32_t device_index, uint32_t *out_device_id, const char **out_dev_name)
Get device info at the given index.
Definition: monado.c:510
mnd_result_t mnd_root_set_client_primary(mnd_root_t *root, uint32_t client_id)
Set the client at the given index as "primary".
Definition: monado.c:348
mnd_result_t mnd_root_get_tracking_origin_offset(mnd_root_t *root, uint32_t origin_index, mnd_pose_t *out_offset)
Read the current offset of a tracking origin.
Definition: monado.c:629
enum mnd_property mnd_property_t
A property to get from a thing (currently only devices).
mnd_result_t mnd_root_get_device_info_u32(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, uint32_t *out_u32)
Get uint32_t property for the device at the given index.
Definition: monado.c:455
mnd_result_t mnd_root_get_device_brightness(mnd_root_t *root, uint32_t device_index, float *out_brightness)
Get current brightness of a display device.
Definition: monado.c:717
mnd_result_t mnd_root_get_number_clients(mnd_root_t *root, uint32_t *out_num)
Get the number of active clients.
Definition: monado.c:278
mnd_result_t mnd_root_get_device_info_float(mnd_root_t *root, uint32_t device_index, mnd_property_t prop, float *out_float)
Get float property for the device at the given index.
Definition: monado.c:480
mnd_result_t mnd_root_set_client_io_blocks(mnd_root_t *root, uint32_t client_id, mnd_io_block_flags_t block_flags)
Block certain types of IO for the client at the given index.
Definition: monado.c:393
mnd_result_t mnd_root_get_tracking_origin_count(mnd_root_t *root, uint32_t *out_track_count)
Retrieve the number of tracking origins available.
Definition: monado.c:667
A pose composed of a position and orientation.
Definition: monado.h:106
Definition: monado.c:33