28#include "xrt/xrt_config_build.h"
34#define IPC_CRED_SIZE 1
35#define IPC_BUF_SIZE 2048
36#define IPC_MAX_VIEWS 8
37#define IPC_MAX_FORMATS 32
38#define IPC_MAX_DEVICES 8
39#define IPC_MAX_LAYERS XRT_MAX_LAYERS
40#define IPC_MAX_SLOTS 128
41#define IPC_MAX_CLIENTS 32
42#define IPC_MAX_RAW_VIEWS 32
43#define IPC_EVENT_QUEUE_SIZE 32
47#define IPC_VERSION_NAME_LEN 64
49#if defined(XRT_OS_WINDOWS) && !defined(XRT_ENV_MINGW)
54#if defined(XRT_ENV_MINGW)
56#define PID_T_FMT "%lli"
101 char name[XRT_TRACKING_NAME_LEN];
160 char str[XRT_DEVICE_NAME_LEN];
238 uint32_t layer_count;
315 uint32_t blend_mode_count;
320 uint64_t startup_timestamp;
331 uint32_t requested_source_count;
332 bool has_locked_xdev;
333 uint32_t locked_xdev_id;
347 uint32_t ids[IPC_MAX_CLIENTS];
359 bool block_hand_tracking;
374 bool primary_application;
376 bool session_visible;
377 bool session_focused;
378 bool session_overlay;
398 struct xrt_fov fovs[XRT_MAX_VIEWS];
399 struct xrt_pose poses[XRT_MAX_VIEWS];
405 uint32_t num_samples;
xrt_hand
Enumeration for left and right hand.
Definition xrt_defines.h:1478
xrt_blend_mode
Blend mode that the device supports, exact mirror of XrEnvironmentBlendMode.
Definition xrt_defines.h:112
#define XRT_SYSTEM_MAX_DEVICES
Maximum number of devices simultaneously usable by an implementation of xrt_system_devices.
Definition xrt_limits.h:26
#define XRT_MAX_SWAPCHAIN_IMAGES
Max swapchain images, artificial limit.
Definition xrt_limits.h:53
xrt_input_name
Every internal input source known to monado with a baked in type.
Definition xrt_defines.h:930
xrt_tracking_type
What kind of tracking system is this.
Definition xrt_tracking.h:46
xrt_device_type
How an xrt_device can be used.
Definition xrt_defines.h:827
State for a connected application.
Definition ipc_protocol.h:370
Arguments for creating swapchains from native images.
Definition ipc_protocol.h:389
A binding in the shared memory area.
Definition ipc_protocol.h:190
uint32_t first_output_index
Offset into the array of pairs where this output bindings starts.
Definition ipc_protocol.h:199
uint32_t output_count
Number of outputs.
Definition ipc_protocol.h:201
uint32_t first_input_index
Offset into the array of pairs where this input bindings starts.
Definition ipc_protocol.h:194
uint32_t input_count
Number of inputs.
Definition ipc_protocol.h:196
Initial info from a client when it connects.
Definition ipc_protocol.h:340
Which types of IO to block for a client.
Definition ipc_protocol.h:357
Definition ipc_protocol.h:346
Device information sent over IPC.
Definition ipc_protocol.h:151
char str[XRT_DEVICE_NAME_LEN]
A string describing the device.
Definition ipc_protocol.h:160
uint32_t total_output_pair_count
Total number of output pairs in varlen data (across all binding profiles).
Definition ipc_protocol.h:172
enum xrt_device_name name
Enum identifier of the device.
Definition ipc_protocol.h:153
uint32_t total_input_pair_count
Total number of input pairs in varlen data (across all binding profiles).
Definition ipc_protocol.h:169
uint32_t binding_profile_count
Number of binding profiles in varlen data.
Definition ipc_protocol.h:166
char serial[XRT_DEVICE_NAME_LEN]
A unique identifier. Persistent across configurations, if possible.
Definition ipc_protocol.h:163
uint32_t tracking_origin_id
Which tracking system origin is this device attached to.
Definition ipc_protocol.h:157
struct xrt_device_supported supported
The supported fields.
Definition ipc_protocol.h:181
uint32_t input_count
Number of inputs.
Definition ipc_protocol.h:175
uint32_t output_count
Number of outputs.
Definition ipc_protocol.h:178
Information about a device in the device list.
Definition ipc_protocol.h:116
uint32_t id
Device ID.
Definition ipc_protocol.h:118
enum xrt_device_type device_type
Device type.
Definition ipc_protocol.h:121
List of devices available on the server.
Definition ipc_protocol.h:130
uint32_t device_count
Number of devices.
Definition ipc_protocol.h:132
Pointer-free arguments for creating an xrt_hand_tracker over IPC.
Definition ipc_protocol.h:328
Arguments for xrt_device::get_view_poses with two views.
Definition ipc_protocol.h:397
Data for a single composition layer.
Definition ipc_protocol.h:212
struct xrt_layer_data data
All basic (trivially-serializable) data associated with a layer, aside from which swapchain(s) are us...
Definition ipc_protocol.h:227
uint32_t swapchain_ids[XRT_MAX_VIEWS *2]
Up to two indices of swapchains to use.
Definition ipc_protocol.h:221
uint32_t xdev_id
Definition ipc_protocol.h:214
Render state for a single client, including all layers.
Definition ipc_protocol.h:236
Definition ipc_protocol.h:404
A big struct that contains all data that is shared to a client, no pointers allowed in this.
Definition ipc_protocol.h:258
struct ipc_shared_memory::@271::@275::@276 display
Pixel properties of this display, not in absolute screen coordinates that the compositor sees.
char u_git_tag[64]
The git revision of the service, used by clients to detect version mismatches.
Definition ipc_protocol.h:262
struct ipc_shared_memory::@270 roles
Various roles for the devices.
A tracking in the shared memory area.
Definition ipc_protocol.h:99
enum xrt_tracking_type type
What can the state tracker expect from this tracking system.
Definition ipc_protocol.h:104
struct xrt_pose offset
Initial offset of the tracking origin.
Definition ipc_protocol.h:107
Information about a device in the device list.
Definition ipc_protocol.h:74
uint32_t id
Tracking origin ID.
Definition ipc_protocol.h:76
A list of the current tracking origins.
Definition ipc_protocol.h:85
uint32_t origin_count
Number of tracking origins.
Definition ipc_protocol.h:87
struct ipc_tracking_origin_list_entry origins[XRT_SYSTEM_MAX_DEVICES]
Compact list of tracking origins.
Definition ipc_protocol.h:90
Non-process-specific information provided by the application at instance create time.
Definition xrt_instance.h:73
Static data of supported features of the xrt_device this struct sits on.
Definition xrt_device.h:280
Describes a projection matrix fov.
Definition xrt_defines.h:512
All the pure data values associated with a composition layer.
Definition xrt_compositor.h:419
Per frame data for the layer submission calls, used in xrt_compositor::layer_begin.
Definition xrt_compositor.h:505
A query for a plane.
Definition xrt_plane_detector.h:97
A pose composed of a position and orientation.
Definition xrt_defines.h:492
A relation with two spaces, includes velocity and acceleration.
Definition xrt_defines.h:683
Header holding common defines.
Header declaring XRT graphics interfaces.
Common defines and enums for XRT.
xrt_device_name
A enum that is used to name devices so that the state trackers can reason about the devices easier.
Definition xrt_defines.h:737
Header defining an xrt display or controller device.
Interface for creating futures.
Header for xrt_instance object.
Header for limits of the XRT interfaces.
Internal result type for XRT.
Header for session object.
Header defining xrt space and space overseer.
Header for system objects.
Header defining the tracking system integration in Monado.