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