Monado OpenXR Runtime
Loading...
Searching...
No Matches
oxr_resolver_for_bindings.c File Reference

Resolve suggested bindings into action cache IO. More...

Include dependency graph for oxr_resolver_for_bindings.c:

Data Structures

struct  input_storage
 
struct  output_storage
 

Functions

static bool find_xdev_input_name_from_pairs (const struct xrt_device *xdev, const struct xrt_binding_profile *xbp, enum xrt_input_name from_name, enum xrt_input_name *out_name)
 
static bool is_action_type_output (XrActionType action_type)
 
static bool binding_point_matches_action_type (const struct oxr_binding_point *point, XrActionType action_type)
 
static bool resolve_upgrade_binding_point (struct oxr_sink_logger *slog, const struct oxr_binding_profile *profile, const struct oxr_binding_point *upgrade_point, XrActionType action_type, const struct oxr_binding_point **out_point)
 
static bool resolve_binding_point (struct oxr_sink_logger *slog, const struct oxr_profile_resolver_info *info, const struct oxr_suggested_binding *suggested_binding, XrActionType action_type, const struct oxr_binding_point **out_point)
 
static bool get_dpad_region_from_binding_point (const struct oxr_binding_point *binding_point, enum oxr_dpad_region *out_dpad_region)
 
static bool find_matching_dpad (const struct oxr_dpad_entry *dpad_entry, XrPath dpad_emulation_path, const struct oxr_dpad_binding_modification **out_dpad_binding)
 
static void append_resolved_input (struct oxr_logger *log, struct oxr_sink_logger *slog, const struct oxr_suggested_profile *profile, const struct oxr_suggested_binding *suggested_binding, const char *action_name, struct xrt_device *xdev, const struct xrt_binding_profile *xbp, const struct oxr_binding_point *binding_point, struct oxr_action_attachment *act_attached, struct input_storage *input_storage)
 
static void append_resolved_output (struct oxr_sink_logger *slog, struct xrt_device *xdev, const struct xrt_binding_profile *xbp, const struct oxr_binding_point *binding_point, struct output_storage *storage)
 
static bool suggested_binding_matches (const struct oxr_suggested_binding *binding, const struct oxr_action_attachment *act_attached, XrPath subaction_path)
 
void oxr_resolver_populate_input (struct oxr_logger *log, struct oxr_sink_logger *slog, const struct oxr_profile_resolver_info *info, struct xrt_device *xdev, XrPath subaction_path, struct oxr_action_attachment *act_attached, struct oxr_action_cache *cache)
 Resolve suggested input bindings for one action/subaction path into cache.
 
void oxr_resolver_populate_output (struct oxr_logger *log, struct oxr_sink_logger *slog, const struct oxr_profile_resolver_info *info, struct xrt_device *xdev, XrPath subaction_path, struct oxr_action_attachment *act_attached, struct oxr_action_cache *cache)
 Resolve suggested output bindings for one action/subaction path into cache.
 

Detailed Description

Resolve suggested bindings into action cache IO.

Function Documentation

◆ oxr_resolver_populate_input()

void oxr_resolver_populate_input ( struct oxr_logger *  log,
struct oxr_sink_logger *  slog,
const struct oxr_profile_resolver_info *  info,
struct xrt_device *  xdev,
XrPath  subaction_path,
struct oxr_action_attachment *  act_attached,
struct oxr_action_cache *  cache 
)

Resolve suggested input bindings for one action/subaction path into cache.

This is intentionally lower-level than the existing action binding path: it consumes the attached suggested-profile snapshot and resolves binding points at cache population time.

Assumes xdev is not NULL and cache has already been cleared by the caller.

References oxr_action_attachment::act_ref, oxr_action_ref::action_type, oxr_action_state::active, oxr_suggested_binding::binding_point, oxr_suggested_profile::bindings, oxr_action_ref::name, oxr_binding_point::profile, oxr_profile_resolver_info::profile, oxr_binding_point::templ, U_TYPED_ARRAY_CALLOC, oxr_profile_resolver_info::xbp, and XRT_STRUCT_INIT.

◆ oxr_resolver_populate_output()

void oxr_resolver_populate_output ( struct oxr_logger *  log,
struct oxr_sink_logger *  slog,
const struct oxr_profile_resolver_info *  info,
struct xrt_device *  xdev,
XrPath  subaction_path,
struct oxr_action_attachment *  act_attached,
struct oxr_action_cache *  cache 
)

Resolve suggested output bindings for one action/subaction path into cache.

Assumes xdev is not NULL and cache has already been cleared by the caller.

References oxr_action_attachment::act_ref, oxr_action_ref::action_type, oxr_action_state::active, oxr_suggested_binding::binding_point, oxr_suggested_profile::bindings, oxr_profile_resolver_info::profile, oxr_binding_point::templ, U_TYPED_ARRAY_CALLOC, oxr_profile_resolver_info::xbp, and XRT_STRUCT_INIT.