Monado OpenXR Runtime
ipc_client_tracking_origin.h
Go to the documentation of this file.
1// Copyright 2025-2026, NVIDIA CORPORATION.
2// SPDX-License-Identifier: BSL-1.0
3/*!
4 * @file
5 * @brief IPC Client tracking origin management.
6 * @author Jakob Bornecrantz <tbornecrantz@nvidia.com>
7 * @ingroup ipc_client
8 */
9
10#pragma once
11
12#include "xrt/xrt_tracking.h"
13#include "util/u_hashmap.h"
14
15
16#ifdef __cplusplus
17extern "C" {
18#endif
19
20
21struct ipc_connection;
22
23/*!
24 * Tracking origin manager for IPC client.
25 *
26 * Maintains a hashmap of tracking origin IDs to xrt_tracking_origin objects.
27 * Fetches tracking origin info from the server on-demand.
28 *
29 * @ingroup ipc_client
30 */
32{
33 //! Connection to the IPC server
35
36 //! Hashmap from tracking_origin_id to xrt_tracking_origin*
38};
39
40/*!
41 * Initialize a tracking origin manager.
42 *
43 * @ingroup ipc_client
44 */
47 struct ipc_connection *ipc_c);
48
49/*!
50 * Get a tracking origin by ID. If not already cached, fetches it from the server.
51 *
52 * @ingroup ipc_client
53 */
56 uint32_t tracking_origin_id,
57 struct xrt_tracking_origin **out_xtrack);
58
59/*!
60 * Finalize the tracking origin manager and all cached tracking origins.
61 *
62 * @ingroup ipc_client
63 */
64void
66
67
68#ifdef __cplusplus
69}
70#endif
xrt_result_t ipc_client_tracking_origin_manager_get(struct ipc_client_tracking_origin_manager *manager, uint32_t tracking_origin_id, struct xrt_tracking_origin **out_xtrack)
Get a tracking origin by ID.
Definition: ipc_client_tracking_origin.c:74
void ipc_client_tracking_origin_manager_fini(struct ipc_client_tracking_origin_manager *manager)
Finalize the tracking origin manager and all cached tracking origins.
Definition: ipc_client_tracking_origin.c:113
xrt_result_t ipc_client_tracking_origin_manager_init(struct ipc_client_tracking_origin_manager *manager, struct ipc_connection *ipc_c)
Initialize a tracking origin manager.
Definition: ipc_client_tracking_origin.c:55
enum xrt_result xrt_result_t
Result type used across Monado.
Tracking origin manager for IPC client.
Definition: ipc_client_tracking_origin.h:32
struct ipc_connection * ipc_c
Connection to the IPC server.
Definition: ipc_client_tracking_origin.h:34
struct u_hashmap_int * tracking_origin_map
Hashmap from tracking_origin_id to xrt_tracking_origin*.
Definition: ipc_client_tracking_origin.h:37
Connection.
Definition: ipc_client.h:63
A simple uint64_t key to a void pointer hashmap.
Definition: u_hashmap.cpp:24
A tracking system or device origin.
Definition: xrt_tracking.h:75
Hashmap for integer values header.
Header defining the tracking system integration in Monado.