Monado OpenXR Runtime
|
Windows Mixed Reality driver. More...
Files | |
file | wmr_bt_controller.c |
Driver for Bluetooth based WMR Controller. | |
file | wmr_bt_controller.h |
Driver interface for Bluetooth based WMR motion controllers. | |
file | wmr_camera.c |
WMR camera interface. | |
file | wmr_camera.h |
Interface to read WMR cameras. | |
file | wmr_common.h |
Defines and constants related to WMR driver code. | |
file | wmr_config.c |
Driver code to read WMR config blocks. | |
file | wmr_config.h |
WMR and MS HoloLens configuration structures. | |
file | wmr_controller.c |
Driver for WMR Controllers. | |
file | wmr_controller.h |
Implementation of Original & HP WMR controllers. | |
file | wmr_controller_base.c |
Driver for WMR Controller. | |
file | wmr_controller_base.h |
Common implementation for WMR controllers, handling shared behaviour such as communication, configuration reading, IMU integration. | |
file | wmr_controller_hp.c |
Driver for WMR Controllers. | |
file | wmr_controller_og.c |
Driver for WMR Controllers. | |
file | wmr_controller_protocol.c |
WMR Motion Controller protocol helpers implementation. | |
file | wmr_controller_protocol.h |
WMR Motion Controller protocol constants, structures and helpers. | |
file | wmr_hmd.c |
Driver code for a WMR HMD. | |
file | wmr_hmd.h |
Interface to the WMR HMD driver code. | |
file | wmr_hmd_controller.c |
Implementation of tunnelled controller connection, that translates messages passing via an HP G2 or Sasmung Odyssey+ HMD. | |
file | wmr_hmd_controller.h |
Implementation of tunnelled controller connection, that translates messages passing via an HP G2 or Sasmung Odyssey+ HMD. | |
file | wmr_interface.h |
Interface to the WMR driver. | |
file | wmr_prober.c |
WMR prober code. | |
file | wmr_protocol.c |
WMR and MS HoloLens protocol helpers implementation. | |
file | wmr_protocol.h |
WMR and MS HoloLens protocol constants, structures and helpers header. | |
file | wmr_source.c |
WMR camera and IMU data source. | |
file | wmr_source.h |
Interface for WMR data sources. | |
Data Structures | |
struct | wmr_bt_connection |
A connection to a Bluetooth connected WMR Controller device. More... | |
struct | wmr_controller_base |
Common base for all WMR controllers. More... | |
struct | wmr_controller_fw_cmd |
struct | wmr_controller_fw_cmd_response |
struct | wmr_bt_controllers_search_results |
Results from searching for host attached Bluetooth controllers. More... | |
struct | wmr_companion_search_results |
Results from searching for a companion device. More... | |
struct | wmr_headset_search_results |
Results from searching for a headset. More... | |
struct | hololens_sensors_packet |
struct | wmr_config_header |
Enumerations | |
enum | wmr_headset_type { WMR_HEADSET_GENERIC , WMR_HEADSET_HP_VR1000 , WMR_HEADSET_REVERB_G1 , WMR_HEADSET_REVERB_G2 , WMR_HEADSET_SAMSUNG_XE700X3AI , WMR_HEADSET_SAMSUNG_800ZAA , WMR_HEADSET_LENOVO_EXPLORER , WMR_HEADSET_MEDION_ERAZER_X1000 , WMR_HEADSET_DELL_VISOR } |
Headset type, used to select different control and init/shutdown procedures. More... | |
enum | wmr_bt_control_msg { WMR_BT_CONTROL_MSG_ONLINE_STATUS = 0x04 , WMR_BT_CONTROL_MSG_PAIR = 0x05 , WMR_BT_CONTROL_MSG_UNPAIR = 0x06 , WMR_BT_CONTROL_MSG_PAIRING_STATUS = 0x08 , WMR_BT_CONTROL_MSG_CMD_STATUS = 0x09 } |
Functions | |
void | wmr_find_bt_controller_pair (struct xrt_prober *xp, struct xrt_prober_device **xpdevs, size_t xpdev_count, enum u_logging_level log_level, struct wmr_bt_controllers_search_results *out_wbtcsr) |
Search for a left and right pair of Windows Mixed Reality controllers, groups them by type (Classic/Odyssey/G2). More... | |
void | wmr_find_companion_device (struct xrt_prober *xp, struct xrt_prober_device **xpdevs, size_t xpdev_count, enum u_logging_level log_level, struct xrt_prober_device *xpdev_holo, struct wmr_companion_search_results *out_wcsr) |
Searches for the the list of xpdevs for the companion device of a holo lens device. More... | |
void | wmr_find_headset (struct xrt_prober *xp, struct xrt_prober_device **xpdevs, size_t xpdev_count, enum u_logging_level log_level, struct wmr_headset_search_results *out_whsr) |
Find a headsets. More... | |
xrt_result_t | wmr_create_headset (struct xrt_prober *xp, struct xrt_prober_device *xpdev_holo, struct xrt_prober_device *xpdev_companion, enum wmr_headset_type type, enum u_logging_level log_level, struct xrt_device **out_hmd, struct xrt_device **out_left, struct xrt_device **out_right, struct xrt_device **out_ht_left, struct xrt_device **out_ht_right) |
Creates a WMR headset with the given devices and of headset type. More... | |
xrt_result_t | wmr_create_bt_controller (struct xrt_prober *xp, struct xrt_prober_device *xpdev, enum u_logging_level log_level, struct xrt_device **out_xdev) |
Creates a WMR BT controller device. More... | |
void | vec3_from_hololens_accel (int32_t sample[3][4], int i, struct xrt_vec3 *out_vec) |
void | vec3_from_hololens_gyro (int16_t sample[3][32], int i, struct xrt_vec3 *out_vec) |
static uint8_t | read8 (const unsigned char **buffer) |
static int16_t | read16 (const unsigned char **buffer) |
static int32_t | read24 (const unsigned char **buffer) |
static int32_t | read32 (const unsigned char **buffer) |
static uint64_t | read64 (const unsigned char **buffer) |
struct xrt_fs * | wmr_source_create (struct xrt_frame_context *xfctx, struct xrt_prober_device *dev_holo, struct wmr_hmd_config cfg) |
Create and return the data source as a xrt_fs ready for data streaming. More... | |
void | wmr_source_push_imu_packet (struct xrt_fs *xfs, timepoint_ns t, struct xrt_vec3 accel, struct xrt_vec3 gyro) |
Variables | |
static const unsigned char | hololens_sensors_imu_on [64] = {0x02, 0x07} |
Windows Mixed Reality driver.
WMR video/IMU data sources.
WMR and MS HoloLens Sensors protocol helpers.
WMR and MS HoloLens Sensors protocol constants and structures.
WMR Motion Controller protocol constant and structures.
Defines for the WMR driver.
#define WMR_CONTROLLER_FW_CMD_INIT | ( | p, | |
c, | |||
b, | |||
a | |||
) |
#include <drivers/wmr/wmr_controller_protocol.h>
enum wmr_headset_type |
#include <drivers/wmr/wmr_common.h>
Headset type, used to select different control and init/shutdown procedures.
xrt_result_t wmr_create_bt_controller | ( | struct xrt_prober * | xp, |
struct xrt_prober_device * | xpdev, | ||
enum u_logging_level | log_level, | ||
struct xrt_device ** | out_xdev | ||
) |
#include <drivers/wmr/wmr_interface.h>
Creates a WMR BT controller device.
xrt_result_t wmr_create_headset | ( | struct xrt_prober * | xp, |
struct xrt_prober_device * | xpdev_holo, | ||
struct xrt_prober_device * | xpdev_companion, | ||
enum wmr_headset_type | type, | ||
enum u_logging_level | log_level, | ||
struct xrt_device ** | out_hmd, | ||
struct xrt_device ** | out_left, | ||
struct xrt_device ** | out_right, | ||
struct xrt_device ** | out_ht_left, | ||
struct xrt_device ** | out_ht_right | ||
) |
#include <drivers/wmr/wmr_interface.h>
Creates a WMR headset with the given devices and of headset type.
void wmr_find_bt_controller_pair | ( | struct xrt_prober * | xp, |
struct xrt_prober_device ** | xpdevs, | ||
size_t | xpdev_count, | ||
enum u_logging_level | log_level, | ||
struct wmr_bt_controllers_search_results * | out_wbtcsr | ||
) |
#include <drivers/wmr/wmr_interface.h>
Search for a left and right pair of Windows Mixed Reality controllers, groups them by type (Classic/Odyssey/G2).
Preferring Odyssey over Classic. Will mix types in order to get a complete left and right pair if need be, but prefers matching types first. G2 currently not supported.
void wmr_find_companion_device | ( | struct xrt_prober * | xp, |
struct xrt_prober_device ** | xpdevs, | ||
size_t | xpdev_count, | ||
enum u_logging_level | log_level, | ||
struct xrt_prober_device * | xpdev_holo, | ||
struct wmr_companion_search_results * | out_wcsr | ||
) |
#include <drivers/wmr/wmr_interface.h>
Searches for the the list of xpdevs for the companion device of a holo lens device.
void wmr_find_headset | ( | struct xrt_prober * | xp, |
struct xrt_prober_device ** | xpdevs, | ||
size_t | xpdev_count, | ||
enum u_logging_level | log_level, | ||
struct wmr_headset_search_results * | out_whsr | ||
) |
#include <drivers/wmr/wmr_interface.h>
Find a headsets.
struct xrt_fs* wmr_source_create | ( | struct xrt_frame_context * | xfctx, |
struct xrt_prober_device * | dev_holo, | ||
struct wmr_hmd_config | cfg | ||
) |
#include <drivers/wmr/wmr_source.h>
Create and return the data source as a xrt_fs ready for data streaming.
Create and return the data source as a xrt_fs ready for data streaming.
void wmr_source_push_imu_packet | ( | struct xrt_fs * | xfs, |
timepoint_ns | t, | ||
struct xrt_vec3 | accel, | ||
struct xrt_vec3 | gyro | ||
) |
#include <drivers/wmr/wmr_source.h>