diff --git a/src/xrt/state_trackers/oxr/oxr_session.c b/src/xrt/state_trackers/oxr/oxr_session.c index 68743cf80..ecae4e6c7 100644 --- a/src/xrt/state_trackers/oxr/oxr_session.c +++ b/src/xrt/state_trackers/oxr/oxr_session.c @@ -1009,6 +1009,16 @@ oxr_session_hand_joints(struct oxr_logger *log, return XR_SUCCESS; } +static enum xrt_output_name +xr_hand_to_force_feedback_output(XrHandEXT hand) +{ + switch (hand) { + case XR_HAND_LEFT_EXT: return XRT_OUTPUT_NAME_FORCE_FEEDBACK_LEFT; + case XR_HAND_RIGHT_EXT: return XRT_OUTPUT_NAME_FORCE_FEEDBACK_RIGHT; + default: assert(false); + } +} + XrResult oxr_session_apply_force_feedback(struct oxr_logger *log, struct oxr_hand_tracker *hand_tracker, @@ -1024,10 +1034,7 @@ oxr_session_apply_force_feedback(struct oxr_logger *log, result.force_feedback.force_feedback[i].value = locations->locations[i].value; } - xrt_device_set_output(xdev, - hand_tracker->hand == XRT_HAND_LEFT ? XRT_OUTPUT_NAME_FORCE_FEEDBACK_LEFT - : XRT_OUTPUT_NAME_FORCE_FEEDBACK_RIGHT, - &result); + xrt_device_set_output(xdev, xr_hand_to_force_feedback_output(hand_tracker->hand), &result); return XR_SUCCESS; }