|
Monado OpenXR Runtime
|
Resolve suggested bindings into action cache IO. More...
#include "util/u_debug.h"#include "util/u_misc.h"#include "oxr_resolver_for_bindings.h"#include "oxr_binding_profile.h"#include "oxr_binding_registry.h"#include "oxr_dpad_state.h"#include "oxr_input_transform.h"#include "oxr_priority_group_cache.h"#include "oxr_rebinding_profile.h"#include "oxr_session_action_context.h"#include "oxr_suggested_profile.h"#include "../oxr_conversions.h"#include "../oxr_logger.h"#include "../oxr_objects.h"#include <string.h>
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. | |
Resolve suggested bindings into action cache IO.
| 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.
| 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.