Monado OpenXR Runtime
qwerty_controller Struct Reference

Supports input actions and can be attached to the HMD pose. More...

#include <qwerty/qwerty_device.h>

Inheritance diagram for qwerty_controller:
Collaboration diagram for qwerty_controller:

Public Member Functions

struct qwerty_controllerqwerty_controller_create (bool is_left, struct qwerty_hmd *qhmd)
 Create qwerty_controller. More...
 
struct qwerty_controllerqwerty_controller (struct xrt_device *xd)
 Cast to qwerty_controller. More...
 
void qwerty_press_trigger (struct qwerty_controller *qc)
 Simulate pressing input/trigger/value to 1.0. More...
 
void qwerty_release_trigger (struct qwerty_controller *qc)
 Simulate releasing input/trigger/value to 0.0. More...
 
void qwerty_press_menu (struct qwerty_controller *qc)
 Simulate pressing input/menu/click. More...
 
void qwerty_release_menu (struct qwerty_controller *qc)
 Simulate releasing input/menu/click. More...
 
void qwerty_press_squeeze (struct qwerty_controller *qc)
 Simulate pressing input/squeeze/click. More...
 
void qwerty_release_squeeze (struct qwerty_controller *qc)
 Simulate releasing input/squeeze/click. More...
 
void qwerty_press_system (struct qwerty_controller *qc)
 Simulate pressing input/system/click. More...
 
void qwerty_release_system (struct qwerty_controller *qc)
 Simulate releasing input/system/click. More...
 
void qwerty_press_thumbstick_left (struct qwerty_controller *qc)
 
void qwerty_release_thumbstick_left (struct qwerty_controller *qc)
 
void qwerty_press_thumbstick_right (struct qwerty_controller *qc)
 
void qwerty_release_thumbstick_right (struct qwerty_controller *qc)
 
void qwerty_press_thumbstick_up (struct qwerty_controller *qc)
 
void qwerty_release_thumbstick_up (struct qwerty_controller *qc)
 
void qwerty_press_thumbstick_down (struct qwerty_controller *qc)
 
void qwerty_release_thumbstick_down (struct qwerty_controller *qc)
 
void qwerty_press_thumbstick_click (struct qwerty_controller *qc)
 
void qwerty_release_thumbstick_click (struct qwerty_controller *qc)
 
void qwerty_press_trackpad_left (struct qwerty_controller *qc)
 
void qwerty_release_trackpad_left (struct qwerty_controller *qc)
 
void qwerty_press_trackpad_right (struct qwerty_controller *qc)
 
void qwerty_release_trackpad_right (struct qwerty_controller *qc)
 
void qwerty_press_trackpad_up (struct qwerty_controller *qc)
 
void qwerty_release_trackpad_up (struct qwerty_controller *qc)
 
void qwerty_press_trackpad_down (struct qwerty_controller *qc)
 
void qwerty_release_trackpad_down (struct qwerty_controller *qc)
 
void qwerty_press_trackpad_click (struct qwerty_controller *qc)
 
void qwerty_release_trackpad_click (struct qwerty_controller *qc)
 
void qwerty_follow_hmd (struct qwerty_controller *qc, bool follow)
 Attach/detach the pose of qc to its HMD. More...
 
void qwerty_reset_controller_pose (struct qwerty_controller *qc)
 Reset controller to initial pose and makes it follow the HMD. More...
 
- Public Member Functions inherited from qwerty_device
struct qwerty_deviceqwerty_device (struct xrt_device *xd)
 Cast to qwerty_device. More...
 
void qwerty_press_left (struct qwerty_device *qd)
 
void qwerty_release_left (struct qwerty_device *qd)
 
void qwerty_press_right (struct qwerty_device *qd)
 
void qwerty_release_right (struct qwerty_device *qd)
 
void qwerty_press_forward (struct qwerty_device *qd)
 
void qwerty_release_forward (struct qwerty_device *qd)
 
void qwerty_press_backward (struct qwerty_device *qd)
 
void qwerty_release_backward (struct qwerty_device *qd)
 
void qwerty_press_up (struct qwerty_device *qd)
 
void qwerty_release_up (struct qwerty_device *qd)
 
void qwerty_press_down (struct qwerty_device *qd)
 
void qwerty_release_down (struct qwerty_device *qd)
 
void qwerty_press_look_left (struct qwerty_device *qd)
 
void qwerty_release_look_left (struct qwerty_device *qd)
 
void qwerty_press_look_right (struct qwerty_device *qd)
 
void qwerty_release_look_right (struct qwerty_device *qd)
 
void qwerty_press_look_up (struct qwerty_device *qd)
 
void qwerty_release_look_up (struct qwerty_device *qd)
 
void qwerty_press_look_down (struct qwerty_device *qd)
 
void qwerty_release_look_down (struct qwerty_device *qd)
 
void qwerty_press_sprint (struct qwerty_device *qd)
 Momentarily increase movement_speed until qwerty_release_sprint() More...
 
void qwerty_release_sprint (struct qwerty_device *qd)
 Stop doing what qwerty_press_sprint started. More...
 
