d/wmr: Add initial support for original Odyssey HMD

This commit is contained in:
Nova 2022-07-24 21:15:27 -04:00 committed by Jakob Bornecrantz
parent ffb0346ba4
commit e141aa2d55
4 changed files with 14 additions and 3 deletions

View file

@ -6,6 +6,7 @@
* @brief Defines and constants related to WMR driver code.
* @author Nis Madsen <nima_zero_one@protonmail.com>
* @author Jakob Bornecrantz <jakob@collabora.com>
* @author Nova King <technobaboo@proton.me>
* @ingroup drv_wmr
*/
@ -42,7 +43,8 @@ extern "C" {
#define EXPLORER_PID 0xb801
#define SAMSUNG_VID 0x04e8
#define ODYSSEY_PID 0x7312
#define ODYSSEY_PID 0x7310
#define ODYSSEY_PLUS_PID 0x7312
#define ODYSSEY_CONTROLLER_PID 0x065d
#define QUANTA_VID 0x0408 /* Medion? */

View file

@ -9,6 +9,7 @@
* @author nima01 <nima_zero_one@protonmail.com>
* @author Jakob Bornecrantz <jakob@collabora.com>
* @author Mateo de Mayo <mateo.demayo@collabora.com>
* @author Nova King <technobaboo@proton.me>
* @ingroup drv_wmr
*/
@ -91,6 +92,8 @@ const struct wmr_headset_descriptor headset_map[] = {
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,
wmr_hmd_deactivate_reverb, wmr_hmd_screen_enable_reverb},
{WMR_HEADSET_SAMSUNG_XE700X3AI, "Samsung Windows Mixed Reality XE700X3AI", "Samsung Odyssey",
wmr_hmd_activate_odyssey_plus, wmr_hmd_deactivate_odyssey_plus, wmr_hmd_screen_enable_odyssey_plus},
{WMR_HEADSET_SAMSUNG_800ZAA, "Samsung Windows Mixed Reality 800ZAA", "Samsung Odyssey+",
wmr_hmd_activate_odyssey_plus, wmr_hmd_deactivate_odyssey_plus, wmr_hmd_screen_enable_odyssey_plus},
{WMR_HEADSET_LENOVO_EXPLORER, "Lenovo VR-2511N", "Lenovo Explorer", NULL, NULL, NULL},

View file

@ -8,6 +8,7 @@
* @author Philipp Zabel <philipp.zabel@gmail.com>
* @author nima01 <nima_zero_one@protonmail.com>
* @author Jakob Bornecrantz <jakob@collabora.com>
* @author Nova King <technobaboo@proton.me>
* @ingroup drv_wmr
*/
@ -35,6 +36,7 @@ enum wmr_headset_type
WMR_HEADSET_GENERIC,
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,

View file

@ -6,6 +6,7 @@
* @brief WMR prober code.
* @author Nis Madsen <nima_zero_one@protonmail.com>
* @author Jakob Bornecrantz <jakob@collabora.com>
* @author Nova King <technobaboo@proton.me>
* @ingroup drv_wmr
*/
@ -74,11 +75,14 @@ check_and_get_interface(struct xrt_prober_device *device, enum wmr_headset_type
return true;
case SAMSUNG_VID:
if (device->product_id != ODYSSEY_PID) {
if (device->product_id != ODYSSEY_PID && device->product_id != ODYSSEY_PLUS_PID) {
return false;
}
*out_hmd_type = WMR_HEADSET_SAMSUNG_800ZAA;
if (device->product_id == ODYSSEY_PID)
*out_hmd_type = WMR_HEADSET_SAMSUNG_XE700X3AI;
else
*out_hmd_type = WMR_HEADSET_SAMSUNG_800ZAA;
*out_interface = 0;
return true;