glfw: ziggify gamepad button enumerations

Helps hexops/mach#37

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2021-10-30 11:35:31 -07:00 committed by Stephen Gutekanst
parent 2154ee5aea
commit 210e12a437
4 changed files with 52 additions and 28 deletions

View file

@ -1,27 +1,37 @@
//! Gamepad buttons.
//!
//! See glfw.getGamepadState for how these are used.
const c = @import("c.zig").c;
pub const a = c.GLFW_GAMEPAD_BUTTON_A;
pub const b = c.GLFW_GAMEPAD_BUTTON_B;
pub const x = c.GLFW_GAMEPAD_BUTTON_X;
pub const y = c.GLFW_GAMEPAD_BUTTON_Y;
pub const left_bumper = c.GLFW_GAMEPAD_BUTTON_LEFT_BUMPER;
pub const right_bumper = c.GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER;
pub const back = c.GLFW_GAMEPAD_BUTTON_BACK;
pub const start = c.GLFW_GAMEPAD_BUTTON_START;
pub const guide = c.GLFW_GAMEPAD_BUTTON_GUIDE;
pub const left_thumb = c.GLFW_GAMEPAD_BUTTON_LEFT_THUMB;
pub const right_thumb = c.GLFW_GAMEPAD_BUTTON_RIGHT_THUMB;
pub const dpad_up = c.GLFW_GAMEPAD_BUTTON_DPAD_UP;
pub const dpad_right = c.GLFW_GAMEPAD_BUTTON_DPAD_RIGHT;
pub const dpad_down = c.GLFW_GAMEPAD_BUTTON_DPAD_DOWN;
pub const dpad_left = c.GLFW_GAMEPAD_BUTTON_DPAD_LEFT;
pub const last = dpad_left;
/// Gamepad buttons.
///
/// See glfw.getGamepadState for how these are used.
pub const GamepadButton = enum(c_int) {
a = c.GLFW_GAMEPAD_BUTTON_A,
b = c.GLFW_GAMEPAD_BUTTON_B,
x = c.GLFW_GAMEPAD_BUTTON_X,
y = c.GLFW_GAMEPAD_BUTTON_Y,
left_bumper = c.GLFW_GAMEPAD_BUTTON_LEFT_BUMPER,
right_bumper = c.GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER,
back = c.GLFW_GAMEPAD_BUTTON_BACK,
start = c.GLFW_GAMEPAD_BUTTON_START,
guide = c.GLFW_GAMEPAD_BUTTON_GUIDE,
left_thumb = c.GLFW_GAMEPAD_BUTTON_LEFT_THUMB,
right_thumb = c.GLFW_GAMEPAD_BUTTON_RIGHT_THUMB,
dpad_up = c.GLFW_GAMEPAD_BUTTON_DPAD_UP,
dpad_right = c.GLFW_GAMEPAD_BUTTON_DPAD_RIGHT,
dpad_down = c.GLFW_GAMEPAD_BUTTON_DPAD_DOWN,
dpad_left = c.GLFW_GAMEPAD_BUTTON_DPAD_LEFT,
};
pub const cross = a;
pub const circle = b;
pub const square = x;
pub const triangle = y;
/// Not in the GamepadAxis enumeration as it is a duplicate value which is forbidden.
pub const last = GamepadButton.dpad_left;
/// Not in the GamepadAxis enumeration as it is a duplicate value which is forbidden.
pub const cross = GamepadButton.a;
/// Not in the GamepadAxis enumeration as it is a duplicate value which is forbidden.
pub const circle = GamepadButton.b;
/// Not in the GamepadAxis enumeration as it is a duplicate value which is forbidden.
pub const square = GamepadButton.x;
/// Not in the GamepadAxis enumeration as it is a duplicate value which is forbidden.
pub const triangle = GamepadButton.y;