Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
hrydgard
GitHub Repository: hrydgard/ppsspp
Path: blob/master/Core/KeyMapDefaults.cpp
3185 views
1
#include "ppsspp_config.h"
2
3
#include "Common/CommonFuncs.h"
4
#include "Common/Input/KeyCodes.h"
5
#include "Common/Input/InputState.h"
6
#include "Common/System/System.h"
7
#include "Core/KeyMapDefaults.h"
8
#include "Core/KeyMap.h"
9
10
#include "Core/HLE/sceCtrl.h"
11
12
namespace KeyMap {
13
14
struct DefMappingStruct {
15
int pspKey;
16
int keyOrAxis;
17
int direction; // if 0, it's a key, otherwise an axis.
18
};
19
20
static const DefMappingStruct defaultQwertyKeyboardKeyMap[] = {
21
{CTRL_SQUARE, NKCODE_A},
22
{CTRL_TRIANGLE, NKCODE_S},
23
{CTRL_CIRCLE, NKCODE_X},
24
{CTRL_CROSS, NKCODE_Z},
25
{CTRL_LTRIGGER, NKCODE_Q},
26
{CTRL_RTRIGGER, NKCODE_W},
27
28
{CTRL_START, NKCODE_SPACE},
29
#ifdef _WIN32
30
{CTRL_SELECT, NKCODE_V},
31
#else
32
{CTRL_SELECT, NKCODE_ENTER},
33
#endif
34
{CTRL_UP , NKCODE_DPAD_UP},
35
{CTRL_DOWN , NKCODE_DPAD_DOWN},
36
{CTRL_LEFT , NKCODE_DPAD_LEFT},
37
{CTRL_RIGHT, NKCODE_DPAD_RIGHT},
38
{VIRTKEY_AXIS_Y_MAX, NKCODE_I},
39
{VIRTKEY_AXIS_Y_MIN, NKCODE_K},
40
{VIRTKEY_AXIS_X_MIN, NKCODE_J},
41
{VIRTKEY_AXIS_X_MAX, NKCODE_L},
42
{VIRTKEY_RAPID_FIRE, NKCODE_SHIFT_LEFT},
43
{VIRTKEY_FASTFORWARD, NKCODE_TAB},
44
{VIRTKEY_SPEED_TOGGLE, NKCODE_GRAVE},
45
{VIRTKEY_PAUSE , NKCODE_ESCAPE},
46
{VIRTKEY_REWIND , NKCODE_DEL},
47
{VIRTKEY_ANALOG_LIGHTLY, NKCODE_SHIFT_RIGHT},
48
{VIRTKEY_TOGGLE_DEBUGGER, NKCODE_F12},
49
};
50
51
static const DefMappingStruct defaultAzertyKeyboardKeyMap[] = {
52
{CTRL_SQUARE, NKCODE_Q},
53
{CTRL_TRIANGLE, NKCODE_S},
54
{CTRL_CIRCLE, NKCODE_X},
55
{CTRL_CROSS, NKCODE_W},
56
{CTRL_LTRIGGER, NKCODE_A},
57
{CTRL_RTRIGGER, NKCODE_Z},
58
59
{CTRL_START, NKCODE_SPACE},
60
#ifdef _WIN32
61
{CTRL_SELECT, NKCODE_V},
62
#else
63
{CTRL_SELECT, NKCODE_ENTER},
64
#endif
65
{CTRL_UP , NKCODE_DPAD_UP},
66
{CTRL_DOWN , NKCODE_DPAD_DOWN},
67
{CTRL_LEFT , NKCODE_DPAD_LEFT},
68
{CTRL_RIGHT, NKCODE_DPAD_RIGHT},
69
{VIRTKEY_AXIS_Y_MAX, NKCODE_I},
70
{VIRTKEY_AXIS_Y_MIN, NKCODE_K},
71
{VIRTKEY_AXIS_X_MIN, NKCODE_J},
72
{VIRTKEY_AXIS_X_MAX, NKCODE_L},
73
{VIRTKEY_RAPID_FIRE, NKCODE_SHIFT_LEFT},
74
{VIRTKEY_FASTFORWARD, NKCODE_TAB},
75
{VIRTKEY_SPEED_TOGGLE, NKCODE_GRAVE},
76
{VIRTKEY_PAUSE , NKCODE_ESCAPE},
77
{VIRTKEY_REWIND , NKCODE_DEL},
78
{VIRTKEY_ANALOG_LIGHTLY, NKCODE_SHIFT_RIGHT},
79
};
80
81
static const DefMappingStruct defaultQwertzKeyboardKeyMap[] = {
82
{CTRL_SQUARE, NKCODE_A},
83
{CTRL_TRIANGLE, NKCODE_S},
84
{CTRL_CIRCLE, NKCODE_X},
85
{CTRL_CROSS, NKCODE_Y},
86
{CTRL_LTRIGGER, NKCODE_Q},
87
{CTRL_RTRIGGER, NKCODE_W},
88
89
{CTRL_START, NKCODE_SPACE},
90
#ifdef _WIN32
91
{CTRL_SELECT, NKCODE_V},
92
#else
93
{CTRL_SELECT, NKCODE_ENTER},
94
#endif
95
{CTRL_UP , NKCODE_DPAD_UP},
96
{CTRL_DOWN , NKCODE_DPAD_DOWN},
97
{CTRL_LEFT , NKCODE_DPAD_LEFT},
98
{CTRL_RIGHT, NKCODE_DPAD_RIGHT},
99
{VIRTKEY_AXIS_Y_MAX, NKCODE_I},
100
{VIRTKEY_AXIS_Y_MIN, NKCODE_K},
101
{VIRTKEY_AXIS_X_MIN, NKCODE_J},
102
{VIRTKEY_AXIS_X_MAX, NKCODE_L},
103
{VIRTKEY_RAPID_FIRE, NKCODE_SHIFT_LEFT},
104
{VIRTKEY_FASTFORWARD, NKCODE_TAB},
105
{VIRTKEY_SPEED_TOGGLE, NKCODE_GRAVE},
106
{VIRTKEY_PAUSE , NKCODE_ESCAPE},
107
{VIRTKEY_REWIND , NKCODE_DEL},
108
{VIRTKEY_ANALOG_LIGHTLY, NKCODE_SHIFT_RIGHT},
109
};
110
111
static const DefMappingStruct defaultXInputKeyMap[] = {
112
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
113
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
114
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, -1},
115
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, +1},
116
{CTRL_CROSS , NKCODE_BUTTON_A},
117
{CTRL_CIRCLE , NKCODE_BUTTON_B},
118
{CTRL_SQUARE , NKCODE_BUTTON_X},
119
{CTRL_TRIANGLE , NKCODE_BUTTON_Y},
120
{CTRL_UP , NKCODE_DPAD_UP},
121
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
122
{CTRL_DOWN , NKCODE_DPAD_DOWN},
123
{CTRL_LEFT , NKCODE_DPAD_LEFT},
124
{CTRL_START , NKCODE_BUTTON_START},
125
{CTRL_SELECT , NKCODE_BUTTON_SELECT},
126
{CTRL_LTRIGGER , NKCODE_BUTTON_L1},
127
{CTRL_RTRIGGER , NKCODE_BUTTON_R1},
128
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_RTRIGGER, +1},
129
{VIRTKEY_SPEED_TOGGLE, NKCODE_BUTTON_THUMBR},
130
{VIRTKEY_PAUSE , JOYSTICK_AXIS_LTRIGGER, +1},
131
{VIRTKEY_PAUSE, NKCODE_HOME},
132
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_GAS, +1},
133
{VIRTKEY_PAUSE , JOYSTICK_AXIS_BRAKE, +1},
134
};
135
136
static const DefMappingStruct defaultShieldKeyMap[] = {
137
{CTRL_CROSS, NKCODE_BUTTON_A},
138
{CTRL_CIRCLE ,NKCODE_BUTTON_B},
139
{CTRL_SQUARE ,NKCODE_BUTTON_X},
140
{CTRL_TRIANGLE ,NKCODE_BUTTON_Y},
141
{CTRL_START, NKCODE_BUTTON_START},
142
{CTRL_SELECT, JOYSTICK_AXIS_LTRIGGER, +1},
143
{CTRL_LTRIGGER, NKCODE_BUTTON_L1},
144
{CTRL_RTRIGGER, NKCODE_BUTTON_R1},
145
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
146
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
147
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
148
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
149
{CTRL_LEFT, JOYSTICK_AXIS_HAT_X, -1},
150
{CTRL_RIGHT, JOYSTICK_AXIS_HAT_X, +1},
151
{CTRL_UP, JOYSTICK_AXIS_HAT_Y, -1},
152
{CTRL_DOWN, JOYSTICK_AXIS_HAT_Y, +1},
153
{VIRTKEY_FASTFORWARD, JOYSTICK_AXIS_RTRIGGER, +1 },
154
{VIRTKEY_PAUSE, NKCODE_BACK },
155
};
156
157
static const DefMappingStruct defaultMOQI7SKeyMap[] = {
158
{CTRL_CROSS, NKCODE_BUTTON_A},
159
{CTRL_CIRCLE, NKCODE_BUTTON_B},
160
{CTRL_SQUARE, NKCODE_BUTTON_X},
161
{CTRL_TRIANGLE, NKCODE_BUTTON_Y},
162
{CTRL_START, JOYSTICK_AXIS_Z, +1},
163
{CTRL_SELECT, JOYSTICK_AXIS_Z, -1},
164
{CTRL_LTRIGGER, NKCODE_BUTTON_L1},
165
{CTRL_RTRIGGER, NKCODE_BUTTON_R1},
166
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
167
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
168
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
169
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
170
{CTRL_LEFT, JOYSTICK_AXIS_HAT_X, -1},
171
{CTRL_RIGHT, JOYSTICK_AXIS_HAT_X, +1},
172
{CTRL_UP, JOYSTICK_AXIS_HAT_Y, -1},
173
{CTRL_DOWN, JOYSTICK_AXIS_HAT_Y, +1},
174
{VIRTKEY_FASTFORWARD, JOYSTICK_AXIS_RZ, +1 },
175
{VIRTKEY_PAUSE, NKCODE_BACK },
176
};
177
178
static const DefMappingStruct defaultAndroidXboxControllerMap[] = {
179
{CTRL_CROSS , NKCODE_BUTTON_A},
180
{CTRL_CIRCLE , NKCODE_BUTTON_B},
181
{CTRL_SQUARE , NKCODE_BUTTON_X},
182
{CTRL_TRIANGLE , NKCODE_BUTTON_Y},
183
// The hat for DPAD is standard for bluetooth pads, which is the most likely pads on Android I think.
184
{CTRL_LEFT , NKCODE_DPAD_LEFT},
185
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
186
{CTRL_UP , NKCODE_DPAD_UP},
187
{CTRL_DOWN , NKCODE_DPAD_DOWN},
188
{CTRL_START , NKCODE_BUTTON_START},
189
{CTRL_SELECT , NKCODE_BACK},
190
{CTRL_LTRIGGER , NKCODE_BUTTON_L1},
191
{CTRL_RTRIGGER , NKCODE_BUTTON_R1},
192
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_RTRIGGER, +1},
193
{VIRTKEY_PAUSE , JOYSTICK_AXIS_LTRIGGER, +1},
194
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_GAS, +1},
195
{VIRTKEY_PAUSE , JOYSTICK_AXIS_BRAKE, +1},
196
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
197
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
198
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
199
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
200
};
201
202
// Retroid reports its controller as "Retro Station Controller".
203
// It's very similar to the Android Xbox mapping, just with main buttons swapped around.
204
static const DefMappingStruct defaultRetroidControllerMap[] = {
205
{CTRL_CROSS , NKCODE_BUTTON_B},
206
{CTRL_CIRCLE , NKCODE_BUTTON_A},
207
{CTRL_SQUARE , NKCODE_BUTTON_Y},
208
{CTRL_TRIANGLE , NKCODE_BUTTON_X},
209
{CTRL_LEFT , JOYSTICK_AXIS_HAT_X, -1},
210
{CTRL_LEFT , NKCODE_DPAD_LEFT},
211
{CTRL_RIGHT , JOYSTICK_AXIS_HAT_X, +1},
212
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
213
{CTRL_UP , JOYSTICK_AXIS_HAT_Y, -1},
214
{CTRL_UP , NKCODE_DPAD_UP},
215
{CTRL_DOWN , JOYSTICK_AXIS_HAT_Y, +1},
216
{CTRL_DOWN , NKCODE_DPAD_DOWN},
217
{CTRL_START , NKCODE_BUTTON_START},
218
{CTRL_SELECT , NKCODE_BUTTON_SELECT},
219
{CTRL_LTRIGGER , NKCODE_BUTTON_L1},
220
{CTRL_RTRIGGER , NKCODE_BUTTON_R1},
221
{VIRTKEY_FASTFORWARD , NKCODE_BUTTON_R2},
222
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_RTRIGGER, +1},
223
{VIRTKEY_PAUSE , NKCODE_BUTTON_L2},
224
{VIRTKEY_PAUSE , JOYSTICK_AXIS_LTRIGGER, +1},
225
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
226
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
227
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
228
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
229
};
230
231
static const DefMappingStruct defaultPadMapAndroid[] = {
232
{CTRL_CROSS , NKCODE_BUTTON_A},
233
{CTRL_CIRCLE , NKCODE_BUTTON_B},
234
{CTRL_SQUARE , NKCODE_BUTTON_X},
235
{CTRL_TRIANGLE , NKCODE_BUTTON_Y},
236
// The hat for DPAD is standard for bluetooth pads, which is the most likely pads on Android I think.
237
{CTRL_LEFT , JOYSTICK_AXIS_HAT_X, -1},
238
{CTRL_LEFT , NKCODE_DPAD_LEFT},
239
{CTRL_RIGHT , JOYSTICK_AXIS_HAT_X, +1},
240
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
241
{CTRL_UP , JOYSTICK_AXIS_HAT_Y, -1},
242
{CTRL_UP , NKCODE_DPAD_UP},
243
{CTRL_DOWN , JOYSTICK_AXIS_HAT_Y, +1},
244
{CTRL_DOWN , NKCODE_DPAD_DOWN},
245
246
{CTRL_START , NKCODE_BUTTON_START},
247
{CTRL_SELECT , NKCODE_BUTTON_SELECT},
248
{CTRL_LTRIGGER , NKCODE_BUTTON_L1},
249
{CTRL_RTRIGGER , NKCODE_BUTTON_R1},
250
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_RTRIGGER, +1},
251
{VIRTKEY_FASTFORWARD , NKCODE_BUTTON_R2},
252
{VIRTKEY_PAUSE , JOYSTICK_AXIS_LTRIGGER, +1},
253
{VIRTKEY_PAUSE , NKCODE_BUTTON_L2 },
254
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_GAS, +1},
255
{VIRTKEY_PAUSE , JOYSTICK_AXIS_BRAKE, +1},
256
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
257
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
258
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
259
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
260
};
261
262
static const DefMappingStruct defaultPadMap[] = {
263
{CTRL_CROSS , NKCODE_BUTTON_2},
264
{CTRL_CIRCLE , NKCODE_BUTTON_3},
265
{CTRL_SQUARE , NKCODE_BUTTON_4},
266
{CTRL_TRIANGLE , NKCODE_BUTTON_1},
267
{CTRL_UP , NKCODE_DPAD_UP},
268
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
269
{CTRL_DOWN , NKCODE_DPAD_DOWN},
270
{CTRL_LEFT , NKCODE_DPAD_LEFT},
271
{CTRL_START , NKCODE_BUTTON_10},
272
{CTRL_SELECT , NKCODE_BUTTON_9},
273
{CTRL_LTRIGGER , NKCODE_BUTTON_7},
274
{CTRL_RTRIGGER , NKCODE_BUTTON_8},
275
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
276
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
277
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
278
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
279
{VIRTKEY_PAUSE , NKCODE_BUTTON_THUMBL},
280
{VIRTKEY_PAUSE , NKCODE_BUTTON_SELECT },
281
{VIRTKEY_PAUSE , NKCODE_BUTTON_L2 },
282
{VIRTKEY_PAUSE , JOYSTICK_AXIS_LTRIGGER, +1},
283
{VIRTKEY_SPEED_ANALOG, JOYSTICK_AXIS_RTRIGGER, +1},
284
};
285
286
static const DefMappingStruct defaultPadMapIOS[] = {
287
{CTRL_CROSS , NKCODE_BUTTON_2},
288
{CTRL_CIRCLE , NKCODE_BUTTON_3},
289
{CTRL_SQUARE , NKCODE_BUTTON_4},
290
{CTRL_TRIANGLE , NKCODE_BUTTON_1},
291
{CTRL_UP , NKCODE_DPAD_UP},
292
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
293
{CTRL_DOWN , NKCODE_DPAD_DOWN},
294
{CTRL_LEFT , NKCODE_DPAD_LEFT},
295
{CTRL_START , NKCODE_BUTTON_START},
296
{CTRL_SELECT , NKCODE_BUTTON_SELECT},
297
{CTRL_LTRIGGER , NKCODE_BUTTON_L1},
298
{CTRL_RTRIGGER , NKCODE_BUTTON_R1},
299
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
300
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
301
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, +1},
302
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, -1},
303
{VIRTKEY_PAUSE , NKCODE_BUTTON_THUMBL },
304
{VIRTKEY_FASTFORWARD , JOYSTICK_AXIS_RTRIGGER, +1},
305
};
306
307
static const DefMappingStruct defaultXperiaPlay[] = {
308
{CTRL_CROSS , NKCODE_BUTTON_CROSS},
309
{CTRL_CIRCLE , NKCODE_BUTTON_CIRCLE},
310
{CTRL_SQUARE , NKCODE_BUTTON_X},
311
{CTRL_TRIANGLE , NKCODE_BUTTON_Y},
312
{CTRL_UP , NKCODE_DPAD_UP},
313
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
314
{CTRL_DOWN , NKCODE_DPAD_DOWN},
315
{CTRL_LEFT , NKCODE_DPAD_LEFT},
316
{CTRL_START , NKCODE_BUTTON_START},
317
{CTRL_SELECT , NKCODE_BUTTON_SELECT},
318
{CTRL_LTRIGGER , NKCODE_BUTTON_L1},
319
{CTRL_RTRIGGER , NKCODE_BUTTON_R1},
320
{VIRTKEY_AXIS_X_MIN, JOYSTICK_AXIS_X, -1},
321
{VIRTKEY_AXIS_X_MAX, JOYSTICK_AXIS_X, +1},
322
{VIRTKEY_AXIS_Y_MIN, JOYSTICK_AXIS_Y, -1},
323
{VIRTKEY_AXIS_Y_MAX, JOYSTICK_AXIS_Y, +1},
324
};
325
326
static const DefMappingStruct defaultVRLeftController[] = {
327
{CTRL_UP , NKCODE_DPAD_UP},
328
{CTRL_DOWN , NKCODE_DPAD_DOWN},
329
{CTRL_LEFT , NKCODE_DPAD_LEFT},
330
{CTRL_RIGHT , NKCODE_DPAD_RIGHT},
331
{CTRL_SELECT , NKCODE_BUTTON_THUMBL},
332
{CTRL_LTRIGGER , NKCODE_BUTTON_X},
333
{CTRL_RTRIGGER , NKCODE_BUTTON_Y},
334
{CTRL_SCREEN , NKCODE_ALT_LEFT},
335
};
336
337
static const DefMappingStruct defaultVRRightController[] = {
338
{CTRL_CIRCLE , NKCODE_ALT_RIGHT},
339
{CTRL_CROSS , NKCODE_ENTER},
340
{CTRL_SQUARE , NKCODE_BUTTON_B},
341
{CTRL_TRIANGLE , NKCODE_BUTTON_A},
342
{CTRL_START , NKCODE_BUTTON_THUMBR},
343
{VIRTKEY_AXIS_Y_MAX, NKCODE_DPAD_UP},
344
{VIRTKEY_AXIS_Y_MIN, NKCODE_DPAD_DOWN},
345
{VIRTKEY_AXIS_X_MIN, NKCODE_DPAD_LEFT},
346
{VIRTKEY_AXIS_X_MAX, NKCODE_DPAD_RIGHT},
347
};
348
349
static void SetDefaultKeyMap(InputDeviceID deviceId, const DefMappingStruct *array, size_t count, bool replace) {
350
for (size_t i = 0; i < count; i++) {
351
if (array[i].direction == 0)
352
SetInputMapping(array[i].pspKey, MultiInputMapping(InputMapping(deviceId, array[i].keyOrAxis)), replace);
353
else
354
SetInputMapping(array[i].pspKey, MultiInputMapping(InputMapping(deviceId, array[i].keyOrAxis, array[i].direction)), replace);
355
}
356
g_seenDeviceIds.insert(deviceId);
357
}
358
359
void SetDefaultKeyMap(DefaultMaps dmap, bool replace) {
360
switch (dmap) {
361
case DEFAULT_MAPPING_KEYBOARD:
362
{
363
int keyboardLayout = (int)System_GetPropertyInt(SYSPROP_KEYBOARD_LAYOUT);
364
switch (keyboardLayout) {
365
case KEYBOARD_LAYOUT_QWERTZ:
366
SetDefaultKeyMap(DEVICE_ID_KEYBOARD, defaultQwertzKeyboardKeyMap, ARRAY_SIZE(defaultQwertzKeyboardKeyMap), replace);
367
break;
368
case KEYBOARD_LAYOUT_AZERTY:
369
SetDefaultKeyMap(DEVICE_ID_KEYBOARD, defaultAzertyKeyboardKeyMap, ARRAY_SIZE(defaultAzertyKeyboardKeyMap), replace);
370
break;
371
case KEYBOARD_LAYOUT_QWERTY:
372
default:
373
SetDefaultKeyMap(DEVICE_ID_KEYBOARD, defaultQwertyKeyboardKeyMap, ARRAY_SIZE(defaultQwertyKeyboardKeyMap), replace);
374
break;
375
}
376
}
377
break;
378
case DEFAULT_MAPPING_XINPUT:
379
SetDefaultKeyMap(DEVICE_ID_XINPUT_0, defaultXInputKeyMap, ARRAY_SIZE(defaultXInputKeyMap), replace);
380
break;
381
case DEFAULT_MAPPING_SHIELD:
382
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultShieldKeyMap, ARRAY_SIZE(defaultShieldKeyMap), replace);
383
break;
384
case DEFAULT_MAPPING_MOQI_I7S:
385
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultMOQI7SKeyMap, ARRAY_SIZE(defaultMOQI7SKeyMap), replace);
386
break;
387
case DEFAULT_MAPPING_PAD:
388
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultPadMap, ARRAY_SIZE(defaultPadMap), replace);
389
break;
390
case DEFAULT_MAPPING_ANDROID_PAD:
391
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultPadMapAndroid, ARRAY_SIZE(defaultPadMapAndroid), replace);
392
break;
393
case DEFAULT_MAPPING_IOS_PAD:
394
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultPadMapIOS, ARRAY_SIZE(defaultPadMapIOS), replace);
395
break;
396
case DEFAULT_MAPPING_XPERIA_PLAY:
397
SetDefaultKeyMap(DEVICE_ID_DEFAULT, defaultXperiaPlay, ARRAY_SIZE(defaultXperiaPlay), replace);
398
break;
399
case DEFAULT_MAPPING_ANDROID_XBOX:
400
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultAndroidXboxControllerMap, ARRAY_SIZE(defaultAndroidXboxControllerMap), replace);
401
break;
402
case DEFAULT_MAPPING_RETROID_CONTROLLER:
403
SetDefaultKeyMap(DEVICE_ID_PAD_0, defaultRetroidControllerMap, ARRAY_SIZE(defaultRetroidControllerMap), replace);
404
break;
405
case DEFAULT_MAPPING_VR_HEADSET:
406
SetDefaultKeyMap(DEVICE_ID_XR_CONTROLLER_LEFT, defaultVRLeftController, ARRAY_SIZE(defaultVRLeftController), replace);
407
SetDefaultKeyMap(DEVICE_ID_XR_CONTROLLER_RIGHT, defaultVRRightController, ARRAY_SIZE(defaultVRRightController), replace);
408
break;
409
}
410
411
UpdateNativeMenuKeys();
412
}
413
414
} // namespace KeyMap
415
416