diff --git a/app/src/openxr/cpp/OpenXRInputMappings.h b/app/src/openxr/cpp/OpenXRInputMappings.h index 609fca70cb..79b990cbfe 100644 --- a/app/src/openxr/cpp/OpenXRInputMappings.h +++ b/app/src/openxr/cpp/OpenXRInputMappings.h @@ -47,7 +47,6 @@ namespace crow { constexpr const char* kPathActionReady { "ready_ext" }; constexpr const char* kInteractionProfileHandInteraction { "/interaction_profiles/ext/hand_interaction_ext" }; constexpr const char* kInteractionProfileMSFTHandInteraction { "/interaction_profiles/microsoft/hand_interaction" }; - constexpr const char* kInteractionProfileKHRSimple { "/interaction_profiles/khr/simple_controller" }; // OpenXR Button List enum class OpenXRButtonType { @@ -240,31 +239,6 @@ namespace crow { }, }; - // Pico controller: this definition was created for the Pico 4, but the Neo 3 will likely also be compatible - const OpenXRInputMapping Pico4xOld { - "/interaction_profiles/pico/neo3_controller", - "vr_controller_pico4_left.obj", - "vr_controller_pico4_right.obj", - device::Pico4x, - std::vector { "pico-4", "generic-trigger-squeeze-thumbstick" }, - std::vector { - { OpenXRButtonType::Trigger, kPathTrigger, OpenXRButtonFlags::ValueTouch, OpenXRHandFlags::Both }, - { OpenXRButtonType::Squeeze, kPathSqueeze, OpenXRButtonFlags::Value, OpenXRHandFlags::Both }, - { OpenXRButtonType::Thumbstick, kPathThumbstick, OpenXRButtonFlags::ClickTouch, OpenXRHandFlags::Both }, - { OpenXRButtonType::ButtonX, kPathButtonX, OpenXRButtonFlags::ClickTouch, OpenXRHandFlags::Left }, - { OpenXRButtonType::ButtonY, kPathButtonY, OpenXRButtonFlags::ClickTouch, OpenXRHandFlags::Left, }, - { OpenXRButtonType::ButtonA, kPathButtonA, OpenXRButtonFlags::ClickTouch, OpenXRHandFlags::Right }, - { OpenXRButtonType::ButtonB, kPathButtonB, OpenXRButtonFlags::ClickTouch, OpenXRHandFlags::Right }, - { OpenXRButtonType::Back, kPathBack, OpenXRButtonFlags::Click, OpenXRHandFlags::Left, ControllerDelegate::Button::BUTTON_APP, true } - }, - std::vector { - { OpenXRAxisType::Thumbstick, kPathThumbstick, OpenXRHandFlags::Both }, - }, - std::vector { - { kPathHaptic, OpenXRHandFlags::Both }, - }, - }; - const OpenXRInputMapping Pico4x { "/interaction_profiles/bytedance/pico4_controller", "vr_controller_pico4_left.obj", @@ -290,7 +264,7 @@ namespace crow { }; const OpenXRInputMapping Pico4U { - "/interaction_profiles/bytedance/pico4_controller", + "/interaction_profiles/bytedance/pico4s_controller", "vr_controller_pico4u_left.obj", "vr_controller_pico4u_right.obj", device::Pico4U, @@ -461,7 +435,7 @@ namespace crow { // Default fallback: https://github.com/immersive-web/webxr-input-profiles/blob/master/packages/registry/profiles/generic/generic-button.json const OpenXRInputMapping KHRSimple { - kInteractionProfileKHRSimple, + "/interaction_profiles/khr/simple_controller", "generic-trigger.obj", "generic-trigger.obj", device::UnknownType, @@ -476,8 +450,8 @@ namespace crow { }, }; - const std::array OpenXRInputMappings { - OculusTouch, OculusTouch2, MetaQuestTouchPro, Pico4U, Pico4x, Pico4xOld, PicoNeo3, Hvr6DOF, Hvr3DOF, LenovoVRX, MagicLeap2, MetaTouchPlus, HandInteraction, MSFTHandInteraction, KHRSimple + const std::array OpenXRInputMappings { + OculusTouch, OculusTouch2, MetaQuestTouchPro, Pico4U, Pico4x, PicoNeo3, Hvr6DOF, Hvr3DOF, LenovoVRX, MagicLeap2, MetaTouchPlus, HandInteraction, MSFTHandInteraction, KHRSimple }; } // namespace crow diff --git a/app/src/openxr/cpp/OpenXRInputSource.cpp b/app/src/openxr/cpp/OpenXRInputSource.cpp index 19afff9eb8..e34aae9d31 100644 --- a/app/src/openxr/cpp/OpenXRInputSource.cpp +++ b/app/src/openxr/cpp/OpenXRInputSource.cpp @@ -81,12 +81,6 @@ XrResult OpenXRInputSource::Initialize() for (auto& mapping: OpenXRInputMappings) { // Always populate default/fall-back profiles if (mapping.controllerType == device::UnknownType) { -#if PICOXR - // Pico4U runtime incorrectly prioritize the Khronos simple controller over Pico's - // specific one. Workaround that bad behaviour by skipping the simple controller profile. - if (mDeviceType == device::Pico4U && !strcmp(mapping.path, kInteractionProfileKHRSimple)) - continue; -#endif mMappings.push_back(mapping); // Use the system's deviceType instead to ensure we get a valid VRController on WebXR sessions mMappings.back().controllerType = mDeviceType;