diff --git a/alvr/server_openvr/src/props.rs b/alvr/server_openvr/src/props.rs index 6858a8a61c..40eeee7799 100644 --- a/alvr/server_openvr/src/props.rs +++ b/alvr/server_openvr/src/props.rs @@ -124,6 +124,7 @@ fn serial_number(device_id: u64) -> String { HeadsetEmulationMode::Quest1 => "1PASH0X0X00000".into(), HeadsetEmulationMode::Quest2 => "1WMHH000X00000".into(), HeadsetEmulationMode::QuestPro => "230YC0XXXX00XX".into(), + HeadsetEmulationMode::Pico4 => "VRLINKHMDPICO4".into(), HeadsetEmulationMode::Vive => "HTCVive-001".into(), HeadsetEmulationMode::Custom { serial_number, .. } => serial_number.clone(), } @@ -291,6 +292,15 @@ pub extern "C" fn set_device_openvr_props(instance_ptr: *mut c_void, device_id: set_prop(DriverVersionString, "1.55.0"); set_oculus_common_headset_props(); } + HeadsetEmulationMode::Pico4 => { + set_prop(TrackingSystemNameString, "vrlink"); + set_prop(ModelNumberString, "PICO 4"); + set_prop(ManufacturerNameString, "ByteDance"); + set_prop(RenderModelNameString, "generic_hmd"); + set_prop(RegisteredDeviceTypeString, "pico"); + set_prop(DriverVersionString, ""); + set_icons("{vrlink}/icons/headset_pico4"); + } HeadsetEmulationMode::Vive => { set_prop(TrackingSystemNameString, "Vive Tracker"); set_prop(ModelNumberString, "ALVR driver server"); diff --git a/alvr/session/src/settings.rs b/alvr/session/src/settings.rs index 95247e68e7..95471fa693 100644 --- a/alvr/session/src/settings.rs +++ b/alvr/session/src/settings.rs @@ -872,6 +872,8 @@ pub enum HeadsetEmulationMode { Quest2, #[schema(strings(display_name = "Quest Pro"))] QuestPro, + #[schema(strings(display_name = "Pico 4"))] + Pico4, Vive, Custom { serial_number: String,