From e76ce3d525d1b1bdbfb4068ee3066058025c3743 Mon Sep 17 00:00:00 2001 From: twinaphex Date: Sat, 5 Jan 2013 04:07:44 +0100 Subject: [PATCH] (Android) Should autodetect keyboards now and configure them --- android/native/jni/input_autodetect.c | 71 +++++++++++++-------------- android/phoenix/res/xml/prefs.xml | 8 +-- 2 files changed, 40 insertions(+), 39 deletions(-) diff --git a/android/native/jni/input_autodetect.c b/android/native/jni/input_autodetect.c index bbad296f94..ff404a2b0b 100644 --- a/android/native/jni/input_autodetect.c +++ b/android/native/jni/input_autodetect.c @@ -302,6 +302,41 @@ void input_autodetect_setup(unsigned port, unsigned id, int source) keycode_lut[AKEYCODE_BUTTON_R1] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); } } + else if (source == AINPUT_SOURCE_KEYBOARD) + { + snprintf(msg, sizeof(msg), "RetroPad #%d is: Keyboard.\n", port); + // Keyboard + // TODO: Map L2/R2/L3/R3 + + keycode_lut[AKEYCODE_Z] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift); + keycode_lut[AKEYCODE_A] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift); + keycode_lut[AKEYCODE_SHIFT_RIGHT] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift); + keycode_lut[AKEYCODE_ENTER] |= ((RETRO_DEVICE_ID_JOYPAD_START+1) << shift); + keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift); + keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift); + keycode_lut[AKEYCODE_DPAD_LEFT] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift); + keycode_lut[AKEYCODE_DPAD_RIGHT] |= ((RETRO_DEVICE_ID_JOYPAD_RIGHT+1) << shift); + keycode_lut[AKEYCODE_X] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift); + keycode_lut[AKEYCODE_S] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift); + keycode_lut[AKEYCODE_Q] |= ((RETRO_DEVICE_ID_JOYPAD_L+1) << shift); + keycode_lut[AKEYCODE_W] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); + + /* Misc control scheme */ + keycode_lut[AKEYCODE_F2] |= ((RARCH_SAVE_STATE_KEY+1) << shift); + keycode_lut[AKEYCODE_F4] |= ((RARCH_LOAD_STATE_KEY+1) << shift); + keycode_lut[AKEYCODE_F7] |= ((RARCH_STATE_SLOT_PLUS+1) << shift); + keycode_lut[AKEYCODE_F6] |= ((RARCH_STATE_SLOT_MINUS+1) << shift); + keycode_lut[AKEYCODE_SPACE] |= ((RARCH_FAST_FORWARD_KEY+1) << shift); + keycode_lut[AKEYCODE_L] |= ((RARCH_FAST_FORWARD_HOLD_KEY+1) << shift); + keycode_lut[AKEYCODE_BREAK] |= ((RARCH_PAUSE_TOGGLE+1) << shift); + keycode_lut[AKEYCODE_K] |= ((RARCH_FRAMEADVANCE+1) << shift); + keycode_lut[AKEYCODE_H] |= ((RARCH_RESET+1) << shift); + keycode_lut[AKEYCODE_R] |= ((RARCH_REWIND+1) << shift); + keycode_lut[AKEYCODE_F9] |= ((RARCH_MUTE+1) << shift); + + keycode_lut[AKEYCODE_ESCAPE] |= ((RARCH_QUIT_KEY+1) << shift); + keycode_lut[AKEYCODE_BACK] |= ((RARCH_QUIT_KEY+1) << shift); + } else if (strstr(current_ime, "com.ccpcreations.android.WiiUseAndroid")) { // Player 1 @@ -431,40 +466,6 @@ void input_autodetect_setup(unsigned port, unsigned id, int source) keycode_lut[AKEYCODE_1] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift); keycode_lut[AKEYCODE_HOME] |= ((RARCH_RESET+1) << shift); } - else - { - // Keyboard - // TODO: Map L2/R2/L3/R3 - - keycode_lut[AKEYCODE_Z] |= ((RETRO_DEVICE_ID_JOYPAD_B+1) << shift); - keycode_lut[AKEYCODE_A] |= ((RETRO_DEVICE_ID_JOYPAD_Y+1) << shift); - keycode_lut[AKEYCODE_SHIFT_RIGHT] |= ((RETRO_DEVICE_ID_JOYPAD_SELECT+1) << shift); - keycode_lut[AKEYCODE_ENTER] |= ((RETRO_DEVICE_ID_JOYPAD_START+1) << shift); - keycode_lut[AKEYCODE_DPAD_UP] |= ((RETRO_DEVICE_ID_JOYPAD_UP+1) << shift); - keycode_lut[AKEYCODE_DPAD_DOWN] |= ((RETRO_DEVICE_ID_JOYPAD_DOWN+1) << shift); - keycode_lut[AKEYCODE_DPAD_LEFT] |= ((RETRO_DEVICE_ID_JOYPAD_LEFT+1) << shift); - keycode_lut[AKEYCODE_DPAD_RIGHT] |= ((RETRO_DEVICE_ID_JOYPAD_RIGHT+1) << shift); - keycode_lut[AKEYCODE_X] |= ((RETRO_DEVICE_ID_JOYPAD_A+1) << shift); - keycode_lut[AKEYCODE_S] |= ((RETRO_DEVICE_ID_JOYPAD_X+1) << shift); - keycode_lut[AKEYCODE_Q] |= ((RETRO_DEVICE_ID_JOYPAD_L+1) << shift); - keycode_lut[AKEYCODE_W] |= ((RETRO_DEVICE_ID_JOYPAD_R+1) << shift); - - /* Misc control scheme */ - keycode_lut[AKEYCODE_F2] |= ((RARCH_SAVE_STATE_KEY+1) << shift); - keycode_lut[AKEYCODE_F4] |= ((RARCH_LOAD_STATE_KEY+1) << shift); - keycode_lut[AKEYCODE_F7] |= ((RARCH_STATE_SLOT_PLUS+1) << shift); - keycode_lut[AKEYCODE_F6] |= ((RARCH_STATE_SLOT_MINUS+1) << shift); - keycode_lut[AKEYCODE_SPACE] |= ((RARCH_FAST_FORWARD_KEY+1) << shift); - keycode_lut[AKEYCODE_L] |= ((RARCH_FAST_FORWARD_HOLD_KEY+1) << shift); - keycode_lut[AKEYCODE_BREAK] |= ((RARCH_PAUSE_TOGGLE+1) << shift); - keycode_lut[AKEYCODE_K] |= ((RARCH_FRAMEADVANCE+1) << shift); - keycode_lut[AKEYCODE_H] |= ((RARCH_RESET+1) << shift); - keycode_lut[AKEYCODE_R] |= ((RARCH_REWIND+1) << shift); - keycode_lut[AKEYCODE_F9] |= ((RARCH_MUTE+1) << shift); - - keycode_lut[AKEYCODE_ESCAPE] |= ((RARCH_QUIT_KEY+1) << shift); - keycode_lut[AKEYCODE_BACK] |= ((RARCH_QUIT_KEY+1) << shift); - } if (name_buf[0] != 0) RARCH_LOG("Device %d: %s, port: %d.\n", id, name_buf, port); @@ -477,8 +478,6 @@ void input_autodetect_setup(unsigned port, unsigned id, int source) snprintf(msg, sizeof(msg), "RetroPad #%d is: Touchscreen.\n", port); else if (source == AINPUT_SOURCE_MOUSE) snprintf(msg, sizeof(msg), "RetroPad #%d is: Mouse.\n", port); - else if (source == AINPUT_SOURCE_KEYBOARD) - snprintf(msg, sizeof(msg), "RetroPad #%d is: Keyboard.\n", port); else if (name_buf[0] != 0) snprintf(msg, sizeof(msg), "HID [%s] unbound.\n", name_buf); timeout_val = 120; diff --git a/android/phoenix/res/xml/prefs.xml b/android/phoenix/res/xml/prefs.xml index a6c930071e..1f10287bae 100644 --- a/android/phoenix/res/xml/prefs.xml +++ b/android/phoenix/res/xml/prefs.xml @@ -9,11 +9,13 @@ android:key="savestate_auto_save" android:summary="Automatically saves and restores game state." android:title="Auto save state" /> + + + android:summary="WARNING - very CPU intensive - will decrease ingame performance." + android:title="Enable" /> @@ -118,4 +120,4 @@ - \ No newline at end of file +