File: input_keymaps.h

package info (click to toggle)
retroarch 1.22.2%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 80,716 kB
  • sloc: ansic: 1,275,794; cpp: 115,470; objc: 9,973; asm: 6,624; python: 4,071; makefile: 2,867; sh: 2,828; xml: 1,408; perl: 393; java: 298; javascript: 196
file content (267 lines) | stat: -rw-r--r-- 6,859 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
/*  RetroArch - A frontend for libretro.
 *  Copyright (C) 2010-2014 - Hans-Kristian Arntzen
 *  Copyright (C) 2011-2017 - Daniel De Matteis
 *
 *  RetroArch is free software: you can redistribute it and/or modify it under the terms
 *  of the GNU General Public License as published by the Free Software Found-
 *  ation, either version 3 of the License, or (at your option) any later version.
 *
 *  RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
 *  without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
 *  PURPOSE.  See the GNU General Public License for more details.
 *
 *  You should have received a copy of the GNU General Public License along with RetroArch.
 *  If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef INPUT_KEYMAPS_H__
#define INPUT_KEYMAPS_H__

#include <stdint.h>

#include <retro_common_api.h>
#include <libretro.h>

#define RARCH_KEY_MAP_RWEBINPUT_SIZE 111

RETRO_BEGIN_DECLS

#define SC_ESCAPE 0x01
#define SC_1 0x02
#define SC_2 0x03
#define SC_3 0x04
#define SC_4 0x05
#define SC_5 0x06
#define SC_6 0x07
#define SC_7 0x08
#define SC_8 0x09
#define SC_9 0x0A
#define SC_0 0x0B
#define SC_MINUS 0x0C
#define SC_EQUALS 0x0D
#define SC_BACKSPACE 0x0E
#define SC_TAB 0x0F
#define SC_q 0x10
#define SC_w 0x11
#define SC_e 0x12
#define SC_r 0x13
#define SC_t 0x14
#define SC_y 0x15
#define SC_u 0x16
#define SC_i 0x17
#define SC_o 0x18
#define SC_p 0x19
#define SC_LEFTBRACKET 0x1A
#define SC_RIGHTBRACKET 0x1B
#define SC_RETURN 0x1C
#define SC_LCTRL 0x1D
#define SC_a 0x1E
#define SC_s 0x1F
#define SC_d 0x20
#define SC_f 0x21
#define SC_g 0x22
#define SC_h 0x23
#define SC_j 0x24
#define SC_k 0x25
#define SC_l 0x26
#define SC_SEMICOLON 0x27
#define SC_APOSTROPHE 0x28
#define SC_BACKQUOTE 0x29
#define SC_LSHIFT 0x2A
#define SC_BACKSLASH 0x2B
#define SC_z 0x2C
#define SC_x 0x2D
#define SC_c 0x2E
#define SC_v 0x2F
#define SC_b 0x30
#define SC_n 0x31
#define SC_m 0x32
#define SC_COMMA 0x33
#define SC_PERIOD 0x34
#define SC_SLASH 0x35
#define SC_RSHIFT 0x36
#define SC_KP_MULTIPLY 0x37
#define SC_LALT 0x38
#define SC_SPACE 0x39
#define SC_CAPSLOCK 0x3A
#define SC_F1 0x3B
#define SC_F2 0x3C
#define SC_F3 0x3D
#define SC_F4 0x3E
#define SC_F5 0x3F
#define SC_F6 0x40
#define SC_F7 0x41
#define SC_F8 0x42
#define SC_F9 0x43
#define SC_F10 0x44
#define SC_NUMLOCK 0x45
#define SC_SCROLLLOCK 0x46
#define SC_KP7 0x47
#define SC_KP8 0x48
#define SC_KP9 0x49
#define SC_KP_MINUS 0x4A
#define SC_KP4 0x4B
#define SC_KP5 0x4C
#define SC_KP6 0x4D
#define SC_KP_PLUS 0x4E
#define SC_KP1 0x4F
#define SC_KP2 0x50
#define SC_KP3 0x51
#define SC_KP0 0x52
#define SC_KP_PERIOD 0x53
#define SC_ALT_PRINT 0x54
#define SC_ANGLEBRACKET 0x56
#define SC_F11 0x57
#define SC_F12 0x58
#define SC_OEM_1 0x5a
#define SC_OEM_2 0x5b
#define SC_OEM_3 0x5c
#define SC_ERASE_EOF 0x5d
#define SC_CLEAR 0x5d
#define SC_OEM_4 0x5e
#define SC_OEM_5 0x5f
#define SC_HELP 0x63
#define SC_F13 0x64
#define SC_F14 0x65
#define SC_F15 0x66
#define SC_F16 0x67
#define SC_F17 0x68
#define SC_F18 0x69
#define SC_F19 0x6a
#define SC_F20 0x6b
#define SC_F21 0x6c
#define SC_F22 0x6d
#define SC_F23 0x6e
#define SC_OEM_6 0x6f
#define SC_KATAKANA 0x70
#define SC_OEM_7 0x71
#define SC_F24 0x76
#define SC_SBCSCHAR 0x77
#define SC_CONVERT 0x79
#define SC_NONCONVERT 0x7B
#define SC_MEDIA_PREV 0xE010
#define SC_MEDIA_NEXT 0xE019
#define SC_KP_ENTER 0xE01C
#define SC_RCTRL 0xE01D
#define SC_VOLUME_MUTE 0xE020
#define SC_LAUNCH_APP2 0xE021
#define SC_MEDIA_PLAY 0xE022
#define SC_MEDIA_STOP 0xE024
#define SC_VOLUME_DOWN 0xE02E
#define SC_VOLUME_UP 0xE030
#define SC_BROWSER_HOME 0xE032
#define SC_KP_DIVIDE 0xE035
#define SC_PRINT 0xE037
#define SC_RALT 0xE038
#define SC_BREAK 0xE046
#define SC_HOME 0xE047
#define SC_UP 0xE048
#define SC_PAGEUP 0xE049
#define SC_LEFT 0xE04B
#define SC_RIGHT 0xE04D
#define SC_END 0xE04F
#define SC_DOWN 0xE050
#define SC_PAGEDOWN 0xE051
#define SC_INSERT 0xE052
#define SC_DELETE 0xE053
#define SC_LSUPER 0xE05B
#define SC_RSUPER 0xE05C
#define SC_MENU 0xE05D
#define SC_POWER 0xE05E
#define SC_SLEEP 0xE05F
#define SC_WAKE 0xE063
#define SC_BROWSER_SEARCH 0xE065
#define SC_BROWSER_FAVORITES 0xE066
#define SC_BROWSER_REFRESH 0xE067
#define SC_BROWSER_STOP 0xE068
#define SC_BROWSER_FORWARD 0xE069
#define SC_BROWSER_BACK 0xE06A
#define SC_LAUNCH_APP1 0xE06B
#define SC_LAUNCH_EMAIL 0xE06C
#define SC_LAUNCH_MEDIA 0xE06D
#define SC_PAUSE 0xFFFE /*0xE11D45*/
#define SC_LAST 0xFFFF

