|
Monado OpenXR Runtime
|


Data Fields | |
| struct xrt_device | base |
| struct os_hid_device * | mainboard_dev |
| struct os_hid_device * | sensors_dev |
| struct os_hid_device * | watchman_dev |
| struct lighthouse_watchman | watchman |
| struct os_thread_helper | sensors_thread |
| struct os_thread_helper | watchman_thread |
| struct os_thread_helper | mainboard_thread |
| struct { | |
| timepoint_ns last_sample_ts_ns | |
| uint32_t last_sample_ticks | |
| uint8_t sequence | |
| } | imu |
| struct { | |
| uint16_t ipd | |
| uint16_t lens_separation | |
| uint16_t proximity | |
| uint8_t button | |
| uint8_t audio_button | |
| } | board |
| enum u_logging_level | log_level |
| bool | disconnect_notified |
| struct { | |
| struct u_var_button switch_tracker_btn | |
| char hand_status [128] | |
| char slam_status [128] | |
| } | gui |
| struct vive_config | config |
| struct { | |
| struct os_mutex mutex | |
Protects all members of the fusion substruct. More... | |
| struct m_imu_3dof i3dof | |
| Main fusion calculator. More... | |
| struct m_relation_history * relation_hist | |
| Prediction. More... | |
| } | fusion |
| struct { | |
| struct xrt_tracked_slam * slam | |
| SLAM tracker. More... | |
| bool slam_enabled | |
| Set at start. Whether the SLAM tracker was initialized. More... | |
| bool hand_enabled | |
| Set at start. Whether the hand tracker was initialized. More... | |
| bool imu2me | |
| SLAM systems track the IMU pose, enabling this corrects it to middle of the eyes. More... | |
| } | tracking |
| Fields related to camera-based tracking (SLAM and hand tracking) More... | |
| struct u_var_draggable_f32 | tracked_offset_ms |
| Offset for tracked pose offsets (applies to both fusion and SLAM). More... | |
| struct xrt_pose | P_imu_me |
| IMU to head/display/middle-of-eyes transform in OpenXR coords. More... | |
| bool | slam_over_3dof |
| Whether to track the HMD with 6dof SLAM or fallback to the 3dof tracker. More... | |
| struct vive_source * | source |
| In charge of managing raw samples, redirects them for tracking. More... | |
| struct xrt_pose | pose |
| Last tracked pose. More... | |
| struct xrt_pose | offset |
Additional offset to apply to pose 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_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 populates xdev->hmd_parts.distortion.mesh & xdev->hmd_parts.distortion.models. More... | |
| bool vive_device::hand_enabled |
Set at start. Whether the hand tracker was initialized.
| struct m_imu_3dof vive_device::i3dof |
Main fusion calculator.
| bool vive_device::imu2me |
SLAM systems track the IMU pose, enabling this corrects it to middle of the eyes.
| struct os_mutex vive_device::mutex |
Protects all members of the fusion substruct.
| struct xrt_pose vive_device::offset |
Additional offset to apply to pose
| struct xrt_pose vive_device::P_imu_me |
IMU to head/display/middle-of-eyes transform in OpenXR coords.
Referenced by precompute_sensor_transforms().
| struct xrt_pose vive_device::pose |
Last tracked pose.
| struct m_relation_history* vive_device::relation_hist |
Prediction.
| struct xrt_tracked_slam* vive_device::slam |
SLAM tracker.
| bool vive_device::slam_enabled |
Set at start. Whether the SLAM tracker was initialized.
| bool vive_device::slam_over_3dof |
Whether to track the HMD with 6dof SLAM or fallback to the 3dof tracker.
| struct vive_source* vive_device::source |
In charge of managing raw samples, redirects them for tracking.
| struct u_var_draggable_f32 vive_device::tracked_offset_ms |
Offset for tracked pose offsets (applies to both fusion and SLAM).
Applied when getting the tracked poses, so is effectively a offset to increase or decrease prediction.
| struct { ... } vive_device::tracking |
Fields related to camera-based tracking (SLAM and hand tracking)