Monado OpenXR Runtime
Loading...
Searching...
No Matches
psvr_device Struct Reference

Private struct for the PSVR driver device. More...

Inheritance diagram for psvr_device:
Collaboration diagram for psvr_device:

Data Fields

struct xrt_device base
 
hid_device * hid_sensor
 Owned by the oth thread.
 
hid_device * hid_control
 Owned and protected by the device_mutex.
 
struct os_mutex device_mutex
 
struct os_thread_helper oth
 Used to read sensor packets.
 
struct xrt_tracked_psvrtracker
 
timepoint_ns last_sensor_time
 Only touched from the sensor thread.
 
struct psvr_parsed_sensor last
 
struct { 
 
   uint8_t   leds [9] 
 
wants 
 
struct { 
 
   uint8_t   leds [9] 
 
state 
 
struct { 
 
   struct xrt_vec3   gyro 
 
   struct xrt_vec3   accel 
 
read 
 
uint16_t buttons
 
bool powered_on
 
bool in_vr_mode
 
enum u_logging_level log_level
 
struct { 
 
   union { 
 
      uint8_t   data [290] 
 
      struct { 
 
         uint32_t   _pad0 [4] 
 
         struct xrt_vec3   unknown0 
 
         uint32_t   _zero0 
 
         uint32_t   _pad2_vec3_zero [4] 
 
         uint32_t   _pad3_vec3_zero [4] 
 
         uint32_t   _pad4_vec3_zero [4] 
 
         struct xrt_vec3   accel_pos_y 
 
         uint32_t   _pad5 [1] 
 
         struct xrt_vec3   accel_neg_x 
 
         uint32_t   _pad6 [1] 
 
         struct xrt_vec3   accel_neg_y 
 
         uint32_t   _pad7 [1] 
 
         struct xrt_vec3   accel_pos_x 
 
         uint32_t   _pad8 [1] 
 
         struct xrt_vec3   accel_pos_z 
 
         uint32_t   _pad9 [1] 
 
         struct xrt_vec3   accel_neg_z 
 
         uint32_t   _pad10 [1] 
 
         struct xrt_vec3   gyro_neg_y 
 
         uint32_t   _pad11 [1] 
 
         struct xrt_vec3   gyro_pos_x 
 
         uint32_t   _pad12 [1] 
 
         struct xrt_vec3   gyro_neg_z 
 
         uint32_t   _pad13 [1] 
 
      }  
 
   }  
 
   int   last_packet 
 
calibration 
 
struct { 
 
   bool   last_frame 
 
