MCPcopy Create free account
hub / github.com/LibreVR/Revive / SetVibration

Method SetVibration

ReviveXR/InputManager.cpp:630–658  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

628}
629
630ovrResult InputManager::OculusTouch::SetVibration(XrSession session, ovrControllerType controllerType, float frequency, float amplitude)
631{
632 std::vector<XrPath> subPaths;
633 if (controllerType & ovrControllerType_LTouch)
634 subPaths.push_back(s_SubActionPaths[ovrHand_Left]);
635 if (controllerType & ovrControllerType_RTouch)
636 subPaths.push_back(s_SubActionPaths[ovrHand_Right]);
637
638 for (XrPath path : subPaths)
639 {
640 XrHapticActionInfo info = XR_TYPE(HAPTIC_ACTION_INFO);
641 info.action = m_Vibration;
642 info.subactionPath = path;
643 if (frequency > 0.0f)
644 {
645 XrHapticVibration vibration = XR_TYPE(HAPTIC_VIBRATION);
646 vibration.frequency = XR_FREQUENCY_UNSPECIFIED;
647 vibration.amplitude = amplitude;
648 vibration.duration = Runtime::Get().UseHack(Runtime::HACK_MIN_HAPTIC_DURATION) ?
649 XR_MIN_HAPTIC_DURATION : MAX_VIBRATION_DURATION;
650 CHK_XR(xrApplyHapticFeedback(session, &info, (XrHapticBaseHeader*)&vibration));
651 }
652 else
653 {
654 CHK_XR(xrStopHapticFeedback(session, &info));
655 }
656 }
657 return ovrSuccess;
658}
659
660void InputManager::OculusTouch::SubmitVibration(ovrControllerType controllerType, const ovrHapticsBuffer* buffer)
661{

Callers 1

Calls 1

UseHackMethod · 0.45

Tested by

no test coverage detected