diff --git a/src/xrt/drivers/wmr/wmr_common.h b/src/xrt/drivers/wmr/wmr_common.h index 45e51806b..3f4fb20e6 100644 --- a/src/xrt/drivers/wmr/wmr_common.h +++ b/src/xrt/drivers/wmr/wmr_common.h @@ -35,6 +35,7 @@ extern "C" { #define WMR_CONTROLLER_RIGHT_PRODUCT_STRING "Motion controller - Right" #define HP_VID 0x03f0 +#define VR1000_PID 0x0367 #define REVERB_G1_PID 0x0c6a #define REVERB_G2_PID 0x0580 #define REVERB_G2_CONTROLLER_PID 0x066a /* On 0x045e Microsoft VID */ diff --git a/src/xrt/drivers/wmr/wmr_hmd.c b/src/xrt/drivers/wmr/wmr_hmd.c index 19f9b6afc..193abe36c 100644 --- a/src/xrt/drivers/wmr/wmr_hmd.c +++ b/src/xrt/drivers/wmr/wmr_hmd.c @@ -90,6 +90,7 @@ wmr_hmd_screen_enable_odyssey_plus(struct wmr_hmd *wh, bool enable); const struct wmr_headset_descriptor headset_map[] = { {WMR_HEADSET_GENERIC, NULL, "Unknown WMR HMD", NULL, NULL, NULL}, /* Catch-all for unknown headsets */ + {WMR_HEADSET_HP_VR1000, "HP Reverb VR Headset VR1000-1xxx", "HP VR1000", NULL, NULL, NULL}, /*! @todo init funcs */ {WMR_HEADSET_REVERB_G1, "HP Reverb VR Headset VR1000-2xxx", "HP Reverb", wmr_hmd_activate_reverb, wmr_hmd_deactivate_reverb, wmr_hmd_screen_enable_reverb}, {WMR_HEADSET_REVERB_G2, "HP Reverb Virtual Reality Headset G2", "HP Reverb G2", wmr_hmd_activate_reverb, diff --git a/src/xrt/drivers/wmr/wmr_hmd.h b/src/xrt/drivers/wmr/wmr_hmd.h index 90d2ac434..e18959dd2 100644 --- a/src/xrt/drivers/wmr/wmr_hmd.h +++ b/src/xrt/drivers/wmr/wmr_hmd.h @@ -34,6 +34,7 @@ extern "C" { enum wmr_headset_type { WMR_HEADSET_GENERIC, + WMR_HEADSET_HP_VR1000, WMR_HEADSET_REVERB_G1, WMR_HEADSET_REVERB_G2, WMR_HEADSET_SAMSUNG_XE700X3AI, diff --git a/src/xrt/drivers/wmr/wmr_prober.c b/src/xrt/drivers/wmr/wmr_prober.c index 7c7d26212..80940c154 100644 --- a/src/xrt/drivers/wmr/wmr_prober.c +++ b/src/xrt/drivers/wmr/wmr_prober.c @@ -56,14 +56,20 @@ check_and_get_interface(struct xrt_prober_device *device, { switch (device->vendor_id) { case HP_VID: - if (device->product_id != REVERB_G1_PID && device->product_id != REVERB_G2_PID) { + if (device->product_id != REVERB_G1_PID && device->product_id != REVERB_G2_PID && + device->product_id != VR1000_PID) { return false; } + if (device->product_id == REVERB_G1_PID) *out_hmd_type = WMR_HEADSET_REVERB_G1; - else + else if (device->product_id == REVERB_G2_CONTROLLER_PID) *out_hmd_type = WMR_HEADSET_REVERB_G2; + else if (device->product_id == VR1000_PID) + *out_hmd_type = WMR_HEADSET_HP_VR1000; + else + return false; *out_interface = 0; return true;