Monado OpenXR Runtime
Loading...
Searching...
No Matches
rift_interface.h File Reference

Interface to Oculus Rift driver code. More...

Include dependency graph for rift_interface.h:

Go to the source code of this file.

Macros

#define OCULUS_VR_VID   0x2833
 
#define OCULUS_DK2_PID   0x0021
 
#define OCULUS_DK2_SENSOR_PID   0x0201
 
#define OCULUS_CV1_PID   0x0031
 
#define OCULUS_CV1_SENSOR_PID   0x0211
 
#define RIFT_DK2_PRODUCT_STRING   "Rift DK2"
 
#define RIFT_CV1_PRODUCT_STRING   "Rift CV1"
 

Enumerations

enum  rift_variant { RIFT_VARIANT_DK1 , RIFT_VARIANT_DK2 , RIFT_VARIANT_CV1 }
 

Functions

int rift_devices_create (struct os_hid_device *hmd_dev, struct os_hid_device *radio_dev, enum rift_variant variant, const char *serial_number, struct xrt_frame_context *xfctx, struct rift_hmd **out_hmd, struct xrt_device **out_xdevs)
 Creates Rift HMD and related devices.
 
bool rift_get_radio_id (struct rift_hmd *hmd, uint8_t out_radio_id[5])
 
bool rift_hmd_frame_timestamp_callback (void *user_data, timepoint_ns *timestamp, uint32_t pts)
 
int rift_add_to_constellation_tracker (struct rift_hmd *hmd, struct t_constellation_tracker *tracker)
 
struct t_timing_event_sourcerift_hmd_get_timing_event_source (struct rift_hmd *hmd)
 Gets the HMD's timing event source.
 

Detailed Description

Interface to Oculus Rift driver code.

Author
Beyley Cardellio ep1cm.nosp@m.1n10.nosp@m.n123@.nosp@m.gmai.nosp@m.l.com

Function Documentation

◆ rift_devices_create()

int rift_devices_create ( struct os_hid_device hmd_dev,
struct os_hid_device radio_dev,
enum rift_variant  variant,
const char *  serial_number,
struct xrt_frame_context xfctx,
struct rift_hmd **  out_hmd,
struct xrt_device **  out_xdevs 
)

Creates Rift HMD and related devices.

Parameters
hmd_devThe HID device for the HMD.
radio_devThe HID device for the radio, if present (CV1 only).
variantThe Rift variant (DK2 or CV1).
serial_numberThe serial number of the device.
xfctxThe frame context to use for the timing source functions. This is optional if you do not plan to use the Rift as a timing source.
out_hmdOutput pointer for the created rift_hmd struct.
out_xdevsOutput array for the created xrt_device pointers. The array must have space for at least 4 devices (HMD, left touch, right touch, remote).
Returns
The number of devices created, or a negative value on error.

References xrt_hmd_parts::blend_modes, xrt_device::compute_distortion, xrt_device::destroy, rift_hmd::device_mutex, xrt_view::display, xrt_hmd_parts::distortion, xrt_hmd_parts::fov, xrt_device::get_presence, xrt_device::get_tracked_pose, xrt_device::get_view_poses, xrt_device::get_visibility_mask, xrt_device::hmd, xrt_device::inputs, rift_hmd::last_remote_exposure_time_ns, m_clock_windowed_skew_tracker_alloc(), m_ff_f64_alloc(), m_ff_vec3_f32_alloc(), xrt_hmd_parts::models, xrt_device::name, xrt_hmd_parts::nominal_frame_interval_ns, os_nanosleep(), xrt_hmd_parts::preferred, t_constellation_tracker_device::push_constellation_tracker_sample, rift_hmd::radio_state, xrt_view::rot, xrt_hmd_parts::screens, xrt_device::serial, xrt_device::str, xrt_device::supported, time_s_to_ns(), u_device_noop_update_inputs(), u_distortion_mesh_fill_in_compute(), u_truncate_snprintf(), u_var_add_root(), xrt_device::update_inputs, xrt_view::viewport, xrt_hmd_parts::views, and XRT_INPUT_GENERIC_HEAD_POSE.

◆ rift_hmd_get_timing_event_source()

struct t_timing_event_source * rift_hmd_get_timing_event_source ( struct rift_hmd hmd)

Gets the HMD's timing event source.

Parameters
hmdThe rift_hmd to get the timing event source from.
Returns
The timing event source for the HMD, or NULL if the timing source is not initialized.