The open source OpenXR runtime

a/bindings: Add WinMR system buttons

Currently there does not seem to be a way to access the SteamVR
dashboard with the Reverb G2 (controllers).

This adds a binding that allows to use the system/home button to
open the SteamVR dashboard.

Remark: In the OpenXR 1.0 spec there is no binding for
/input/system in XR_EXT_hp_mixed_reality_controller. However on Windows
this button would supposedly allow to (indirectly?) access the
SteamVR dashboard. (Which I can't confirm myself, as I don't have
access to a Windows OS right now.) To properly support system buttons in
OpenXR introduce XR_MNDX_system_buttons.

Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
Signed-off-by: Linus Lüssing <linus.luessing@c0d3.blue>
Signed-off-by: Jakob Bornecrantz <jakob@collabora.com>

authored by

Linus Lüssing
Jakob Bornecrantz
and committed by
Jakob Bornecrantz
59d3bab0 2c74c30a

+78 -3
+78 -3
src/xrt/auxiliary/bindings/bindings.json
··· 51 51 } 52 52 }, 53 53 54 + "/virtual_profiles/mndx/winmr_system_button": { 55 + "title": "WinMR system button", 56 + "type": "tracked_controller", 57 + "monado_device": "XRT_DEVICE_WMR_CONTROLLER", 58 + "extension": "XR_MNDX_system_buttons", 59 + "subaction_paths": [ 60 + "/user/hand/left", 61 + "/user/hand/right" 62 + ], 63 + "subpaths": { 64 + "/input/system": { 65 + "type": "button", 66 + "localized_name": "System", 67 + "components": ["click"], 68 + "monado_bindings": { 69 + "click": "XRT_INPUT_WMR_HOME_CLICK" 70 + } 71 + } 72 + } 73 + }, 74 + 75 + "/virtual_profiles/mndx/samsung_odyssey_system_button": { 76 + "title": "Samsung Odyssey system button", 77 + "type": "tracked_controller", 78 + "monado_device": "XRT_DEVICE_SAMSUNG_ODYSSEY_CONTROLLER", 79 + "extension": "XR_MNDX_system_buttons", 80 + "subaction_paths": [ 81 + "/user/hand/left", 82 + "/user/hand/right" 83 + ], 84 + "subpaths": { 85 + "/input/system": { 86 + "type": "button", 87 + "localized_name": "System", 88 + "components": ["click"], 89 + "monado_bindings": { 90 + "click": "XRT_INPUT_ODYSSEY_CONTROLLER_HOME_CLICK" 91 + } 92 + } 93 + } 94 + }, 95 + 96 + "/virtual_profiles/mndx/hp_reverb_g2_system_button": { 97 + "title": "HP Reverb G2 system button", 98 + "type": "tracked_controller", 99 + "monado_device": "XRT_DEVICE_HP_REVERB_G2_CONTROLLER", 100 + "extension": "XR_MNDX_system_buttons", 101 + "subaction_paths": [ 102 + "/user/hand/left", 103 + "/user/hand/right" 104 + ], 105 + "subpaths": { 106 + "/input/system": { 107 + "type": "button", 108 + "localized_name": "System", 109 + "components": ["click"], 110 + "monado_bindings": { 111 + "click": "XRT_INPUT_G2_CONTROLLER_HOME_CLICK" 112 + } 113 + } 114 + } 115 + }, 116 + 54 117 "/interaction_profiles/ext/hand_interaction_ext": { 55 118 "title": "Ext Hand Interaction", 56 119 "type": "tracked_controller", ··· 351 414 "type": "tracked_controller", 352 415 "steamvr_controllertype": "holographic_controller", 353 416 "monado_device": "XRT_DEVICE_WMR_CONTROLLER", 354 - "extended_by": ["ext/palm_pose", "ext/hand_interaction_poses"], 417 + "extended_by": [ 418 + "ext/palm_pose", 419 + "ext/hand_interaction_poses", 420 + "mndx/winmr_system_button" 421 + ], 355 422 "subaction_paths": [ 356 423 "/user/hand/left", 357 424 "/user/hand/right" ··· 941 1008 "type": "tracked_controller", 942 1009 "monado_device": "XRT_DEVICE_HP_REVERB_G2_CONTROLLER", 943 1010 "extension": "XR_EXT_hp_mixed_reality_controller", 944 - "extended_by": ["ext/palm_pose", "ext/hand_interaction_poses"], 1011 + "extended_by": [ 1012 + "ext/palm_pose", 1013 + "ext/hand_interaction_poses", 1014 + "mndx/hp_reverb_g2_system_button" 1015 + ], 945 1016 "subaction_paths": [ 946 1017 "/user/hand/left", 947 1018 "/user/hand/right" ··· 1052 1123 "type": "tracked_controller", 1053 1124 "monado_device": "XRT_DEVICE_SAMSUNG_ODYSSEY_CONTROLLER", 1054 1125 "extension": "XR_EXT_samsung_odyssey_controller", 1055 - "extended_by": ["ext/palm_pose", "ext/hand_interaction_poses"], 1126 + "extended_by": [ 1127 + "ext/palm_pose", 1128 + "ext/hand_interaction_poses", 1129 + "mndx/samsung_odyssey_system_button" 1130 + ], 1056 1131 "subaction_paths": [ 1057 1132 "/user/hand/left", 1058 1133 "/user/hand/right"