From ed33eb70a69c5f6f5ed83c91889aa908e0d9c931 Mon Sep 17 00:00:00 2001 From: Eric Warmenhoven Date: Thu, 28 Mar 2024 15:58:26 -0400 Subject: [PATCH] mfi: left/right pressure sensitive triggers (#16385) --- input/drivers_joypad/mfi_joypad.m | 11 ++++++++--- input/input_autodetect_builtin.c | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/input/drivers_joypad/mfi_joypad.m b/input/drivers_joypad/mfi_joypad.m index 88d69d757d..3652e7474a 100644 --- a/input/drivers_joypad/mfi_joypad.m +++ b/input/drivers_joypad/mfi_joypad.m @@ -30,6 +30,9 @@ #ifndef MAX_MFI_CONTROLLERS #define MAX_MFI_CONTROLLERS 4 #endif +#ifndef MAX_MFI_AXES +#define MAX_MFI_AXES 6 +#endif #if TARGET_OS_IOS #include "../../configuration.h" @@ -48,7 +51,7 @@ enum /* TODO/FIXME - static globals */ static uint32_t mfi_buttons[MAX_USERS]; -static int16_t mfi_axes[MAX_USERS][4]; +static int16_t mfi_axes[MAX_USERS][MAX_MFI_AXES]; static uint32_t mfi_controllers[MAX_MFI_CONTROLLERS]; static MFIRumbleController *mfi_rumblers[MAX_MFI_CONTROLLERS]; static NSMutableArray *mfiControllers; @@ -143,6 +146,8 @@ static void apple_gamecontroller_joypad_poll_internal(GCController *controller, mfi_axes[slot][1] = gp.leftThumbstick.yAxis.value * 32767.0f; mfi_axes[slot][2] = gp.rightThumbstick.xAxis.value * 32767.0f; mfi_axes[slot][3] = gp.rightThumbstick.yAxis.value * 32767.0f; + mfi_axes[slot][4] = gp.leftTrigger.value * 32767.0f; + mfi_axes[slot][5] = gp.rightTrigger.value * 32767.0f; } else if (controller.microGamepad) @@ -633,14 +638,14 @@ static void apple_gamecontroller_joypad_get_buttons(unsigned port, static int16_t apple_gamecontroller_joypad_axis( unsigned port, uint32_t joyaxis) { - if (AXIS_NEG_GET(joyaxis) < 4) + if (AXIS_NEG_GET(joyaxis) < MAX_MFI_AXES) { int16_t axis = AXIS_NEG_GET(joyaxis); int16_t val = mfi_axes[port][axis]; if (val < 0) return val; } - else if (AXIS_POS_GET(joyaxis) < 4) + else if (AXIS_POS_GET(joyaxis) < MAX_MFI_AXES) { int16_t axis = AXIS_POS_GET(joyaxis); int16_t val = mfi_axes[port][axis]; diff --git a/input/input_autodetect_builtin.c b/input/input_autodetect_builtin.c index afb4993f14..d2e59efbfa 100644 --- a/input/input_autodetect_builtin.c +++ b/input/input_autodetect_builtin.c @@ -716,8 +716,6 @@ DECL_BTN(l, 10) \ DECL_BTN(r, 11) \ DECL_BTN(start, 3) \ DECL_BTN(select, 2) \ -DECL_BTN(l2, 12) \ -DECL_BTN(r2, 13) \ DECL_BTN(l3, 14) \ DECL_BTN(r3, 15) \ DECL_AXIS(l_x_plus, +0) \ @@ -727,7 +725,9 @@ DECL_AXIS(l_y_minus, +1) \ DECL_AXIS(r_x_plus, +2) \ DECL_AXIS(r_x_minus, -2) \ DECL_AXIS(r_y_plus, -3) \ -DECL_AXIS(r_y_minus, +3) +DECL_AXIS(r_y_minus, +3) \ +DECL_AXIS(l2, +4) \ +DECL_AXIS(r2, +5) const char* const input_builtin_autoconfs[] = {