Monado OpenXR Runtime
wmr_prober.c File Reference

WMR prober code. More...

#include "xrt/xrt_config_drivers.h"
#include "xrt/xrt_prober.h"
#include "os/os_hid.h"
#include "util/u_misc.h"
#include "util/u_debug.h"
#include "util/u_prober.h"
#include "util/u_logging.h"
#include "util/u_trace_marker.h"
#include "wmr_interface.h"
#include "wmr_hmd.h"
#include "wmr_bt_controller.h"
#include "wmr_common.h"
#include <stdio.h>
#include <stdlib.h>
#include <wchar.h>
Include dependency graph for wmr_prober.c:

Functions

static bool is_left (const char *product_name, size_t size)
 
static bool is_right (const char *product_name, size_t size)
 
static void classify_and_assign_controller (struct xrt_prober *xp, struct xrt_prober_device *xpd, struct wmr_bt_controllers_search_results *ctrls)
 
static bool check_and_get_interface (struct xrt_prober_device *device, enum u_logging_level log_level, enum wmr_headset_type *out_hmd_type)
 
static bool find_companion_device (struct xrt_prober *xp, struct xrt_prober_device **devices, size_t device_count, enum u_logging_level log_level, enum wmr_headset_type *out_hmd_type, struct xrt_prober_device **out_device)
 
void wmr_find_bt_controller_pair (struct xrt_prober *xp, struct xrt_prober_device **devices, size_t device_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...
 

Detailed Description