struct rarch_key_map
{
   unsigned sym;
   enum retro_key rk;
};

struct input_key_map
{
   const char *str;
   enum retro_key key;
};

/**
 * input_keymaps_init_keyboard_lut:
 * @map                   : Keyboard map.
 *
 * Initializes and sets the keyboard layout to a keyboard map (@map).
 **/
void input_keymaps_init_keyboard_lut(const struct rarch_key_map *map);

/**
 * input_keymaps_translate_keysym_to_rk:
 * @sym                   : Key symbol.
 *
 * Translates a key symbol from the keyboard layout table
 * to an associated retro key identifier.
 *
 * Returns: Retro key identifier.
 **/
enum retro_key input_keymaps_translate_keysym_to_rk(unsigned sym);

/**
 * input_keymaps_translate_rk_to_str:
 * @key                   : Retro key identifier.
 * @s                     : Buffer.
 * @len                   : Size of @s.
 *
 * Translates a retro key identifier to a human-readable
 * identifier string.
 **/
void input_keymaps_translate_rk_to_str(enum retro_key key, char *s, size_t len);

/**
 * input_translate_rk_to_ascii:
 * @key : Retro key identifier
 * @mod : retro_mod mask
 *
 * Translates a retro key identifier with mod mask to ASCII.
 */
uint8_t input_keymaps_translate_rk_to_ascii(enum retro_key key, enum retro_mod mod);

extern enum retro_key rarch_keysym_lut[RETROK_LAST];

extern const struct input_key_map input_config_key_map[];

extern const struct rarch_key_map rarch_key_map_x11[];
extern const struct rarch_key_map rarch_key_map_sdl[];
extern const struct rarch_key_map rarch_key_map_sdl2[];
extern const struct rarch_key_map rarch_key_map_dinput[];

 /* is generated at runtime so can't be const */
extern struct rarch_key_map rarch_key_map_rwebinput[RARCH_KEY_MAP_RWEBINPUT_SIZE];

extern const struct rarch_key_map rarch_key_map_linux[];
extern const struct rarch_key_map rarch_key_map_apple_hid[];
extern const struct rarch_key_map rarch_key_map_android[];
extern const struct rarch_key_map rarch_key_map_qnx[];
extern const struct rarch_key_map rarch_key_map_dos[];
extern const struct rarch_key_map rarch_key_map_wiiu[];
extern const struct rarch_key_map rarch_key_map_winraw[];
#ifdef HAVE_LIBNX
extern const struct rarch_key_map rarch_key_map_switch[];
#endif
#ifdef VITA
extern const struct rarch_key_map rarch_key_map_vita[];
#endif
#ifdef ORBIS
extern const struct rarch_key_map rarch_key_map_ps4[];
#endif

RETRO_END_DECLS

#endif