   bool   control 
 
gui 
 
struct m_imu_3dof fusion
 
struct u_panotools_values vals
 For compute_distortion.
 
- Data Fields inherited from xrt_device
enum xrt_device_name name
 Enum identifier of the device.
 
enum xrt_device_type device_type
 
char str [256]
 A string describing the device.
 
char serial [256]
 A unique identifier. Persistent across configurations, if possible.
 
struct xrt_hmd_partshmd
 Null if this device does not interface with the users head.
 
struct xrt_tracking_origintracking_origin
 Always set, pointing to the tracking system for this device.
 
size_t binding_profile_count
 Number of bindings in xrt_device::binding_profiles.
 
struct xrt_binding_profilebinding_profiles
 
size_t input_count
 Number of inputs.
 
struct xrt_inputinputs
 Array of input structs.
 
size_t output_count
 Number of outputs.
 
struct xrt_outputoutputs
 Array of output structs.
 
struct xrt_device_supported supported
 What features/functions/things does this device supports?
 
xrt_result_t(* update_inputs )(struct xrt_device *xdev)
 Update any attached inputs.
 
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.
 
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.
 
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.
 
xrt_result_t(* get_face_calibration_state_android )(struct xrt_device *xdev, bool *out_face_is_calibrated)
 Gets the face tracking calibration state.
 
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.
 
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.
 
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.
 
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.
 
xrt_result_t(* set_output )(struct xrt_device *xdev, enum xrt_output_name name, const struct xrt_output_value *value)
 Set a output value.
 
xrt_result_t(* get_output_limits )(struct xrt_device *xdev, struct xrt_output_limits *limits)
 Gets limits of this devices outputs.
 
xrt_result_t(* get_presence )(struct xrt_device *xdev, bool *presence)
 Get current presence status of the device.
 
xrt_result_t(* 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.
 
xrt_result_t(* destroy_plane_detection_ext )(struct xrt_device *xdev, uint64_t plane_detection_id)
 Destroy internal resources associated with plane_detector_id.
 
xrt_result_t(* 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.
 
xrt_result_t(* 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.
 
xrt_result_t(* get_view_poses )(struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, enum xrt_view_type view_type, 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.
 
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.
 
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.
 
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.
 
bool(* is_form_factor_available )(struct xrt_device *xdev, enum xrt_form_factor form_factor)
 Check if given form factor is available or not.
 
xrt_result_t(* get_battery_status )(struct xrt_device *xdev, bool *out_present, bool *out_charging, float *out_charge)
 Get battery status information.
 
xrt_result_t(* get_brightness )(struct xrt_device *xdev, float *out_brightness)
 Get the current display brightness.
 
xrt_result_t(* set_brightness )(struct xrt_device *xdev, float brightness, bool relative)
 Set the display brightness.
 
xrt_result_t(* get_compositor_info )(struct xrt_device *xdev, const struct xrt_device_compositor_mode *mode, struct xrt_device_compositor_info *out_info)
 Gets the compositor info for a device for the given mode.
 
xrt_result_t(* begin_feature )(struct xrt_device *xdev, enum xrt_device_feature_type type)
 Enable the feature for this device.
 
xrt_result_t(* end_feature )(struct xrt_device *xdev, enum xrt_device_feature_type type)
 Disable the feature for this device.
 
void(* destroy )(struct xrt_device *xdev)
 Destroy device.
 

Additional Inherited Members

- Static Public Member Functions inherited from xrt_device
static XRT_NONNULL_ALL xrt_result_t xrt_device_update_inputs (struct xrt_device *xdev)
 Helper function for xrt_device::update_inputs.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_get_face_calibration_state_android (struct xrt_device *xdev, bool *out_face_is_calibrated)
 Helper function for xrt_device::get_face_calibration_state_android.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_reset_body_tracking_calibration_meta (struct xrt_device *xdev)
 Helper function for xrt_device::reset_body_tracking_calibration_meta.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_get_presence (struct xrt_device *xdev, bool *presence)
 Helper function for xrt_device::get_presence.
 
static XRT_NONNULL_ALL xrt_result_t 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_ext.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_destroy_plane_detection_ext (struct xrt_device *xdev, uint64_t plane_detection_id)
 Helper function for xrt_device::destroy_plane_detection_ext.
 
static XRT_NONNULL_ALL xrt_result_t 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_ext.
 
static XRT_NONNULL_ALL xrt_result_t 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_ext.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_get_view_poses (struct xrt_device *xdev, const struct xrt_vec3 *default_eye_relation, int64_t at_timestamp_ns, enum xrt_view_type view_type, 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL 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.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_get_brightness (struct xrt_device *xdev, float *out_brightness)
 Helper function for xrt_device::get_brightness.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_set_brightness (struct xrt_device *xdev, float brightness, bool relative)
 Helper function for xrt_device::set_brightness.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_get_compositor_info (struct xrt_device *xdev, const struct xrt_device_compositor_mode *mode, struct xrt_device_compositor_info *out_info)
 Helper function for xrt_device::get_compositor_info.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_begin_feature (struct xrt_device *xdev, enum xrt_device_feature_type type)
 Helper function for xrt_device::begin_feature.
 
static XRT_NONNULL_ALL xrt_result_t xrt_device_end_feature (struct xrt_device *xdev, enum xrt_device_feature_type type)
 Helper function for xrt_device::end_feature.
 
static XRT_NONNULL_ALL void xrt_device_destroy (struct xrt_device **xdev_ptr)
 Helper function for xrt_device::destroy.
 
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_ext.
 
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_ext.
 

Detailed Description

Private struct for the PSVR driver device.

Field Documentation

◆ hid_control

hid_device* psvr_device::hid_control

Owned and protected by the device_mutex.

◆ hid_sensor

hid_device* psvr_device::hid_sensor

Owned by the oth thread.

◆ last_sensor_time

timepoint_ns psvr_device::last_sensor_time

Only touched from the sensor thread.

◆ oth

struct os_thread_helper psvr_device::oth

Used to read sensor packets.

◆ vals

struct u_panotools_values psvr_device::vals

For compute_distortion.


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