void qwerty_add_look_delta (struct qwerty_device *qd, float yaw, float pitch)
 Add yaw and pitch movement for the next frame. More...
 
void qwerty_change_movement_speed (struct qwerty_device *qd, float steps)
 Change movement speed in exponential steps (usually integers, but any float allowed) More...
 
void qwerty_release_all (struct qwerty_device *qd)
 Release all movement input. More...
 

Data Fields

struct qwerty_device base
 
bool trigger_clicked
 
int64_t trigger_timestamp
 
bool menu_clicked
 
int64_t menu_timestamp
 
bool squeeze_clicked
 
int64_t squeeze_timestamp
 
bool system_clicked
 
int64_t system_timestamp
 
bool thumbstick_left_pressed
 
bool thumbstick_right_pressed
 
bool thumbstick_up_pressed
 
bool thumbstick_down_pressed
 
int64_t thumbstick_timestamp
 
bool thumbstick_clicked
 
int64_t thumbstick_click_timestamp
 
bool trackpad_left_pressed
 
bool trackpad_right_pressed
 
bool trackpad_up_pressed
 
bool trackpad_down_pressed
 
int64_t trackpad_timestamp
 
bool trackpad_clicked
 
int64_t trackpad_click_timestamp
 
bool follow_hmd
 Only used when a qwerty_hmd exists in the system. More...
 
- Data Fields inherited from qwerty_device
struct xrt_device base
 
struct xrt_pose pose
 Internal pose state. More...
 
struct qwerty_systemsys
 Reference to the system this device is in. More...
 
float movement_speed
 In meters per frame. More...
 
bool left_pressed
 
bool right_pressed
 
bool forward_pressed
 
bool backward_pressed
 
bool up_pressed
 
bool down_pressed
 
float look_speed
 In radians per frame. More...
 
bool look_left_pressed
 
bool look_right_pressed
 
bool look_up_pressed
 
bool look_down_pressed
 
bool sprint_pressed
 Movement speed boost. More...
 
float yaw_delta
 How much extra yaw to add for the next pose. More...
 
float pitch_delta
 Similar to yaw_delta More...
 
- Data Fields inherited from xrt_device
enum xrt_device_name name
 Enum identifier of the device. More...
 
enum xrt_device_type device_type
 
char str [256]
 A string describing the device. More...
 
char serial [256]
 A unique identifier. Persistent across configurations, if possible. More...
 
struct xrt_hmd_partshmd
 Null if this device does not interface with the users head. More...
 
struct xrt_tracking_origintracking_origin
 Always set, pointing to the tracking system for this device. More...
 
size_t binding_profile_count
 Number of bindings in xrt_device::binding_profiles. More...
 
struct xrt_binding_profilebinding_profiles
 
size_t input_count
 Number of inputs. More...
 
struct xrt_inputinputs
 Array of input structs. More...
 
size_t output_count
 Number of outputs. More...
 
struct xrt_outputoutputs
 Array of output structs. More...
 
bool orientation_tracking_supported
 
bool position_tracking_supported
 
bool hand_tracking_supported
 
bool eye_gaze_supported
 
bool force_feedback_supported
 
bool ref_space_usage_supported
 
bool form_factor_check_supported
 
bool stage_supported
 
bool face_tracking_supported
 
bool body_tracking_supported
 
bool battery_status_supported
 
xrt_result_t(* update_inputs )(struct xrt_device *xdev)
 Update any attached inputs. More...
 
xrt_result_t(* get_tracked_pose )(struct xrt_device *xdev, enum xrt_input_name name, int64_t at_timestamp_ns, struct xrt_space_relation *out_relation)
 Get relationship of a tracked device to the tracking origin space as the base space. More...
 
void(* get_hand_tracking )(struct xrt_device *xdev, enum xrt_input_name name, int64_t desired_timestamp_ns, struct xrt_hand_joint_set *out_value, int64_t *out_timestamp_ns)
 Get relationship of hand joints to the tracking origin space as the base space. More...
 
xrt_result_t(* get_face_tracking )(struct xrt_device *xdev, enum xrt_input_name facial_expression_type, int64_t at_timestamp_ns, struct xrt_facial_expression_set *out_value)
 Get the requested blend shape properties & weights for a face tracker. More...
 
xrt_result_t(* get_body_skeleton )(struct xrt_device *xdev, enum xrt_input_name body_tracking_type, struct xrt_body_skeleton *out_value)
 Get the body skeleton in T-pose, used to query the skeleton hierarchy, scale, proportions etc. More...
 
xrt_result_t(* get_body_joints )(struct xrt_device *xdev, enum xrt_input_name body_tracking_type, int64_t desired_timestamp_ns, struct xrt_body_joint_set *out_value)
 Get the joint locations for a body tracker. More...
 
void(* set_output )(struct xrt_device *xdev, enum xrt_output_name name, const union xrt_output_value *value)
 Set a output value. More...
 
void(* get_view_poses )(struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, uint32_t view_count, struct xrt_space_relation *out_head_relation, struct xrt_fov *out_fovs, struct xrt_pose *out_poses)
 Get the per-view pose in relation to the view space. More...
 
