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... | |
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... | |
void(* | 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 void | 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... | |
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... | |
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.