Monado OpenXR Runtime
ipc_client_space_overseer.c File Reference

IPC Client space overseer. More...

#include "client/ipc_client.h"
#include "client/ipc_client_connection.h"
#include "shared/ipc_message_channel.h"
#include "xrt/xrt_defines.h"
#include "xrt/xrt_space.h"
#include "ipc_client_generated.h"
Include dependency graph for ipc_client_space_overseer.c:

Data Structures

struct  ipc_client_space
 
struct  ipc_client_space_overseer
 

Macros

#define CREATE(NAME)
 

Functions

static struct ipc_client_spaceipc_client_space (struct xrt_space *xs)
 
static struct ipc_client_space_overseeripc_client_space_overseer (struct xrt_space_overseer *xso)
 
static void space_destroy (struct xrt_space *xs)
 
static void alloc_space_with_id (struct ipc_client_space_overseer *icspo, uint32_t id, struct xrt_space **out_space)
 
static xrt_result_t create_offset_space (struct xrt_space_overseer *xso, struct xrt_space *parent, const struct xrt_pose *offset, struct xrt_space **out_space)
 
static xrt_result_t create_pose_space (struct xrt_space_overseer *xso, struct xrt_device *xdev, enum xrt_input_name name, struct xrt_space **out_space)
 
static xrt_result_t locate_space (struct xrt_space_overseer *xso, struct xrt_space *base_space, const struct xrt_pose *base_offset, int64_t at_timestamp_ns, struct xrt_space *space, const struct xrt_pose *offset, struct xrt_space_relation *out_relation)
 
static xrt_result_t locate_spaces (struct xrt_space_overseer *xso, struct xrt_space *base_space, const struct xrt_pose *base_offset, int64_t at_timestamp_ns, struct xrt_space **spaces, uint32_t space_count, const struct xrt_pose *offsets, struct xrt_space_relation *out_relations)
 
static xrt_result_t locate_device (struct xrt_space_overseer *xso, struct xrt_space *base_space, const struct xrt_pose *base_offset, int64_t at_timestamp_ns, struct xrt_device *xdev, struct xrt_space_relation *out_relation)
 
static xrt_result_t ref_space_inc (struct xrt_space_overseer *xso, enum xrt_reference_space_type type)
 
static xrt_result_t ref_space_dec (struct xrt_space_overseer *xso, enum xrt_reference_space_type type)
 
static xrt_result_t recenter_local_spaces (struct xrt_space_overseer *xso)
 
static xrt_result_t get_tracking_origin_offset (struct xrt_space_overseer *xso, struct xrt_tracking_origin *xto, struct xrt_pose *out_offset)
 
static xrt_result_t set_tracking_origin_offset (struct xrt_space_overseer *xso, struct xrt_tracking_origin *xto, const struct xrt_pose *offset)
 
static xrt_result_t get_reference_space_offset (struct xrt_space_overseer *xso, enum xrt_reference_space_type type, struct xrt_pose *out_offset)
 
static xrt_result_t set_reference_space_offset (struct xrt_space_overseer *xso, enum xrt_reference_space_type type, const struct xrt_pose *offset)
 
static void destroy (struct xrt_space_overseer *xso)
 
struct xrt_space_overseeripc_client_space_overseer_create (struct ipc_connection *ipc_c)
 

Detailed Description

IPC Client space overseer.

Author
Jakob Bornecrantz jakob.nosp@m.@col.nosp@m.labor.nosp@m.a.co.nosp@m.m

Macro Definition Documentation

◆ CREATE

#define CREATE (   NAME)
Value:
do { \
if (NAME##_id == UINT32_MAX) { \
break; \
} \
alloc_space_with_id(icspo, NAME##_id, &icspo->base.semantic.NAME); \
} while (false)