diff --git a/ios/RetroArch/input/ios_input.m b/ios/RetroArch/input/ios_input.m index 01a4664d20..badc1b74bd 100644 --- a/ios/RetroArch/input/ios_input.m +++ b/ios/RetroArch/input/ios_input.m @@ -109,90 +109,93 @@ const input_driver_t input_ios = { }; // Key table +#include "keycode.h" static const struct rarch_key_map rarch_key_map_hidusage[] = { - { 0x50, RETROK_LEFT }, - { 0x4F, RETROK_RIGHT }, - { 0x52, RETROK_UP }, - { 0x51, RETROK_DOWN }, - { 0x28, RETROK_RETURN }, - { 0x2B, RETROK_TAB }, - { 0x49, RETROK_INSERT }, - { 0x4C, RETROK_DELETE }, - { 0xE5, RETROK_RSHIFT }, - { 0xE1, RETROK_LSHIFT }, - { 0xE0, RETROK_LCTRL }, - { 0x4D, RETROK_END }, - { 0x4A, RETROK_HOME }, - { 0x4E, RETROK_PAGEDOWN }, - { 0x4B, RETROK_PAGEUP }, - { 0xE2, RETROK_LALT }, - { 0x2C, RETROK_SPACE }, - { 0x29, RETROK_ESCAPE }, - { 0x2A, RETROK_BACKSPACE }, - { 0x58, RETROK_KP_ENTER }, - { 0x57, RETROK_KP_PLUS }, - { 0x56, RETROK_KP_MINUS }, - { 0x55, RETROK_KP_MULTIPLY }, - { 0x54, RETROK_KP_DIVIDE }, - { 0x35, RETROK_BACKQUOTE }, - { 0x48, RETROK_PAUSE }, - { 0x62, RETROK_KP0 }, - { 0x59, RETROK_KP1 }, - { 0x5A, RETROK_KP2 }, - { 0x5B, RETROK_KP3 }, - { 0x5C, RETROK_KP4 }, - { 0x5D, RETROK_KP5 }, - { 0x5E, RETROK_KP6 }, - { 0x5F, RETROK_KP7 }, - { 0x60, RETROK_KP8 }, - { 0x61, RETROK_KP9 }, - { 0x27, RETROK_0 }, - { 0x1E, RETROK_1 }, - { 0x1F, RETROK_2 }, - { 0x20, RETROK_3 }, - { 0x21, RETROK_4 }, - { 0x22, RETROK_5 }, - { 0x23, RETROK_6 }, - { 0x24, RETROK_7 }, - { 0x25, RETROK_8 }, - { 0x26, RETROK_9 }, - { 0x3A, RETROK_F1 }, - { 0x3B, RETROK_F2 }, - { 0x3C, RETROK_F3 }, - { 0x3D, RETROK_F4 }, - { 0x3E, RETROK_F5 }, - { 0x3F, RETROK_F6 }, - { 0x40, RETROK_F7 }, - { 0x41, RETROK_F8 }, - { 0x42, RETROK_F9 }, - { 0x43, RETROK_F10 }, - { 0x44, RETROK_F11 }, - { 0x45, RETROK_F12 }, - { 0x04, RETROK_a }, - { 0x05, RETROK_b }, - { 0x06, RETROK_c }, - { 0x07, RETROK_d }, - { 0x08, RETROK_e }, - { 0x09, RETROK_f }, - { 0x0A, RETROK_g }, - { 0x0B, RETROK_h }, - { 0x0C, RETROK_i }, - { 0x0D, RETROK_j }, - { 0x0E, RETROK_k }, - { 0x0F, RETROK_l }, - { 0x10, RETROK_m }, - { 0x11, RETROK_n }, - { 0x12, RETROK_o }, - { 0x13, RETROK_p }, - { 0x14, RETROK_q }, - { 0x15, RETROK_r }, - { 0x16, RETROK_s }, - { 0x17, RETROK_t }, - { 0x18, RETROK_u }, - { 0x19, RETROK_v }, - { 0x1A, RETROK_w }, - { 0x1B, RETROK_x }, - { 0x1C, RETROK_y }, - { 0x1D, RETROK_z }, + { KEY_Left, RETROK_LEFT }, + { KEY_Right, RETROK_RIGHT }, + { KEY_Up, RETROK_UP }, + { KEY_Down, RETROK_DOWN }, + { KEY_Enter, RETROK_RETURN }, + { KEY_Tab, RETROK_TAB }, + { KEY_Insert, RETROK_INSERT }, + { KEY_Delete, RETROK_DELETE }, + { KEY_RightShift, RETROK_RSHIFT }, + { KEY_LeftShift, RETROK_LSHIFT }, + { KEY_RightControl, RETROK_RCTRL }, + { KEY_LeftControl, RETROK_LCTRL }, + { KEY_End, RETROK_END }, + { KEY_Home, RETROK_HOME }, + { KEY_PageDown, RETROK_PAGEDOWN }, + { KEY_PageUp, RETROK_PAGEUP }, + { KEY_RightAlt, RETROK_RALT }, + { KEY_LeftAlt, RETROK_LALT }, + { KEY_Space, RETROK_SPACE }, + { KEY_Escape, RETROK_ESCAPE }, + { KEY_Delete, RETROK_BACKSPACE }, + { KP_Enter, RETROK_KP_ENTER }, + { KP_Add, RETROK_KP_PLUS }, + { KP_Subtract, RETROK_KP_MINUS }, + { KP_Multiply, RETROK_KP_MULTIPLY }, + { KP_Divide, RETROK_KP_DIVIDE }, + { KEY_Grave, RETROK_BACKQUOTE }, + { KEY_Pause, RETROK_PAUSE }, + { KP_0, RETROK_KP0 }, + { KP_1, RETROK_KP1 }, + { KP_2, RETROK_KP2 }, + { KP_3, RETROK_KP3 }, + { KP_4, RETROK_KP4 }, + { KP_5, RETROK_KP5 }, + { KP_6, RETROK_KP6 }, + { KP_7, RETROK_KP7 }, + { KP_8, RETROK_KP8 }, + { KP_9, RETROK_KP9 }, + { KEY_0, RETROK_0 }, + { KEY_1, RETROK_1 }, + { KEY_2, RETROK_2 }, + { KEY_3, RETROK_3 }, + { KEY_4, RETROK_4 }, + { KEY_5, RETROK_5 }, + { KEY_6, RETROK_6 }, + { KEY_7, RETROK_7 }, + { KEY_8, RETROK_8 }, + { KEY_9, RETROK_9 }, + { KEY_F1, RETROK_F1 }, + { KEY_F2, RETROK_F2 }, + { KEY_F3, RETROK_F3 }, + { KEY_F4, RETROK_F4 }, + { KEY_F5, RETROK_F5 }, + { KEY_F6, RETROK_F6 }, + { KEY_F7, RETROK_F7 }, + { KEY_F8, RETROK_F8 }, + { KEY_F9, RETROK_F9 }, + { KEY_F10, RETROK_F10 }, + { KEY_F11, RETROK_F11 }, + { KEY_F12, RETROK_F12 }, + { KEY_A, RETROK_a }, + { KEY_B, RETROK_b }, + { KEY_C, RETROK_c }, + { KEY_D, RETROK_d }, + { KEY_E, RETROK_e }, + { KEY_F, RETROK_f }, + { KEY_G, RETROK_g }, + { KEY_H, RETROK_h }, + { KEY_I, RETROK_i }, + { KEY_J, RETROK_j }, + { KEY_K, RETROK_k }, + { KEY_L, RETROK_l }, + { KEY_M, RETROK_m }, + { KEY_N, RETROK_n }, + { KEY_O, RETROK_o }, + { KEY_P, RETROK_p }, + { KEY_Q, RETROK_q }, + { KEY_R, RETROK_r }, + { KEY_S, RETROK_s }, + { KEY_T, RETROK_t }, + { KEY_U, RETROK_u }, + { KEY_V, RETROK_v }, + { KEY_W, RETROK_w }, + { KEY_X, RETROK_x }, + { KEY_Y, RETROK_y }, + { KEY_Z, RETROK_z }, { 0, RETROK_UNKNOWN } }; diff --git a/ios/RetroArch/input/keycode.h b/ios/RetroArch/input/keycode.h new file mode 100644 index 0000000000..e24fe023d4 --- /dev/null +++ b/ios/RetroArch/input/keycode.h @@ -0,0 +1,156 @@ +/* +Taken from https://github.com/depp/keycode, distributed with the following license: + +Copyright 2011-2012 Dietrich Epp +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +/* This file is automatically generated by keycode.py. */ +#ifndef KEYCODE_KEYCODE_H +#define KEYCODE_KEYCODE_H +enum { + KEY_A = 4, + KEY_B = 5, + KEY_C = 6, + KEY_D = 7, + KEY_E = 8, + KEY_F = 9, + KEY_G = 10, + KEY_H = 11, + KEY_I = 12, + KEY_J = 13, + KEY_K = 14, + KEY_L = 15, + KEY_M = 16, + KEY_N = 17, + KEY_O = 18, + KEY_P = 19, + KEY_Q = 20, + KEY_R = 21, + KEY_S = 22, + KEY_T = 23, + KEY_U = 24, + KEY_V = 25, + KEY_W = 26, + KEY_X = 27, + KEY_Y = 28, + KEY_Z = 29, + KEY_1 = 30, + KEY_2 = 31, + KEY_3 = 32, + KEY_4 = 33, + KEY_5 = 34, + KEY_6 = 35, + KEY_7 = 36, + KEY_8 = 37, + KEY_9 = 38, + KEY_0 = 39, + KEY_Enter = 40, + KEY_Escape = 41, + KEY_Delete = 42, + KEY_Tab = 43, + KEY_Space = 44, + KEY_Minus = 45, + KEY_Equals = 46, + KEY_LeftBracket = 47, + KEY_RightBracket = 48, + KEY_Backslash = 49, + KEY_Semicolon = 51, + KEY_Quote = 52, + KEY_Grave = 53, + KEY_Comma = 54, + KEY_Period = 55, + KEY_Slash = 56, + KEY_CapsLock = 57, + KEY_F1 = 58, + KEY_F2 = 59, + KEY_F3 = 60, + KEY_F4 = 61, + KEY_F5 = 62, + KEY_F6 = 63, + KEY_F7 = 64, + KEY_F8 = 65, + KEY_F9 = 66, + KEY_F10 = 67, + KEY_F11 = 68, + KEY_F12 = 69, + KEY_PrintScreen = 70, + KEY_ScrollLock = 71, + KEY_Pause = 72, + KEY_Insert = 73, + KEY_Home = 74, + KEY_PageUp = 75, + KEY_DeleteForward = 76, + KEY_End = 77, + KEY_PageDown = 78, + KEY_Right = 79, + KEY_Left = 80, + KEY_Down = 81, + KEY_Up = 82, + KP_NumLock = 83, + KP_Divide = 84, + KP_Multiply = 85, + KP_Subtract = 86, + KP_Add = 87, + KP_Enter = 88, + KP_1 = 89, + KP_2 = 90, + KP_3 = 91, + KP_4 = 92, + KP_5 = 93, + KP_6 = 94, + KP_7 = 95, + KP_8 = 96, + KP_9 = 97, + KP_0 = 98, + KP_Point = 99, + KEY_NonUSBackslash = 100, + KP_Equals = 103, + KEY_F13 = 104, + KEY_F14 = 105, + KEY_F15 = 106, + KEY_F16 = 107, + KEY_F17 = 108, + KEY_F18 = 109, + KEY_F19 = 110, + KEY_F20 = 111, + KEY_F21 = 112, + KEY_F22 = 113, + KEY_F23 = 114, + KEY_F24 = 115, + KEY_Help = 117, + KEY_Menu = 118, + KEY_LeftControl = 224, + KEY_LeftShift = 225, + KEY_LeftAlt = 226, + KEY_LeftGUI = 227, + KEY_RightControl = 228, + KEY_RightShift = 229, + KEY_RightAlt = 230, + KEY_RightGUI = 231 +}; +#endif diff --git a/ios/RetroArch/settings/RAButtonGetter.m b/ios/RetroArch/settings/RAButtonGetter.m index ba9582626c..e1b9ed6543 100644 --- a/ios/RetroArch/settings/RAButtonGetter.m +++ b/ios/RetroArch/settings/RAButtonGetter.m @@ -14,6 +14,7 @@ */ #import "settings.h" +#include "../input/keycode.h" #ifdef WIIMOTE # include "../input/BTStack/wiimote.h" @@ -26,54 +27,51 @@ static const struct const char* const keyname; const uint32_t hid_id; } ios_key_name_map[] = { - { "left", 0x50 }, { "right", 0x4F }, - { "up", 0x52 }, { "down", 0x51 }, - { "enter", 0x28 }, { "kp_enter", 0x58 }, - { "tab", 0x2B }, { "insert", 0x49 }, - { "del", 0x4C }, { "end", 0x4D }, - { "home", 0x4A }, { "rshift", 0xE5 }, - { "shift", 0xE1 }, { "ctrl", 0xE0 }, - { "alt", 0xE2 }, { "space", 0x2C }, - { "escape", 0x29 }, { "backspace", 0x2A }, - { "backquote", 0x35 }, { "pause", 0x48 }, + { "left", KEY_Left }, { "right", KEY_Right }, + { "up", KEY_Up }, { "down", KEY_Down }, + { "enter", KEY_Enter }, { "kp_enter", KP_Enter }, + { "space", KEY_Space }, { "tab", KEY_Tab }, + { "shift", KEY_LeftShift }, { "rshift", KEY_RightShift }, + { "ctrl", KEY_LeftControl }, { "alt", KEY_LeftAlt }, + { "escape", KEY_Escape }, { "backspace", KEY_DeleteForward }, + { "backquote", KEY_Grave }, { "pause", KEY_Pause }, + { "f1", KEY_F1 }, { "f2", KEY_F2 }, + { "f3", KEY_F3 }, { "f4", KEY_F4 }, + { "f5", KEY_F5 }, { "f6", KEY_F6 }, + { "f7", KEY_F7 }, { "f8", KEY_F8 }, + { "f9", KEY_F9 }, { "f10", KEY_F10 }, + { "f11", KEY_F11 }, { "f12", KEY_F12 }, + + { "num0", KEY_0 }, { "num1", KEY_1 }, + { "num2", KEY_2 }, { "num3", KEY_3 }, + { "num4", KEY_4 }, { "num5", KEY_5 }, + { "num6", KEY_6 }, { "num7", KEY_7 }, + { "num8", KEY_8 }, { "num9", KEY_9 }, - { "add", 0x57 }, { "subtract", 0x56 }, /*kp_minus?*/ - { "multiply", 0x55 }, { "divide", 0x54 }, - { "kp_plus", 0x57 }, { "kp_minus", 0x56 }, - - { "f1", 0x3A }, { "f2", 0x3B }, - { "f3", 0x3C }, { "f4", 0x3D }, - { "f5", 0x3E }, { "f6", 0x3F }, - { "f7", 0x40 }, { "f8", 0x41 }, - { "f9", 0x42 }, { "f10", 0x43 }, - { "f11", 0x44 }, { "f12", 0x45 }, - - { "num0", 0x27 }, { "num1", 0x1E }, - { "num2", 0x1F }, { "num3", 0x20 }, - { "num4", 0x21 }, { "num5", 0x22 }, - { "num6", 0x23 }, { "num7", 0x24 }, - { "num8", 0x25 }, { "num9", 0x26 }, + { "insert", KEY_Insert }, { "del", KEY_DeleteForward }, + { "home", KEY_Home }, { "end", KEY_End }, + { "pageup", KEY_PageUp }, { "pagedown", KEY_PageDown }, - { "pageup", 0x48 }, { "pagedown", 0x4E }, - { "keypad0", 0x62 }, { "keypad1", 0x59 }, - { "keypad2", 0x5A }, { "keypad3", 0x5B }, - { "keypad4", 0x5C }, { "keypad5", 0x5D }, - { "keypad6", 0x5E }, { "keypad7", 0x5F }, - { "keypad8", 0x60 }, { "keypad9", 0x61 }, + { "add", KP_Add }, { "subtract", KP_Subtract }, + { "multiply", KP_Multiply }, { "divide", KP_Divide }, + { "keypad0", KP_0 }, { "keypad1", KP_1 }, + { "keypad2", KP_2 }, { "keypad3", KP_3 }, + { "keypad4", KP_4 }, { "keypad5", KP_5 }, + { "keypad6", KP_6 }, { "keypad7", KP_7 }, + { "keypad8", KP_8 }, { "keypad9", KP_9 }, - /*{ "period", RETROK_PERIOD }, - { "capslock", RETROK_CAPSLOCK }, { "numlock", RETROK_NUMLOCK }, - { "print_screen", RETROK_PRINT }, - { "scroll_lock", RETROK_SCROLLOCK },*/ - - { "a", 0x04 }, { "b", 0x05 }, { "c", 0x06 }, { "d", 0x07 }, - { "e", 0x08 }, { "f", 0x09 }, { "g", 0x0A }, { "h", 0x0B }, - { "i", 0x0C }, { "j", 0x0D }, { "k", 0x0E }, { "l", 0x0F }, - { "m", 0x10 }, { "n", 0x11 }, { "o", 0x12 }, { "p", 0x13 }, - { "q", 0x14 }, { "r", 0x15 }, { "s", 0x16 }, { "t", 0x17 }, - { "u", 0x18 }, { "v", 0x19 }, { "w", 0x1A }, { "x", 0x1B }, - { "y", 0x1C }, { "z", 0x1D }, + { "period", KEY_Period }, { "capslock", KEY_CapsLock }, + { "numlock", KP_NumLock }, { "print", KEY_PrintScreen }, + { "scroll_lock", KEY_ScrollLock }, + + { "a", KEY_A }, { "b", KEY_B }, { "c", KEY_C }, { "d", KEY_D }, + { "e", KEY_E }, { "f", KEY_F }, { "g", KEY_G }, { "h", KEY_H }, + { "i", KEY_I }, { "j", KEY_J }, { "k", KEY_K }, { "l", KEY_L }, + { "m", KEY_M }, { "n", KEY_N }, { "o", KEY_O }, { "p", KEY_P }, + { "q", KEY_Q }, { "r", KEY_R }, { "s", KEY_S }, { "t", KEY_T }, + { "u", KEY_U }, { "v", KEY_V }, { "w", KEY_W }, { "x", KEY_X }, + { "y", KEY_Y }, { "z", KEY_Z }, { "nul", 0x00}, };