The open source OpenXR runtime
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

d/hydra: Add touch and simple controller bindings

Part-of: <https://gitlab.freedesktop.org/monado/monado/-/merge_requests/2469>

+43
+43
src/xrt/drivers/hydra/hydra_driver.c
··· 571 571 (hd->base.inputs[HYDRA_INDEX_##NAME].name = XRT_INPUT_HYDRA_##NAME); \ 572 572 } while (0) 573 573 574 + static struct xrt_binding_input_pair touch_inputs[19] = { 575 + {XRT_INPUT_TOUCH_X_CLICK, XRT_INPUT_HYDRA_2_CLICK}, 576 + {XRT_INPUT_TOUCH_X_TOUCH, XRT_INPUT_HYDRA_2_CLICK}, 577 + {XRT_INPUT_TOUCH_Y_CLICK, XRT_INPUT_HYDRA_4_CLICK}, 578 + {XRT_INPUT_TOUCH_Y_TOUCH, XRT_INPUT_HYDRA_4_CLICK}, 579 + {XRT_INPUT_TOUCH_MENU_CLICK, XRT_INPUT_HYDRA_MIDDLE_CLICK}, 580 + {XRT_INPUT_TOUCH_A_CLICK, XRT_INPUT_HYDRA_1_CLICK}, 581 + {XRT_INPUT_TOUCH_A_TOUCH, XRT_INPUT_HYDRA_1_CLICK}, 582 + {XRT_INPUT_TOUCH_B_CLICK, XRT_INPUT_HYDRA_3_CLICK}, 583 + {XRT_INPUT_TOUCH_B_TOUCH, XRT_INPUT_HYDRA_3_CLICK}, 584 + {XRT_INPUT_TOUCH_SYSTEM_CLICK, XRT_INPUT_HYDRA_MIDDLE_CLICK}, 585 + {XRT_INPUT_TOUCH_SQUEEZE_VALUE, XRT_INPUT_HYDRA_BUMPER_CLICK}, 586 + {XRT_INPUT_TOUCH_TRIGGER_TOUCH, XRT_INPUT_HYDRA_TRIGGER_VALUE}, 587 + {XRT_INPUT_TOUCH_TRIGGER_VALUE, XRT_INPUT_HYDRA_TRIGGER_VALUE}, 588 + {XRT_INPUT_TOUCH_THUMBSTICK_CLICK, XRT_INPUT_HYDRA_JOYSTICK_CLICK}, 589 + {XRT_INPUT_TOUCH_THUMBSTICK, XRT_INPUT_HYDRA_JOYSTICK_VALUE}, 590 + {XRT_INPUT_TOUCH_GRIP_POSE, XRT_INPUT_HYDRA_POSE}, 591 + {XRT_INPUT_TOUCH_AIM_POSE, XRT_INPUT_HYDRA_POSE}, 592 + }; 593 + 594 + static struct xrt_binding_input_pair simple_inputs[4] = { 595 + {XRT_INPUT_SIMPLE_SELECT_CLICK, XRT_INPUT_HYDRA_TRIGGER_VALUE}, 596 + {XRT_INPUT_SIMPLE_MENU_CLICK, XRT_INPUT_HYDRA_MIDDLE_CLICK}, 597 + {XRT_INPUT_SIMPLE_GRIP_POSE, XRT_INPUT_HYDRA_POSE}, 598 + {XRT_INPUT_SIMPLE_AIM_POSE, XRT_INPUT_HYDRA_POSE}, 599 + }; 600 + 601 + static struct xrt_binding_profile binding_profiles[2] = { 602 + { 603 + .name = XRT_DEVICE_TOUCH_CONTROLLER, 604 + .inputs = touch_inputs, 605 + .input_count = ARRAY_SIZE(touch_inputs), 606 + }, 607 + { 608 + .name = XRT_DEVICE_SIMPLE_CONTROLLER, 609 + .inputs = simple_inputs, 610 + .input_count = ARRAY_SIZE(simple_inputs), 611 + }, 612 + }; 613 + 574 614 int 575 615 hydra_found(struct xrt_prober *xp, 576 616 struct xrt_prober_device **devices, ··· 642 682 SET_INPUT(POSE); 643 683 hd->index = i; 644 684 hd->sys = hs; 685 + 686 + hd->base.binding_profiles = binding_profiles; 687 + hd->base.binding_profile_count = ARRAY_SIZE(binding_profiles); 645 688 646 689 out_xdevs[i] = &(hd->base); 647 690 }