| Monado OpenXR Runtime
    | 
A single PlayStation Move Controller. More...


| Data Fields | |
| struct xrt_device | base | 
| struct os_hid_device * | hid | 
| struct xrt_tracked_psmv * | ball | 
| struct os_thread_helper | oth | 
| struct { | |
| int64_t resend_time | |
| struct xrt_colour_rgb_u8 led | |
| uint8_t rumble | |
| } | wants | 
| What should be set.  More... | |
| struct { | |
| struct xrt_colour_rgb_u8 led | |
| uint8_t rumble | |
| } | state | 
| What is currently set on the device.  More... | |
| struct { | |
| union { | |
| struct psmv_parsed_calibration_zcm1 zcm1 | |
| struct psmv_parsed_calibration_zcm2 zcm2 | |
| } | |
| struct m_imu_pre_filter prefilter | |
| } | calibration | 
| struct { | |
| struct os_mutex lock | |
| Lock for last and fusion.  More... | |
| struct psmv_parsed_input last | |
| Last sensor read.  More... | |
| uint64_t last_timestamp_ns | |
| Last time we got a package.  More... | |
| struct { | |
| struct xrt_quat rot | |
| struct xrt_vec3 rotvec | |
| struct xrt_vec3 angvel | |
| struct imu_fusion * fusion | |
| struct { | |
| struct xrt_vec3 accel | |
| struct xrt_vec3 gyro | |
| } variance | |
| } fusion | |
| }; | |
| struct { | |
| struct xrt_vec3 accel | |
| Last adjusted accelerator value.  More... | |
| struct xrt_vec3 gyro | |
| Last adjusted gyro value.  More... | |
| } | read | 
| uint16_t | pid | 
| enum u_logging_level | log_level | 
| struct { | |
| bool control | |
| bool calibration | |
| bool last_frame | |
| bool fusion | |
| } | gui | 
|  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_parts * | hmd | 
| Null if this device does not interface with the users head.  More... | |
| struct xrt_tracking_origin * | tracking_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_profile * | binding_profiles | 
| size_t | input_count | 
| Number of inputs.  More... | |
| struct xrt_input * | inputs | 
| Array of input structs.  More... | |
| size_t | output_count | 
| Number of outputs.  More... | |
| struct xrt_output * | outputs | 
| Array of output structs.  More... | |
| struct xrt_device_supported | supported | 
| What features/functions/things does this device supports?  More... | |
| 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... | |
| xrt_result_t(* | 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... | |
| xrt_result_t(* | reset_body_tracking_calibration_meta )(struct xrt_device *xdev) | 
| XR_META_body_tracking_calibration - body tracking extension to reset the body tracking calibration.  More... | |
| xrt_result_t(* | set_body_tracking_calibration_override_meta )(struct xrt_device *xdev, float new_body_height) | 
| XR_META_body_tracking_calibration - body tracking extension to suggest a body tracking calibration override.  More... | |
| xrt_result_t(* | set_output )(struct xrt_device *xdev, enum xrt_output_name name, const struct xrt_output_value *value) | 
| Set a output value.  More... | |
| xrt_result_t(* | get_output_limits )(struct xrt_device *xdev, struct xrt_output_limits *limits) | 
| Gets limits of this devices outputs.  More... | |
| xrt_result_t(* | get_presence )(struct xrt_device *xdev, bool *presence) | 
| Get current presence status of the device.  More... | |
| enum xrt_result(* | begin_plane_detection_ext )(struct xrt_device *xdev, const struct xrt_plane_detector_begin_info_ext *begin_info, uint64_t plane_detection_id, uint64_t *out_plane_detection_id) | 
| Begin a plane detection request.  More... | |
| enum xrt_result(* | destroy_plane_detection_ext )(struct xrt_device *xdev, uint64_t plane_detection_id) | 
| Destroy internal resources associated with plane_detector_id.  More... | |
| enum xrt_result(* | get_plane_detection_state_ext )(struct xrt_device *xdev, uint64_t plane_detection_id, enum xrt_plane_detector_state_ext *out_state) | 
| Get the state of a plane detection request.  More... | |
| enum xrt_result(* | get_plane_detections_ext )(struct xrt_device *xdev, uint64_t plane_detection_id, struct xrt_plane_detections_ext *out_detections) | 
| Get results of a plane detection request.  More... | |
| xrt_result_t(* | 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... | |
| xrt_result_t(* | 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(* | get_brightness )(struct xrt_device *xdev, float *out_brightness) | 
| Get the current display brightness.  More... | |
| xrt_result_t(* | set_brightness )(struct xrt_device *xdev, float brightness, bool relative) | 
| Set the display brightness.  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 xrt_result_t | 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 xrt_result_t | xrt_device_reset_body_tracking_calibration_meta (struct xrt_device *xdev) | 
| Helper function for xrt_device::reset_body_tracking_calibration_meta.  More... | |
| static xrt_result_t | xrt_device_set_body_tracking_calibration_override_meta (struct xrt_device *xdev, float new_body_height) | 
| Helper function for xrt_device::set_body_tracking_calibration_override_meta.  More... | |
| static xrt_result_t | xrt_device_set_output (struct xrt_device *xdev, enum xrt_output_name name, const struct xrt_output_value *value) | 
| Helper function for xrt_device::set_output.  More... | |
| static xrt_result_t | xrt_device_get_presence (struct xrt_device *xdev, bool *presence) | 
| Helper function for xrt_device::get_presence.  More... | |
| static enum xrt_result | xrt_device_begin_plane_detection_ext (struct xrt_device *xdev, const struct xrt_plane_detector_begin_info_ext *begin_info, uint64_t plane_detection_id, uint64_t *out_plane_detection_id) | 
| Helper function for xrt_device::begin_plane_detection.  More... | |
| static enum xrt_result | xrt_device_destroy_plane_detection_ext (struct xrt_device *xdev, uint64_t plane_detection_id) | 
| Helper function for xrt_device::destroy_plane_detection.  More... | |
| static enum xrt_result | xrt_device_get_plane_detection_state_ext (struct xrt_device *xdev, uint64_t plane_detection_id, enum xrt_plane_detector_state_ext *out_state) | 
| Helper function for xrt_device::get_plane_detections.  More... | |
| static enum xrt_result | xrt_device_get_plane_detections_ext (struct xrt_device *xdev, uint64_t plane_detection_id, struct xrt_plane_detections_ext *out_detections) | 
| Helper function for xrt_device::get_plane_detections.  More... | |
| static xrt_result_t | 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 xrt_result_t | 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_get_brightness (struct xrt_device *xdev, float *out_brightness) | 
| Helper function for xrt_device::get_brightness.  More... | |
| static xrt_result_t | xrt_device_set_brightness (struct xrt_device *xdev, float brightness, bool relative) | 
| Helper function for xrt_device::set_brightness.  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... | |
| static xrt_result_t | ipc_client_xdev_get_plane_detection_state_ext (struct xrt_device *xdev, uint64_t plane_detection_id, enum xrt_plane_detector_state_ext *out_state) | 
| Helper function for xrt_device::get_plane_detection_state.  More... | |
| static xrt_result_t | ipc_client_xdev_get_plane_detections_ext (struct xrt_device *xdev, uint64_t plane_detection_id, struct xrt_plane_detections_ext *out_detections) | 
| Helper function for xrt_device::get_plane_detections.  More... | |
|  Related Functions inherited from xrt_device | |
| void | u_distortion_mesh_fill_in_compute (struct xrt_device *xdev) | 
| Given a xrt_device generates meshes by calling xdev->compute_distortion(), populates xdev->hmd_parts.distortion.mesh&xdev->hmd_parts.distortion.models.  More... | |
| void | u_distortion_mesh_fill_in_none (struct xrt_device *xdev) | 
| Given a xrt_device generates a no distortion mesh, populates xdev->hmd_parts.distortion.mesh&xdev->hmd_parts.distortion.models.  More... | |
| void | u_distortion_mesh_set_none (struct xrt_device *xdev) | 
| Given a xrt_device generates a no distortion mesh, also sets xdev->compute_distortion()and populatesxdev->hmd_parts.distortion.mesh&xdev->hmd_parts.distortion.models.  More... | |
A single PlayStation Move Controller.
A note about coordinate system. If you stand the controller in front of you so that the ball is pointing upward, buttons towards you. Then think of the ball as a head that is looking away from you. The buttons then are is it's back, the trigger the front.
Translated to axis that means the ball is on the Y+ axis, the buttons on the Z+ axis, the trigger on the Z- axis, the USB port on the Y- axis, the start button on the X+ axis, select button on the X- axis.
| struct xrt_vec3 psmv_device::accel | 
Last adjusted accelerator value.
| struct xrt_vec3 psmv_device::gyro | 
Last adjusted gyro value.
| struct psmv_parsed_input psmv_device::last | 
Last sensor read.
| uint64_t psmv_device::last_timestamp_ns | 
Last time we got a package.
| struct os_mutex psmv_device::lock | 
Lock for last and fusion.
| struct { ... } psmv_device::state | 
What is currently set on the device.
| struct { ... } psmv_device::wants | 
What should be set.