bool(* compute_distortion )(struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result)
 Compute the distortion at a single point. More...
 
xrt_result_t(* get_visibility_mask )(struct xrt_device *xdev, enum xrt_visibility_mask_type type, uint32_t view_index, struct xrt_visibility_mask **out_mask)
 Get the visibility mask for this device. More...
 
xrt_result_t(* ref_space_usage )(struct xrt_device *xdev, enum xrt_reference_space_type type, enum xrt_input_name name, bool used)
 Called by the xrt_space_overseer when a reference space that is implemented by this device is first used, or when the last usage of the reference space stops. More...
 
bool(* is_form_factor_available )(struct xrt_device *xdev, enum xrt_form_factor form_factor)
 Check if given form factor is available or not. More...
 
xrt_result_t(* get_battery_status )(struct xrt_device *xdev, bool *out_present, bool *out_charging, float *out_charge)
 Get battery status information. More...
 
xrt_result_t(* begin_feature )(struct xrt_device *xdev, enum xrt_device_feature_type type)
 Enable the feature for this device. More...
 
xrt_result_t(* end_feature )(struct xrt_device *xdev, enum xrt_device_feature_type type)
 Disable the feature for this device. More...
 
void(* destroy )(struct xrt_device *xdev)
 Destroy device. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from xrt_device
static xrt_result_t xrt_device_update_inputs (struct xrt_device *xdev)
 Helper function for xrt_device::update_inputs. More...
 
static xrt_result_t xrt_device_get_tracked_pose (struct xrt_device *xdev, enum xrt_input_name name, int64_t at_timestamp_ns, struct xrt_space_relation *out_relation)
 Helper function for xrt_device::get_tracked_pose. More...
 
static void xrt_device_get_hand_tracking (struct xrt_device *xdev, enum xrt_input_name name, int64_t desired_timestamp_ns, struct xrt_hand_joint_set *out_value, int64_t *out_timestamp_ns)
 Helper function for xrt_device::get_hand_tracking. More...
 
static xrt_result_t xrt_device_get_face_tracking (struct xrt_device *xdev, enum xrt_input_name facial_expression_type, int64_t at_timestamp_ns, struct xrt_facial_expression_set *out_value)
 Helper function for xrt_device::get_face_tracking. More...
 
static xrt_result_t xrt_device_get_body_skeleton (struct xrt_device *xdev, enum xrt_input_name body_tracking_type, struct xrt_body_skeleton *out_value)
 Helper function for xrt_device::get_body_skeleton. More...
 
static xrt_result_t xrt_device_get_body_joints (struct xrt_device *xdev, enum xrt_input_name body_tracking_type, int64_t desired_timestamp_ns, struct xrt_body_joint_set *out_value)
 Helper function for xrt_device::get_body_joints. More...
 
static void xrt_device_set_output (struct xrt_device *xdev, enum xrt_output_name name, const union xrt_output_value *value)
 Helper function for xrt_device::set_output. More...
 
static void xrt_device_get_view_poses (struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, uint32_t view_count, struct xrt_space_relation *out_head_relation, struct xrt_fov *out_fovs, struct xrt_pose *out_poses)
 Helper function for xrt_device::get_view_poses. More...
 
static bool xrt_device_compute_distortion (struct xrt_device *xdev, uint32_t view, float u, float v, struct xrt_uv_triplet *out_result)
 Helper function for xrt_device::compute_distortion. More...
 
static xrt_result_t xrt_device_get_visibility_mask (struct xrt_device *xdev, enum xrt_visibility_mask_type type, uint32_t view_index, struct xrt_visibility_mask **out_mask)
 Helper function for xrt_device::get_visibility_mask. More...
 
static xrt_result_t xrt_device_ref_space_usage (struct xrt_device *xdev, enum xrt_reference_space_type type, enum xrt_input_name name, bool used)
 Helper function for xrt_device::ref_space_usage. More...
 
static bool xrt_device_is_form_factor_available (struct xrt_device *xdev, enum xrt_form_factor form_factor)
 Helper function for xrt_device::is_form_factor_available. More...
 
static xrt_result_t xrt_device_get_battery_status (struct xrt_device *xdev, bool *out_present, bool *out_charging, float *out_charge)
 Helper function for xrt_device::get_battery_status. More...
 
static xrt_result_t xrt_device_begin_feature (struct xrt_device *xdev, enum xrt_device_feature_type type)
 Helper function for xrt_device::begin_feature. More...
 
static xrt_result_t xrt_device_end_feature (struct xrt_device *xdev, enum xrt_device_feature_type type)
 Helper function for xrt_device::end_feature. More...
 
static void xrt_device_destroy (struct xrt_device **xdev_ptr)
 Helper function for xrt_device::destroy. More...
 

Detailed Description

Supports input actions and can be attached to the HMD pose.

See also
qwerty_system

Field Documentation

◆ follow_hmd

bool qwerty_controller::follow_hmd

Only used when a qwerty_hmd exists in the system.

Do not modify directly; use qwerty_follow_hmd(). If true, pose is relative to the qwerty_hmd.

Referenced by qwerty_follow_hmd().


The documentation for this struct was generated from the following file: