From 7cd1ca7f8879a6a14bf58ce4f5ce1027acd1ef19 Mon Sep 17 00:00:00 2001 From: SenPie Date: Wed, 18 Dec 2024 20:25:51 +0400 Subject: [PATCH] Add gamepad level support for misc1 and touchpad buttons --- include/GLFW/glfw3.h | 12 +++++++----- src/input.c | 2 ++ src/internal.h | 2 +- tests/joysticks.c | 1 + 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/include/GLFW/glfw3.h b/include/GLFW/glfw3.h index 79b06288..9bff2529 100644 --- a/include/GLFW/glfw3.h +++ b/include/GLFW/glfw3.h @@ -628,10 +628,12 @@ extern "C" { #define GLFW_GAMEPAD_BUTTON_GUIDE 8 #define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9 #define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10 -#define GLFW_GAMEPAD_BUTTON_DPAD_UP 11 -#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12 -#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13 -#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14 +#define GLFW_GAMEPAD_BUTTON_MISC1 11 +#define GLFW_GAMEPAD_BUTTON_TOUCHPAD 12 +#define GLFW_GAMEPAD_BUTTON_DPAD_UP 13 +#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 14 +#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 15 +#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 16 #define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT #define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A @@ -2116,7 +2118,7 @@ typedef struct GLFWgamepadstate /*! The states of each [gamepad button](@ref gamepad_buttons), `GLFW_PRESS` * or `GLFW_RELEASE`. */ - unsigned char buttons[15]; + unsigned char buttons[17]; /*! The states of each [gamepad axis](@ref gamepad_axes), in the range -1.0 * to 1.0 inclusive. */ diff --git a/src/input.c b/src/input.c index c619eefc..a298597a 100644 --- a/src/input.c +++ b/src/input.c @@ -144,6 +144,8 @@ static GLFWbool parseMapping(_GLFWmapping* mapping, const char* string) { "rightshoulder", mapping->buttons + GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER }, { "leftstick", mapping->buttons + GLFW_GAMEPAD_BUTTON_LEFT_THUMB }, { "rightstick", mapping->buttons + GLFW_GAMEPAD_BUTTON_RIGHT_THUMB }, + { "misc1", mapping->buttons + GLFW_GAMEPAD_BUTTON_MISC1 }, + { "touchpad", mapping->buttons + GLFW_GAMEPAD_BUTTON_TOUCHPAD }, { "dpup", mapping->buttons + GLFW_GAMEPAD_BUTTON_DPAD_UP }, { "dpright", mapping->buttons + GLFW_GAMEPAD_BUTTON_DPAD_RIGHT }, { "dpdown", mapping->buttons + GLFW_GAMEPAD_BUTTON_DPAD_DOWN }, diff --git a/src/internal.h b/src/internal.h index 4f097aa8..1f75b0a4 100644 --- a/src/internal.h +++ b/src/internal.h @@ -636,7 +636,7 @@ struct _GLFWmapping { char name[128]; char guid[33]; - _GLFWmapelement buttons[15]; + _GLFWmapelement buttons[17]; _GLFWmapelement axes[6]; }; diff --git a/tests/joysticks.c b/tests/joysticks.c index df000210..7fd383ae 100644 --- a/tests/joysticks.c +++ b/tests/joysticks.c @@ -299,6 +299,7 @@ int main(void) "LB", "RB", "Back", "Start", "Guide", "LT", "RT", + "MISC1", "TOUCHPAD" }; nk_labelf(nk, NK_TEXT_LEFT,