Sunshine
latest
Self-hosted game stream host for Moonlight.
keylayout.h
Go to the documentation of this file.
1
5
#pragma once
6
7
// standard includes
8
#include <array>
9
#include <cstdint>
10
11
namespace
platf {
12
// Virtual Key to Scan Code mapping for the US English layout (00000409).
13
// GameStream uses this as the canonical key layout for scancode conversion.
14
constexpr
std::array<std::uint8_t, std::numeric_limits<std::uint8_t>::max() + 1> VK_TO_SCANCODE_MAP {
15
0,
/* 0x00 */
16
0,
/* 0x01 */
17
0,
/* 0x02 */
18
70,
/* 0x03 */
19
0,
/* 0x04 */
20
0,
/* 0x05 */
21
0,
/* 0x06 */
22
0,
/* 0x07 */
23
14,
/* 0x08 */
24
15,
/* 0x09 */
25
0,
/* 0x0a */
26
0,
/* 0x0b */
27
76,
/* 0x0c */
28
28,
/* 0x0d */
29
0,
/* 0x0e */
30
0,
/* 0x0f */
31
42,
/* 0x10 */
32
29,
/* 0x11 */
33
56,
/* 0x12 */
34
0,
/* 0x13 */
35
58,
/* 0x14 */
36
0,
/* 0x15 */
37
0,
/* 0x16 */
38
0,
/* 0x17 */
39
0,
/* 0x18 */
40
0,
/* 0x19 */
41
0,
/* 0x1a */
42
1,
/* 0x1b */
43
0,
/* 0x1c */
44
0,
/* 0x1d */
45
0,
/* 0x1e */
46
0,
/* 0x1f */
47
57,
/* 0x20 */
48
73,
/* 0x21 */
49
81,
/* 0x22 */
50
79,
/* 0x23 */
51
71,
/* 0x24 */
52
75,
/* 0x25 */
53
72,
/* 0x26 */
54
77,
/* 0x27 */
55
80,
/* 0x28 */
56
0,
/* 0x29 */
57
0,
/* 0x2a */
58
0,
/* 0x2b */
59
84,
/* 0x2c */
60
82,
/* 0x2d */
61
83,
/* 0x2e */
62
99,
/* 0x2f */
63
11,
/* 0x30 */
64
2,
/* 0x31 */
65
3,
/* 0x32 */
66
4,
/* 0x33 */
67
5,
/* 0x34 */
68
6,
/* 0x35 */
69
7,
/* 0x36 */
70
8,
/* 0x37 */
71
9,
/* 0x38 */
72
10,
/* 0x39 */
73
0,
/* 0x3a */
74
0,
/* 0x3b */
75
0,
/* 0x3c */
76
0,
/* 0x3d */
77
0,
/* 0x3e */
78
0,
/* 0x3f */
79
0,
/* 0x40 */
80
30,
/* 0x41 */
81
48,
/* 0x42 */
82
46,
/* 0x43 */
83
32,
/* 0x44 */
84
18,
/* 0x45 */
85
33,
/* 0x46 */
86
34,
/* 0x47 */
87
35,
/* 0x48 */
88
23,
/* 0x49 */
89
36,
/* 0x4a */
90
37,
/* 0x4b */
91
38,
/* 0x4c */
92
50,
/* 0x4d */
93
49,
/* 0x4e */
94
24,
/* 0x4f */
95
25,
/* 0x50 */
96
16,
/* 0x51 */
97
19,
/* 0x52 */
98
31,
/* 0x53 */
99
20,
/* 0x54 */
100
22,
/* 0x55 */
101
47,
/* 0x56 */
102
17,
/* 0x57 */
103
45,
/* 0x58 */
104
21,
/* 0x59 */
105
44,
/* 0x5a */
106
91,
/* 0x5b */
107
92,
/* 0x5c */
108
93,
/* 0x5d */
109
0,
/* 0x5e */
110
95,
/* 0x5f */
111
82,
/* 0x60 */
112
79,
/* 0x61 */
113
80,
/* 0x62 */
114
81,
/* 0x63 */
115
75,
/* 0x64 */
116
76,
/* 0x65 */
117
77,
/* 0x66 */
118
71,
/* 0x67 */
119
72,
/* 0x68 */
120
73,
/* 0x69 */
121
55,
/* 0x6a */
122
78,
/* 0x6b */
123
0,
/* 0x6c */
124
74,
/* 0x6d */
125
83,
/* 0x6e */
126
53,
/* 0x6f */
127
59,
/* 0x70 */
128
60,
/* 0x71 */
129
61,
/* 0x72 */
130
62,
/* 0x73 */
131
63,
/* 0x74 */
132
64,
/* 0x75 */
133
65,
/* 0x76 */
134
66,
/* 0x77 */
135
67,
/* 0x78 */
136
68,
/* 0x79 */
137
87,
/* 0x7a */
138
88,
/* 0x7b */
139
100,
/* 0x7c */
140
101,
/* 0x7d */
141
102,
/* 0x7e */
142
103,
/* 0x7f */
143
104,
/* 0x80 */
144
105,
/* 0x81 */
145
106,
/* 0x82 */
146
107,
/* 0x83 */
147
108,
/* 0x84 */
148
109,
/* 0x85 */
149
110,
/* 0x86 */
150
118,
/* 0x87 */
151
0,
/* 0x88 */
152
0,
/* 0x89 */
153
0,
/* 0x8a */
154
0,
/* 0x8b */
155
0,
/* 0x8c */
156
0,
/* 0x8d */
157
0,
/* 0x8e */
158
0,
/* 0x8f */
159
69,
/* 0x90 */
160
70,
/* 0x91 */
161
0,
/* 0x92 */
162
0,
/* 0x93 */
163
0,
/* 0x94 */
164
0,
/* 0x95 */
165
0,
/* 0x96 */
166
0,
/* 0x97 */
167
0,
/* 0x98 */
168
0,
/* 0x99 */
169
0,
/* 0x9a */
170
0,
/* 0x9b */
171
0,
/* 0x9c */
172
0,
/* 0x9d */
173
0,
/* 0x9e */
174
0,
/* 0x9f */
175
42,
/* 0xa0 */
176
54,
/* 0xa1 */
177
29,
/* 0xa2 */
178
29,
/* 0xa3 */
179
56,
/* 0xa4 */
180
56,
/* 0xa5 */
181
106,
/* 0xa6 */
182
105,
/* 0xa7 */
183
103,
/* 0xa8 */
184
104,
/* 0xa9 */
185
101,
/* 0xaa */
186
102,
/* 0xab */
187
50,
/* 0xac */
188
32,
/* 0xad */
189
46,
/* 0xae */
190
48,
/* 0xaf */
191
25,
/* 0xb0 */
192
16,
/* 0xb1 */
193
36,
/* 0xb2 */
194
34,
/* 0xb3 */
195
108,
/* 0xb4 */
196
109,
/* 0xb5 */
197
107,
/* 0xb6 */
198
33,
/* 0xb7 */
199
0,
/* 0xb8 */
200
0,
/* 0xb9 */
201
39,
/* 0xba */
202
13,
/* 0xbb */
203
51,
/* 0xbc */
204
12,
/* 0xbd */
205
52,
/* 0xbe */
206
53,
/* 0xbf */
207
41,
/* 0xc0 */
208
115,
/* 0xc1 */
209
126,
/* 0xc2 */
210
0,
/* 0xc3 */
211
0,
/* 0xc4 */
212
0,
/* 0xc5 */
213
0,
/* 0xc6 */
214
0,
/* 0xc7 */
215
0,
/* 0xc8 */
216
0,
/* 0xc9 */
217
0,
/* 0xca */
218
0,
/* 0xcb */
219
0,
/* 0xcc */
220
0,
/* 0xcd */
221
0,
/* 0xce */
222
0,
/* 0xcf */
223
0,
/* 0xd0 */
224
0,
/* 0xd1 */
225
0,
/* 0xd2 */
226
0,
/* 0xd3 */
227
0,
/* 0xd4 */
228
0,
/* 0xd5 */
229
0,
/* 0xd6 */
230
0,
/* 0xd7 */
231
0,
/* 0xd8 */
232
0,
/* 0xd9 */
233
0,
/* 0xda */
234
26,
/* 0xdb */
235
43,
/* 0xdc */
236
27,
/* 0xdd */
237
40,
/* 0xde */
238
0,
/* 0xdf */
239
0,
/* 0xe0 */
240
0,
/* 0xe1 */
241
86,
/* 0xe2 */
242
0,
/* 0xe3 */
243
0,
/* 0xe4 */
244
0,
/* 0xe5 */
245
0,
/* 0xe6 */
246
0,
/* 0xe7 */
247
0,
/* 0xe8 */
248
113,
/* 0xe9 */
249
92,
/* 0xea */
250
123,
/* 0xeb */
251
0,
/* 0xec */
252
111,
/* 0xed */
253
90,
/* 0xee */
254
0,
/* 0xef */
255
0,
/* 0xf0 */
256
91,
/* 0xf1 */
257
0,
/* 0xf2 */
258
95,
/* 0xf3 */
259
0,
/* 0xf4 */
260
94,
/* 0xf5 */
261
0,
/* 0xf6 */
262
0,
/* 0xf7 */
263
0,
/* 0xf8 */
264
93,
/* 0xf9 */
265
0,
/* 0xfa */
266
98,
/* 0xfb */
267
0,
/* 0xfc */
268
0,
/* 0xfd */
269
0,
/* 0xfe */
270
0,
/* 0xff */
271
};
272
}
// namespace platf
src
platform
windows
keylayout.h
Generated by
1.10.0