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

View file

@ -9,6 +9,7 @@
* @author nima01 <nima_zero_one@protonmail.com> * @author nima01 <nima_zero_one@protonmail.com>
* @author Jakob Bornecrantz <jakob@collabora.com> * @author Jakob Bornecrantz <jakob@collabora.com>
* @author Mateo de Mayo <mateo.demayo@collabora.com> * @author Mateo de Mayo <mateo.demayo@collabora.com>
* @author Nova King <technobaboo@proton.me>
* @ingroup drv_wmr * @ingroup drv_wmr
*/ */
@ -91,6 +92,8 @@ const struct wmr_headset_descriptor headset_map[] = {
wmr_hmd_deactivate_reverb, wmr_hmd_screen_enable_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, {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_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_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_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}, {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 Philipp Zabel <philipp.zabel@gmail.com>
* @author nima01 <nima_zero_one@protonmail.com> * @author nima01 <nima_zero_one@protonmail.com>
* @author Jakob Bornecrantz <jakob@collabora.com> * @author Jakob Bornecrantz <jakob@collabora.com>
* @author Nova King <technobaboo@proton.me>
* @ingroup drv_wmr * @ingroup drv_wmr
*/ */
@ -35,6 +36,7 @@ enum wmr_headset_type
WMR_HEADSET_GENERIC, WMR_HEADSET_GENERIC,
WMR_HEADSET_REVERB_G1, WMR_HEADSET_REVERB_G1,
WMR_HEADSET_REVERB_G2, WMR_HEADSET_REVERB_G2,
WMR_HEADSET_SAMSUNG_XE700X3AI,
WMR_HEADSET_SAMSUNG_800ZAA, WMR_HEADSET_SAMSUNG_800ZAA,
WMR_HEADSET_LENOVO_EXPLORER, WMR_HEADSET_LENOVO_EXPLORER,
WMR_HEADSET_MEDION_ERAZER_X1000, WMR_HEADSET_MEDION_ERAZER_X1000,

View file

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