mirror of
https://github.com/libretro/RetroArch.git
synced 2025-02-01 22:42:22 +00:00
(Android) fix back button binds acting up
This commit is contained in:
parent
f9a47fb280
commit
ee8683396f
@ -32,8 +32,8 @@
|
||||
|
||||
static unsigned pads_connected;
|
||||
static int state_device_ids[MAX_PADS];
|
||||
static int back_exits[MAX_PADS];
|
||||
static uint64_t state[MAX_PADS];
|
||||
static bool ignore_p1_back;
|
||||
|
||||
struct input_pointer
|
||||
{
|
||||
@ -120,18 +120,17 @@ static void android_input_poll(void *data)
|
||||
{
|
||||
state_id = pads_connected;
|
||||
state_device_ids[pads_connected++] = id;
|
||||
bool back_exit = true;
|
||||
|
||||
input_autodetect_setup(android_app, msg, sizeof(msg), state_id, id, source, &back_exit);
|
||||
input_autodetect_setup(android_app, msg, sizeof(msg), state_id, id, source);
|
||||
long_msg_enable = true;
|
||||
|
||||
back_exits[state_id] = back_exit;
|
||||
if (state_id == 0)
|
||||
ignore_p1_back = (keycode_lut[AKEYCODE_BACK] != 0);
|
||||
}
|
||||
|
||||
if (keycode == AKEYCODE_BACK)
|
||||
if (keycode == AKEYCODE_BACK && (!ignore_p1_back || state_id != 0))
|
||||
{
|
||||
if (back_exits[state_id])
|
||||
*lifecycle_state |= (1ULL << RARCH_QUIT_KEY);
|
||||
*lifecycle_state |= (1ULL << RARCH_QUIT_KEY);
|
||||
AInputQueue_finishEvent(android_app->inputQueue, event, handled);
|
||||
break;
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ void input_autodetect_init (void)
|
||||
}
|
||||
}
|
||||
|
||||
void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned port, unsigned id, int source, bool *back_exits)
|
||||
void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned port, unsigned id, int source)
|
||||
{
|
||||
struct android_app *android_app = (struct android_app*)data;
|
||||
// Hack - we have to add '1' to the bit mask here because
|
||||
@ -364,7 +364,6 @@ void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned
|
||||
keycode_lut[AKEYCODE_BACK] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift);
|
||||
keycode_lut[AKEYCODE_BUTTON_THUMBL] |= ((RETRO_DEVICE_ID_JOYPAD_L3+1) << shift);
|
||||
keycode_lut[AKEYCODE_BUTTON_THUMBR] |= ((RETRO_DEVICE_ID_JOYPAD_R3+1) << shift);
|
||||
*back_exits = false;
|
||||
}
|
||||
else if (strstr(name_buf, "USB,2-axis 8-button gamepad") ||
|
||||
strstr(name_buf, "BUFFALO BGC-FC801"))
|
||||
@ -497,7 +496,6 @@ void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned
|
||||
/* Xperia Play */
|
||||
/* TODO: menu button */
|
||||
/* Menu : 82 */
|
||||
*back_exits = false;
|
||||
keycode_lut[AKEYCODE_DPAD_CENTER] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift);
|
||||
keycode_lut[AKEYCODE_BACK] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift);
|
||||
keycode_lut[AKEYCODE_BUTTON_X] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift);
|
||||
@ -521,7 +519,6 @@ void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned
|
||||
* RStick Right: 40 */
|
||||
|
||||
/* Red Samurai */
|
||||
*back_exits = false;
|
||||
keycode_lut[AKEYCODE_W] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift);
|
||||
keycode_lut[AKEYCODE_S] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift);
|
||||
keycode_lut[AKEYCODE_A] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift);
|
||||
|
@ -64,6 +64,6 @@ extern uint64_t keycode_lut[LAST_KEYCODE];
|
||||
extern bool volume_enable;
|
||||
|
||||
void input_autodetect_init (void);
|
||||
void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned port, unsigned id, int source, bool *back_exit);
|
||||
void input_autodetect_setup (void *data, char *msg, size_t sizeof_msg, unsigned port, unsigned id, int source);
|
||||
|
||||
#endif
|
||||
|
Loading…
x
Reference in New Issue
Block a user