xrt: Add HP Reverb G2 Controller

This commit is contained in:
Jakob Bornecrantz 2023-01-24 13:26:36 +00:00
parent ed1f18bb74
commit 958911fd0b
2 changed files with 125 additions and 0 deletions
src/xrt
auxiliary/bindings
include/xrt

View file

@ -819,6 +819,117 @@
}
},
"/interaction_profiles/hp/mixed_reality_controller": {
"title": "HP Reverb G2 Controller",
"type": "tracked_controller",
"monado_device": "XRT_DEVICE_HP_REVERB_G2_CONTROLLER",
"extension": "XR_EXT_hp_mixed_reality_controller",
"subaction_paths": [
"/user/hand/left",
"/user/hand/right"
],
"subpaths": {
"/input/x": {
"type": "button",
"localized_name": "X",
"components": ["click"],
"side": "left",
"monado_bindings": {
"click": "XRT_INPUT_G2_CONTROLLER_X_CLICK"
}
},
"/input/y": {
"type": "button",
"localized_name": "Y",
"components": ["click"],
"side": "left",
"monado_bindings": {
"click": "XRT_INPUT_G2_CONTROLLER_Y_CLICK"
}
},
"/input/a": {
"type": "button",
"localized_name": "A",
"components": ["click"],
"side": "right",
"monado_bindings": {
"click": "XRT_INPUT_G2_CONTROLLER_A_CLICK"
}
},
"/input/b": {
"type": "button",
"localized_name": "B",
"components": ["click"],
"side": "right",
"monado_bindings": {
"click": "XRT_INPUT_G2_CONTROLLER_B_CLICK"
}
},
"/input/menu": {
"type": "button",
"localized_name": "Menu",
"components": ["click"],
"side": "left",
"monado_bindings": {
"click": "XRT_INPUT_G2_CONTROLLER_MENU_CLICK"
}
},
"/input/squeeze": {
"type": "trigger",
"localized_name": "Squeeze",
"components": ["value"],
"monado_bindings": {
"value": "XRT_INPUT_G2_CONTROLLER_SQUEEZE_VALUE"
}
},
"/input/trigger": {
"type": "trigger",
"localized_name": "Trigger",
"components": ["value"],
"monado_bindings": {
"value": "XRT_INPUT_G2_CONTROLLER_TRIGGER_VALUE"
}
},
"/input/thumbstick": {
"type": "joystick",
"localized_name": "Thumbstick",
"components": ["click", "position"],
"dpad_emulation": {
"position": "position",
"center": false
},
"monado_bindings": {
"click": "XRT_INPUT_G2_CONTROLLER_THUMBSTICK_CLICK",
"position": "XRT_INPUT_G2_CONTROLLER_THUMBSTICK"
}
},
"/input/grip": {
"type": "pose",
"localized_name": "Grip",
"components": ["pose"],
"monado_bindings": {
"pose": "XRT_INPUT_G2_CONTROLLER_GRIP_POSE"
}
},
"/input/aim": {
"type": "pose",
"localized_name": "Aim",
"components": ["pose"],
"monado_bindings": {
"pose": "XRT_INPUT_G2_CONTROLLER_AIM_POSE"
}
},
"/output/haptic": {
"type": "vibration",
"localized_name": "Haptic",
"components": ["haptic"],
"monado_bindings": {
"haptic": "XRT_OUTPUT_NAME_G2_CONTROLLER_HAPTIC"
}
}
}
},
"/interaction_profiles/microsoft/hand_interaction": {
"title": "Microsoft hand interaction",
"type": "tracked_controller",

View file

@ -620,6 +620,8 @@ enum xrt_device_name
XRT_DEVICE_TOUCH_CONTROLLER,
XRT_DEVICE_INDEX_CONTROLLER,
XRT_DEVICE_HP_REVERB_G2_CONTROLLER,
XRT_DEVICE_HAND_INTERACTION,
XRT_DEVICE_PSMV,
@ -862,6 +864,17 @@ enum xrt_input_name
XRT_INPUT_HAND_GRIP_POSE = XRT_INPUT_NAME(0x00E2, POSE),
XRT_INPUT_HAND_AIM_POSE = XRT_INPUT_NAME(0x00E3, POSE),
XRT_INPUT_G2_CONTROLLER_X_CLICK = XRT_INPUT_NAME(0x00F0, BOOLEAN),
XRT_INPUT_G2_CONTROLLER_Y_CLICK = XRT_INPUT_NAME(0x00F1, BOOLEAN),
XRT_INPUT_G2_CONTROLLER_A_CLICK = XRT_INPUT_NAME(0x00F2, BOOLEAN),
XRT_INPUT_G2_CONTROLLER_B_CLICK = XRT_INPUT_NAME(0x00F3, BOOLEAN),
XRT_INPUT_G2_CONTROLLER_MENU_CLICK = XRT_INPUT_NAME(0x00F4, BOOLEAN),
XRT_INPUT_G2_CONTROLLER_SQUEEZE_VALUE = XRT_INPUT_NAME(0x00F5, VEC1_ZERO_TO_ONE),
XRT_INPUT_G2_CONTROLLER_TRIGGER_VALUE = XRT_INPUT_NAME(0x00F6, VEC1_ZERO_TO_ONE),
XRT_INPUT_G2_CONTROLLER_THUMBSTICK_CLICK = XRT_INPUT_NAME(0x00F7, BOOLEAN),
XRT_INPUT_G2_CONTROLLER_THUMBSTICK = XRT_INPUT_NAME(0x00F8, VEC2_MINUS_ONE_TO_ONE),
XRT_INPUT_G2_CONTROLLER_GRIP_POSE = XRT_INPUT_NAME(0x00F9, POSE),
XRT_INPUT_G2_CONTROLLER_AIM_POSE = XRT_INPUT_NAME(0x00FA, POSE),
// clang-format on
};
@ -1020,6 +1033,7 @@ enum xrt_output_name
XRT_OUTPUT_NAME_FORCE_FEEDBACK_LEFT = XRT_OUTPUT_NAME(0x0080, FORCE_FEEDBACK),
XRT_OUTPUT_NAME_FORCE_FEEDBACK_RIGHT = XRT_OUTPUT_NAME(0x0081, FORCE_FEEDBACK),
XRT_OUTPUT_NAME_G2_CONTROLLER_HAPTIC = XRT_OUTPUT_NAME(0x0090, VIBRATION),
// clang-format on
};