From b528e8df1c2923fe5d49f547194fe84a722b59c1 Mon Sep 17 00:00:00 2001 From: LLeny Date: Fri, 4 Apr 2014 14:17:39 +0200 Subject: [PATCH] Android - Samsung Game Pad EI-GP20 --- android/native/jni/input_android.c | 31 ++++++++++++++++++++++++++- android/native/jni/input_autodetect.c | 2 ++ driver.h | 1 + 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/android/native/jni/input_android.c b/android/native/jni/input_android.c index 20f92f55ec..7a60bb1597 100644 --- a/android/native/jni/input_android.c +++ b/android/native/jni/input_android.c @@ -1422,7 +1422,7 @@ static void android_input_set_keybinds(void *data, unsigned device, strlcpy(g_settings.input.device_names[port], "DragonRise", sizeof(g_settings.input.device_names[port])); /* TODO: L3/R3 */ - + android->dpad_emulation[port] = ANALOG_DPAD_DUALANALOG; android->keycode_lut[AKEYCODE_BUTTON_2] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift); android->keycode_lut[AKEYCODE_BUTTON_3] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift); @@ -1433,6 +1433,35 @@ static void android_input_set_keybinds(void *data, unsigned device, android->keycode_lut[AKEYCODE_BUTTON_7] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift); android->keycode_lut[AKEYCODE_BUTTON_8] |= ((RETRO_DEVICE_ID_JOYPAD_START+1) << shift); break; + + case DEVICE_SAMSUNG_GAMEPAD_EIGP20: + g_settings.input.device[port] = device; + strlcpy(g_settings.input.device_names[port], "Samsung Game Pad EI-GP20", + sizeof(g_settings.input.device_names[port])); + + android->dpad_emulation[port] = ANALOG_DPAD_DUALANALOG; + + //B: "Pad 0: 96, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_B] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift); + //A: "Pad 0: 97, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_A] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift); + //X: "Pad 0: 99, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_X] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift); + //Y: "Pad 0: 100, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_Y] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift); + //Left Trigger: "Pad 0: 102, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_L1] |= ((RETRO_DEVICE_ID_JOYPAD_L+1) << shift); + //Right Trigger: "Pad 0: 103, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_R1] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); + //Play Button: "Pad 0: 0, ac=1, src = 1281" + //Start: "Pad 0: 108, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_START] |= ((RETRO_DEVICE_ID_JOYPAD_START+1) << shift); + //Select: "Pad 0: 109, ac=1, src = 1281" + android->keycode_lut[AKEYCODE_BUTTON_SELECT] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift); + break; + + + case DEVICE_TOMEE_NES_USB: g_settings.input.device[port] = device; strlcpy(g_settings.input.device_names[port], "Tomee NES USB", diff --git a/android/native/jni/input_autodetect.c b/android/native/jni/input_autodetect.c index 17e9cc5ab1..38c77a4157 100644 --- a/android/native/jni/input_autodetect.c +++ b/android/native/jni/input_autodetect.c @@ -231,6 +231,8 @@ void input_autodetect_setup(void *data, char *msg, size_t sizeof_msg, unsigned p port = 0; // Shield is always player 1. *primary = true; } + else if (strstr(name_buf, "Samsung Game Pad EI-GP20")) + device = DEVICE_SAMSUNG_GAMEPAD_EIGP20; if (strstr(current_ime, "net.obsidianx.android.mogaime")) { diff --git a/driver.h b/driver.h index b007a2fae7..c1253845e7 100644 --- a/driver.h +++ b/driver.h @@ -295,6 +295,7 @@ enum input_devices DEVICE_MUCH_IREADGO_I5, DEVICE_WIKIPAD, DEVICE_FC30_GAMEPAD, + DEVICE_SAMSUNG_GAMEPAD_EIGP20, #elif defined(GEKKO) DEVICE_GAMECUBE = 0, #ifdef HW_RVL