OpenXR: Support ABXY buttons;

This commit is contained in:
bjorn 2022-03-17 16:33:18 -07:00
parent aa3b04e514
commit 4417481a92
2 changed files with 36 additions and 0 deletions

View File

@ -731,6 +731,10 @@ static bool getButtonState(Device device, DeviceButton button, bool* value, bool
case BUTTON_TOUCHPAD: info.action = state.actions[ACTION_TRACKPAD_DOWN + touch]; break;
case BUTTON_MENU: info.action = state.actions[ACTION_MENU_DOWN + touch]; break;
case BUTTON_GRIP: info.action = state.actions[ACTION_GRIP_DOWN + touch]; break;
case BUTTON_A: info.action = state.actions[ACTION_A_DOWN + touch]; break;
case BUTTON_B: info.action = state.actions[ACTION_B_DOWN + touch]; break;
case BUTTON_X: info.action = state.actions[ACTION_X_DOWN + touch]; break;
case BUTTON_Y: info.action = state.actions[ACTION_Y_DOWN + touch]; break;
default: return false;
}

View File

@ -27,6 +27,14 @@ enum {
ACTION_GRIP_DOWN,
ACTION_GRIP_TOUCH,
ACTION_GRIP_AXIS,
ACTION_A_DOWN,
ACTION_A_TOUCH,
ACTION_B_DOWN,
ACTION_B_TOUCH,
ACTION_X_DOWN,
ACTION_X_TOUCH,
ACTION_Y_DOWN,
ACTION_Y_TOUCH,
ACTION_THUMBREST_TOUCH,
ACTION_VIBRATE,
MAX_ACTIONS
@ -59,6 +67,14 @@ static XrActionCreateInfo actionCreateInfo[] = {
[ACTION_GRIP_DOWN] = action("grip_down", "Grip Down", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_GRIP_TOUCH] = action("grip_touch", "Grip Touch", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_GRIP_AXIS] = action("grip_axis", "Grip Axis", XR_ACTION_TYPE_FLOAT_INPUT),
[ACTION_A_DOWN] = action("a_down", "A Down", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_A_TOUCH] = action("a_touch", "A Touch", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_B_DOWN] = action("b_down", "B Down", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_B_TOUCH] = action("b_touch", "B Touch", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_X_DOWN] = action("x_down", "X Down", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_X_TOUCH] = action("x_touch", "X Touch", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_Y_DOWN] = action("y_down", "Y Down", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_Y_TOUCH] = action("y_touch", "Y Touch", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_THUMBREST_TOUCH] = action("thumbrest_touch", "Thumbrest Touch", XR_ACTION_TYPE_BOOLEAN_INPUT),
[ACTION_VIBRATE] = action("vibrate", "Vibrate", XR_ACTION_TYPE_VIBRATION_OUTPUT),
};
@ -122,6 +138,14 @@ static const char* bindings[MAX_PROFILES][MAX_ACTIONS][2] = {
[ACTION_GRIP_DOWN][1] = "/user/hand/right/input/squeeze/value",
[ACTION_GRIP_AXIS][0] = "/user/hand/left/input/squeeze/value",
[ACTION_GRIP_AXIS][1] = "/user/hand/right/input/squeeze/value",
[ACTION_A_DOWN][1] = "/user/hand/right/input/a/click",
[ACTION_A_TOUCH][1] = "/user/hand/right/input/a/touch",
[ACTION_B_DOWN][1] = "/user/hand/right/input/b/click",
[ACTION_B_TOUCH][1] = "/user/hand/right/input/b/touch",
[ACTION_X_DOWN][0] = "/user/hand/left/input/x/click",
[ACTION_X_TOUCH][0] = "/user/hand/left/input/x/touch",
[ACTION_Y_DOWN][0] = "/user/hand/left/input/y/click",
[ACTION_Y_TOUCH][0] = "/user/hand/left/input/y/touch",
[ACTION_THUMBREST_TOUCH][0] = "/user/hand/left/input/thumbrest/touch",
[ACTION_THUMBREST_TOUCH][1] = "/user/hand/right/input/thumbrest/touch",
[ACTION_VIBRATE][0] = "/user/hand/left/output/haptic",
@ -170,6 +194,14 @@ static const char* bindings[MAX_PROFILES][MAX_ACTIONS][2] = {
[ACTION_THUMBSTICK_Y][1] = "/user/hand/right/input/thumbstick/y",
[ACTION_GRIP_AXIS][0] = "/user/hand/left/input/squeeze/value",
[ACTION_GRIP_AXIS][1] = "/user/hand/right/input/squeeze/value",
[ACTION_A_DOWN][0] = "/user/hand/left/input/a/click",
[ACTION_A_DOWN][1] = "/user/hand/right/input/a/click",
[ACTION_A_TOUCH][0] = "/user/hand/left/input/a/touch",
[ACTION_A_TOUCH][1] = "/user/hand/right/input/a/touch",
[ACTION_B_DOWN][0] = "/user/hand/left/input/b/click",
[ACTION_B_DOWN][1] = "/user/hand/right/input/b/click",
[ACTION_B_TOUCH][0] = "/user/hand/left/input/b/touch",
[ACTION_B_TOUCH][1] = "/user/hand/right/input/b/touch",
[ACTION_VIBRATE][0] = "/user/hand/left/output/haptic",
[ACTION_VIBRATE][1] = "/user/hand/right/output/haptic"
}