1 /*
2  *  Copyright (C) 2018-2020 Team Kodi (https://kodi.tv)
3  *
4  *  SPDX-License-Identifier: GPL-2.0-or-later
5  *  See LICENSE.md for more information.
6  */
7 
8 #include "DefaultKeyboardTranslator.h"
9 #include "DefaultKeyboardDefines.h"
10 #include "libretro/libretro.h"
11 
12 using namespace LIBRETRO;
13 
GetLibretroIndex(const std::string & strFeatureName)14 int CDefaultKeyboardTranslator::GetLibretroIndex(const std::string &strFeatureName)
15 {
16   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_BACKSPACE)     return RETROK_BACKSPACE;
17   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_TAB)           return RETROK_TAB;
18   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_CLEAR)         return RETROK_CLEAR;
19   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_ENTER)         return RETROK_RETURN;
20   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_PAUSE)         return RETROK_PAUSE;
21   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_ESCAPE)        return RETROK_ESCAPE;
22   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_SPACE)         return RETROK_SPACE;
23   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_EXCLAIM)       return RETROK_EXCLAIM;
24   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_DOUBLEQUOTE)   return RETROK_QUOTEDBL;
25   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_HASH)          return RETROK_HASH;
26   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_DOLLAR)        return RETROK_DOLLAR;
27   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_AMPERSAND)     return RETROK_AMPERSAND;
28   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_QUOTE)         return RETROK_QUOTE;
29   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTPAREN)     return RETROK_LEFTPAREN;
30   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTPAREN)    return RETROK_RIGHTPAREN;
31   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_ASTERISK)      return RETROK_ASTERISK;
32   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_PLUS)          return RETROK_PLUS;
33   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_COMMA)         return RETROK_COMMA;
34   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_MINUS)         return RETROK_MINUS;
35   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_PERIOD)        return RETROK_PERIOD;
36   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_SLASH)         return RETROK_SLASH;
37   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_0)             return RETROK_0;
38   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_1)             return RETROK_1;
39   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_2)             return RETROK_2;
40   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_3)             return RETROK_3;
41   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_4)             return RETROK_4;
42   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_5)             return RETROK_5;
43   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_6)             return RETROK_6;
44   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_7)             return RETROK_7;
45   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_8)             return RETROK_8;
46   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_9)             return RETROK_9;
47   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_COLON)         return RETROK_COLON;
48   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_SEMICOLON)     return RETROK_SEMICOLON;
49   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LESS)          return RETROK_LESS;
50   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_EQUALS)        return RETROK_EQUALS;
51   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_GREATER)       return RETROK_GREATER;
52   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_QUESTION)      return RETROK_QUESTION;
53   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_AT)            return RETROK_AT;
54   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTBRACKET)   return RETROK_LEFTBRACKET;
55   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_BACKSLASH)     return RETROK_BACKSLASH;
56   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTBRACKET)  return RETROK_RIGHTBRACKET;
57   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_CARET)         return RETROK_CARET;
58   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_UNDERSCORE)    return RETROK_UNDERSCORE;
59   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_GRAVE)         return RETROK_BACKQUOTE;
60   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_A)             return RETROK_a;
61   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_B)             return RETROK_b;
62   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_C)             return RETROK_c;
63   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_D)             return RETROK_d;
64   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_E)             return RETROK_e;
65   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F)             return RETROK_f;
66   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_G)             return RETROK_g;
67   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_H)             return RETROK_h;
68   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_I)             return RETROK_i;
69   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_J)             return RETROK_j;
70   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_K)             return RETROK_k;
71   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_L)             return RETROK_l;
72   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_M)             return RETROK_m;
73   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_N)             return RETROK_n;
74   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_O)             return RETROK_o;
75   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_P)             return RETROK_p;
76   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_Q)             return RETROK_q;
77   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_R)             return RETROK_r;
78   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_S)             return RETROK_s;
79   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_T)             return RETROK_t;
80   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_U)             return RETROK_u;
81   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_V)             return RETROK_v;
82   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_W)             return RETROK_w;
83   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_X)             return RETROK_x;
84   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_Y)             return RETROK_y;
85   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_Z)             return RETROK_z;
86   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTBRACE)     return RETROK_LEFTBRACE;
87   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_BAR)           return RETROK_BAR;
88   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTBRACE)    return RETROK_RIGHTBRACE;
89   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_TILDE)         return RETROK_TILDE;
90   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_DELETE)        return RETROK_DELETE;
91   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP0)           return RETROK_KP0;
92   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP1)           return RETROK_KP1;
93   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP2)           return RETROK_KP2;
94   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP3)           return RETROK_KP3;
95   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP4)           return RETROK_KP4;
96   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP5)           return RETROK_KP5;
97   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP6)           return RETROK_KP6;
98   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP7)           return RETROK_KP7;
99   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP8)           return RETROK_KP8;
100   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KP9)           return RETROK_KP9;
101   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPPERIOD)      return RETROK_KP_PERIOD;
102   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPDIVIDE)      return RETROK_KP_DIVIDE;
103   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPMULTIPLY)    return RETROK_KP_MULTIPLY;
104   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPMINUS)       return RETROK_KP_MINUS;
105   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPPLUS)        return RETROK_KP_PLUS;
106   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPENTER)       return RETROK_KP_ENTER;
107   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_KPEQUALS)      return RETROK_KP_EQUALS;
108   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_UP)            return RETROK_UP;
109   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_DOWN)          return RETROK_DOWN;
110   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHT)         return RETROK_RIGHT;
111   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFT)          return RETROK_LEFT;
112   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_INSERT)        return RETROK_INSERT;
113   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_HOME)          return RETROK_HOME;
114   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_END)           return RETROK_END;
115   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_PAGEUP)        return RETROK_PAGEUP;
116   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_PAGEDOWN)      return RETROK_PAGEDOWN;
117   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F1)            return RETROK_F1;
118   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F2)            return RETROK_F2;
119   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F3)            return RETROK_F3;
120   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F4)            return RETROK_F4;
121   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F5)            return RETROK_F5;
122   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F6)            return RETROK_F6;
123   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F7)            return RETROK_F7;
124   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F8)            return RETROK_F8;
125   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F9)            return RETROK_F9;
126   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F10)           return RETROK_F10;
127   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F11)           return RETROK_F11;
128   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F12)           return RETROK_F12;
129   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F13)           return RETROK_F13;
130   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F14)           return RETROK_F14;
131   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_F15)           return RETROK_F15;
132   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_NUMLOCK)       return RETROK_NUMLOCK;
133   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_CAPSLOCK)      return RETROK_CAPSLOCK;
134   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_SCROLLLOCK)    return RETROK_SCROLLOCK;
135   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTSHIFT)    return RETROK_RSHIFT;
136   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTSHIFT)     return RETROK_LSHIFT;
137   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTCTRL)     return RETROK_RCTRL;
138   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTCTRL)      return RETROK_LCTRL;
139   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTALT)      return RETROK_RALT;
140   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTALT)       return RETROK_LALT;
141   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTMETA)     return RETROK_RMETA;
142   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTMETA)      return RETROK_LMETA;
143   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_RIGHTSUPER)    return RETROK_RSUPER;
144   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_LEFTSUPER)     return RETROK_LSUPER;
145   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_MODE)          return RETROK_MODE;
146   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_COMPOSE)       return RETROK_COMPOSE;
147   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_HELP)          return RETROK_HELP;
148   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_PRINTSCREEN)   return RETROK_PRINT;
149   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_SYSREQ)        return RETROK_SYSREQ;
150   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_BREAK)         return RETROK_BREAK;
151   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_MENU)          return RETROK_MENU;
152   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_POWER)         return RETROK_POWER;
153   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_EURO)          return RETROK_EURO;
154   if (strFeatureName == DEFAULT_KEYBOARD_FEATURE_UNDO)          return RETROK_UNDO;
155 
156   return -1;
157 }
158