d/wmr: Add basic support for Samsung Odyssey+

Display start-up sequence still probably needed.
This commit is contained in:
Jakob Bornecrantz 2021-11-12 13:53:40 +00:00
parent 817e32d083
commit 79ec1bd695
2 changed files with 19 additions and 0 deletions

View file

@ -37,6 +37,9 @@ extern "C" {
#define LENOVO_VID 0x17ef
#define EXPLORER_PID 0xb801
#define SAMSUNG_VID 0x04e8
#define ODYSSEY_PID 0x7312
/*!
* @}
*/

View file

@ -69,6 +69,21 @@ check_and_get_interface_lenovo(struct xrt_prober_device *device,
return true;
}
static bool
check_and_get_interface_samsung(struct xrt_prober_device *device,
enum wmr_headset_type *out_hmd_type,
int *out_interface)
{
if (device->product_id != ODYSSEY_PID) {
return false;
}
*out_hmd_type = WMR_HEADSET_SAMSUNG_800ZAA;
*out_interface = 0;
return true;
}
static bool
find_control_device(struct xrt_prober *xp,
struct xrt_prober_device **devices,
@ -91,6 +106,7 @@ find_control_device(struct xrt_prober *xp,
switch (devices[i]->vendor_id) {
case HP_VID: match = check_and_get_interface_hp(devices[i], out_hmd_type, &interface); break;
case LENOVO_VID: match = check_and_get_interface_lenovo(devices[i], out_hmd_type, &interface); break;
case SAMSUNG_VID: match = check_and_get_interface_samsung(devices[i], out_hmd_type, &interface); break;
default: break;
}