From 3460437924a84bfb0dbce690ed986ec43fe27805 Mon Sep 17 00:00:00 2001 From: pi Date: Sat, 6 Jul 2024 16:57:07 +0200 Subject: [PATCH] fall back to serial-excluded matching for HMD finding this allows keeping settings working between different tracking methods (e.g. switching from Virtual Desktop to Oculus Link will not break detecting the same HMD) for some reason serial number changes between link methods... --- OpenVR-SpaceCalibrator/VRState.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/OpenVR-SpaceCalibrator/VRState.cpp b/OpenVR-SpaceCalibrator/VRState.cpp index 7ac51b2..f111f19 100644 --- a/OpenVR-SpaceCalibrator/VRState.cpp +++ b/OpenVR-SpaceCalibrator/VRState.cpp @@ -97,5 +97,12 @@ int VRState::FindDevice(const std::string& trackingSystem, const std::string& mo if (device.trackingSystem == trackingSystem && device.model == model && device.serial == serial) return device.id; } + // allow fallback excluding serial for HMD specifically + for (int i = 0; i < devices.size(); i++) { + const auto& device = devices[i]; + + if (device.trackingSystem == trackingSystem && device.model == model && device.deviceClass == vr::TrackedDeviceClass::TrackedDeviceClass_HMD) return device.id; + } + return -1; } \ No newline at end of file