Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(321)

Side by Side Diff: ui/events/ozone/evdev/gamepad_mapping.cc

Issue 2805793002: ozone: evdev: Add gamepad support (Closed)
Patch Set: Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include <linux/input.h>
6
7 #include "ui/events/ozone/evdev/gamepad_mapping.h"
8 #include "ui/events/webgamepad_constants.h"
9
10 namespace ui {
11 ///////////////////////////////////////////////////////////////////////////////
12 // The following maps are converted from android kl files.
13 using MappingData = std::vector<ui::GamepadMappingEntry>;
14
15 MappingData* GetVendor_2378Product_100aMap() {
16 static MappingData map = {
spang 2017/04/13 00:52:20 Several comments about this - Why copy these stati
jkwang 2017/04/19 19:42:23 Well, there is problems with original design. Lots
17 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
18 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
19 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
20 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
21 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
22 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
23 {EV_KEY, BTN_SELECT, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
24 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
25 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
26 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
27 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
28 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
29 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
30 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
31 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
32 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
33 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
34 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
35 return &map;
36 }
37
38 MappingData* GetVendor_046dProduct_c216Map() {
39 static MappingData map = {
40 {EV_KEY, BTN_TRIGGER, GamepadEventType::BUTTON, WG_BUTTON_A},
41 {EV_KEY, BTN_TOP, GamepadEventType::BUTTON, WG_BUTTON_B},
42 {EV_KEY, BTN_THUMB, GamepadEventType::BUTTON, WG_BUTTON_X},
43 {EV_KEY, BTN_THUMB2, GamepadEventType::BUTTON, WG_BUTTON_Y},
44 {EV_KEY, BTN_TOP2, GamepadEventType::BUTTON, WG_BUTTON_L1},
45 {EV_KEY, BTN_PINKIE, GamepadEventType::BUTTON, WG_BUTTON_R1},
46 {EV_KEY, BTN_BASE, GamepadEventType::BUTTON, WG_BUTTON_L2},
47 {EV_KEY, BTN_BASE2, GamepadEventType::BUTTON, WG_BUTTON_R2},
48 {EV_KEY, BTN_BASE3, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
49 {EV_KEY, BTN_BASE4, GamepadEventType::BUTTON, WG_BUTTON_START},
50 {EV_KEY, BTN_BASE5, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
51 {EV_KEY, BTN_BASE6, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
52 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
53 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
54 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
55 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
56 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
57 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
58 return &map;
59 }
60
61 MappingData* GetVendor_045eProduct_028eMap() {
62 static MappingData map = {
63 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
64 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
65 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
66 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
67 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
68 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
69 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
70 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
71 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
72 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
73 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
74 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
75 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
76 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
77 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
78 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
79 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
80 return &map;
81 }
82
83 MappingData* GetVendor_054cProduct_0268Map() {
84 static MappingData map = {
85 {EV_KEY, 0x12e, GamepadEventType::BUTTON, WG_BUTTON_A},
86 {EV_KEY, 0x12d, GamepadEventType::BUTTON, WG_BUTTON_B},
87 {EV_KEY, BTN_DEAD, GamepadEventType::BUTTON, WG_BUTTON_X},
88 {EV_KEY, 0x12c, GamepadEventType::BUTTON, WG_BUTTON_Y},
89 {EV_KEY, BTN_BASE5, GamepadEventType::BUTTON, WG_BUTTON_L1},
90 {EV_KEY, BTN_BASE6, GamepadEventType::BUTTON, WG_BUTTON_R1},
91 {EV_KEY, BTN_BASE3, GamepadEventType::BUTTON, WG_BUTTON_L2},
92 {EV_KEY, BTN_BASE4, GamepadEventType::BUTTON, WG_BUTTON_R2},
93 {EV_KEY, BTN_TRIGGER, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
94 {EV_KEY, BTN_TOP, GamepadEventType::BUTTON, WG_BUTTON_START},
95 {EV_KEY, BTN_THUMB, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
96 {EV_KEY, BTN_THUMB2, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
97 {EV_KEY, BTN_TOP2, GamepadEventType::BUTTON, WG_BUTTON_DPAD_UP},
98 {EV_KEY, BTN_BASE, GamepadEventType::BUTTON, WG_BUTTON_DPAD_DOWN},
99 {EV_KEY, BTN_BASE2, GamepadEventType::BUTTON, WG_BUTTON_DPAD_LEFT},
100 {EV_KEY, BTN_PINKIE, GamepadEventType::BUTTON, WG_BUTTON_DPAD_RIGHT},
101 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
102 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
103 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
104 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
105 {EV_ABS, ABS_MT_TOUCH_MAJOR, GamepadEventType::BUTTON, WG_BUTTON_L2},
106 {EV_ABS, ABS_MT_TOUCH_MINOR, GamepadEventType::BUTTON, WG_BUTTON_R2}};
107 return &map;
108 }
109
110 MappingData* GetVendor_046dProduct_b501Map() {
111 static MappingData map = {
112 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
113 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
114 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
115 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
116 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
117 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
118 {EV_KEY, BTN_TL2, GamepadEventType::BUTTON, WG_BUTTON_L2},
119 {EV_KEY, BTN_TR2, GamepadEventType::BUTTON, WG_BUTTON_R2},
120 {EV_KEY, BTN_SELECT, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
121 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
122 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
123 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
124 {EV_KEY, KEY_UP, GamepadEventType::BUTTON, WG_BUTTON_DPAD_UP},
125 {EV_KEY, KEY_DOWN, GamepadEventType::BUTTON, WG_BUTTON_DPAD_DOWN},
126 {EV_KEY, KEY_LEFT, GamepadEventType::BUTTON, WG_BUTTON_DPAD_LEFT},
127 {EV_KEY, KEY_RIGHT, GamepadEventType::BUTTON, WG_BUTTON_DPAD_RIGHT},
128 {EV_KEY, BTN_MODE, GamepadEventType::BUTTON, WG_BUTTON_MODE},
129 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
130 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
131 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
132 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
133 {EV_ABS, ABS_BRAKE, GamepadEventType::BUTTON, WG_BUTTON_L2},
134 {EV_ABS, ABS_GAS, GamepadEventType::BUTTON, WG_BUTTON_R2},
135 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
136 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
137 return &map;
138 }
139
140 MappingData* GetVendor_1689Product_fd00Map() {
141 static MappingData map = {
142 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
143 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
144 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
145 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
146 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
147 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
148 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
149 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
150 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
151 {EV_KEY, BTN_TRIGGER_HAPPY3, GamepadEventType::BUTTON, WG_BUTTON_DPAD_UP},
152 {EV_KEY, BTN_TRIGGER_HAPPY4, GamepadEventType::BUTTON,
153 WG_BUTTON_DPAD_DOWN},
154 {EV_KEY, BTN_TRIGGER_HAPPY1, GamepadEventType::BUTTON,
155 WG_BUTTON_DPAD_LEFT},
156 {EV_KEY, BTN_TRIGGER_HAPPY2, GamepadEventType::BUTTON,
157 WG_BUTTON_DPAD_RIGHT},
158 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
159 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
160 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
161 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
162 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
163 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2}};
164 return &map;
165 }
166
167 MappingData* GetVendor_046dProduct_c294Map() {
168 static MappingData map = {
169 {EV_KEY, BTN_THUMB, GamepadEventType::BUTTON, WG_BUTTON_A},
170 {EV_KEY, BTN_TOP, GamepadEventType::BUTTON, WG_BUTTON_B},
171 {EV_KEY, BTN_TRIGGER, GamepadEventType::BUTTON, WG_BUTTON_X},
172 {EV_KEY, BTN_THUMB2, GamepadEventType::BUTTON, WG_BUTTON_Y},
173 {EV_KEY, BTN_BASE2, GamepadEventType::BUTTON, WG_BUTTON_L1},
174 {EV_KEY, BTN_BASE, GamepadEventType::BUTTON, WG_BUTTON_R1},
175 {EV_KEY, BTN_PINKIE, GamepadEventType::BUTTON, WG_BUTTON_L2},
176 {EV_KEY, BTN_TOP2, GamepadEventType::BUTTON, WG_BUTTON_R2},
177 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
178 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
179 return &map;
180 }
181
182 MappingData* GetVendor_0079Product_0011Map() {
183 static MappingData map = {
184 {EV_KEY, BTN_THUMB, GamepadEventType::BUTTON, WG_BUTTON_A},
185 {EV_KEY, BTN_THUMB2, GamepadEventType::BUTTON, WG_BUTTON_B},
186 {EV_KEY, BTN_TRIGGER, GamepadEventType::BUTTON, WG_BUTTON_X},
187 {EV_KEY, BTN_TOP, GamepadEventType::BUTTON, WG_BUTTON_Y},
188 {EV_KEY, BTN_TOP2, GamepadEventType::BUTTON, WG_BUTTON_L1},
189 {EV_KEY, BTN_PINKIE, GamepadEventType::BUTTON, WG_BUTTON_R1},
190 {EV_KEY, BTN_BASE3, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
191 {EV_KEY, BTN_BASE4, GamepadEventType::BUTTON, WG_BUTTON_START},
192 {EV_ABS, ABS_X, GamepadEventType::BUTTON, kHAT_X},
193 {EV_ABS, ABS_Y, GamepadEventType::BUTTON, kHAT_Y}};
194 return &map;
195 }
196
197 MappingData* GetVendor_1badProduct_f023Map() {
198 static MappingData map = {
199 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
200 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
201 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
202 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
203 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
204 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
205 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
206 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
207 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
208 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
209 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
210 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
211 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
212 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
213 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
214 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
215 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
216 return &map;
217 }
218
219 MappingData* GetVendor_1badProduct_f027Map() {
220 static MappingData map = {
221 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
222 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
223 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
224 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
225 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
226 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
227 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
228 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
229 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
230 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
231 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
232 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
233 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
234 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
235 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
236 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
237 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
238 return &map;
239 }
240
241 MappingData* GetVendor_0583Product_2060Map() {
242 static MappingData map = {
243 {EV_KEY, BTN_TRIGGER, GamepadEventType::BUTTON, WG_BUTTON_A},
244 {EV_KEY, BTN_THUMB, GamepadEventType::BUTTON, WG_BUTTON_B},
245 {EV_KEY, BTN_THUMB2, GamepadEventType::BUTTON, WG_BUTTON_X},
246 {EV_KEY, BTN_TOP, GamepadEventType::BUTTON, WG_BUTTON_Y},
247 {EV_KEY, BTN_BASE, GamepadEventType::BUTTON, WG_BUTTON_L1},
248 {EV_KEY, BTN_BASE2, GamepadEventType::BUTTON, WG_BUTTON_R1},
249 {EV_KEY, BTN_TOP2, GamepadEventType::BUTTON, WG_BUTTON_L2},
250 {EV_KEY, BTN_PINKIE, GamepadEventType::BUTTON, WG_BUTTON_R2},
251 {EV_ABS, ABS_X, GamepadEventType::BUTTON, kHAT_X},
252 {EV_ABS, ABS_Y, GamepadEventType::BUTTON, kHAT_Y}};
253 return &map;
254 }
255
256 MappingData* GetVendor_046dProduct_c299Map() {
257 static MappingData map = {
258 {EV_KEY, BTN_THUMB, GamepadEventType::BUTTON, WG_BUTTON_A},
259 {EV_KEY, BTN_TOP, GamepadEventType::BUTTON, WG_BUTTON_B},
260 {EV_KEY, BTN_TRIGGER, GamepadEventType::BUTTON, WG_BUTTON_X},
261 {EV_KEY, BTN_THUMB2, GamepadEventType::BUTTON, WG_BUTTON_Y},
262 {EV_KEY, BTN_BASE2, GamepadEventType::BUTTON, WG_BUTTON_L1},
263 {EV_KEY, BTN_BASE, GamepadEventType::BUTTON, WG_BUTTON_R1},
264 {EV_KEY, BTN_PINKIE, GamepadEventType::BUTTON, WG_BUTTON_L2},
265 {EV_KEY, BTN_TOP2, GamepadEventType::BUTTON, WG_BUTTON_R2},
266 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
267 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
268 return &map;
269 }
270
271 MappingData* GetVendor_1d79Product_0009Map() {
272 static MappingData map = {
273 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
274 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
275 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
276 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
277 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
278 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
279 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
280 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
281 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
282 {EV_KEY, KEY_UP, GamepadEventType::BUTTON, WG_BUTTON_DPAD_UP},
283 {EV_KEY, KEY_DOWN, GamepadEventType::BUTTON, WG_BUTTON_DPAD_DOWN},
284 {EV_KEY, KEY_LEFT, GamepadEventType::BUTTON, WG_BUTTON_DPAD_LEFT},
285 {EV_KEY, KEY_RIGHT, GamepadEventType::BUTTON, WG_BUTTON_DPAD_RIGHT},
286 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
287 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
288 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
289 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
290 {EV_ABS, ABS_BRAKE, GamepadEventType::BUTTON, WG_BUTTON_L2},
291 {EV_ABS, ABS_GAS, GamepadEventType::BUTTON, WG_BUTTON_R2},
292 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
293 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
294 return &map;
295 }
296
297 MappingData* GetVendor_0b05Product_4500Map() {
298 static MappingData map = {
299 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
300 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
301 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
302 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
303 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
304 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
305 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
306 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
307 {EV_KEY, BTN_MODE, GamepadEventType::BUTTON, WG_BUTTON_MODE},
308 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
309 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
310 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
311 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
312 {EV_ABS, ABS_BRAKE, GamepadEventType::BUTTON, WG_BUTTON_L2},
313 {EV_ABS, ABS_GAS, GamepadEventType::BUTTON, WG_BUTTON_R2},
314 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
315 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
316 return &map;
317 }
318
319 MappingData* GetVendor_046dProduct_c21dMap() {
320 static MappingData map = {
321 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
322 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
323 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
324 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
325 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
326 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
327 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
328 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
329 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
330 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
331 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
332 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
333 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
334 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
335 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
336 return &map;
337 }
338
339 MappingData* GetVendor_18d1Product_2c40Map() {
340 static MappingData map = {
341 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
342 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
343 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
344 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
345 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
346 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
347 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
348 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
349 {EV_KEY, BTN_MODE, GamepadEventType::BUTTON, WG_BUTTON_MODE},
350 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
351 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
352 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
353 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
354 {EV_ABS, ABS_BRAKE, GamepadEventType::BUTTON, WG_BUTTON_L2},
355 {EV_ABS, ABS_GAS, GamepadEventType::BUTTON, WG_BUTTON_R2},
356 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
357 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
358 return &map;
359 }
360
361 MappingData* GetVendor_2378Product_1008Map() {
362 static MappingData map = {
363 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
364 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
365 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
366 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
367 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
368 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
369 {EV_KEY, BTN_SELECT, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
370 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
371 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
372 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
373 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
374 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
375 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
376 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
377 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
378 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
379 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
380 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
381 return &map;
382 }
383
384 MappingData* GetVendor_1689Product_fd01Map() {
385 static MappingData map = {
386 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
387 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
388 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
389 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
390 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
391 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
392 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
393 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
394 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
395 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
396 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
397 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
398 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
399 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
400 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
401 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
402 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
403 return &map;
404 }
405
406 MappingData* GetVendor_12bdProduct_d015Map() {
407 static MappingData map = {
408 {EV_KEY, BTN_C, GamepadEventType::BUTTON, WG_BUTTON_A},
409 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
410 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
411 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_Y},
412 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_L1},
413 {EV_KEY, BTN_Z, GamepadEventType::BUTTON, WG_BUTTON_R1},
414 {EV_KEY, BTN_TL2, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
415 {EV_KEY, BTN_TR2, GamepadEventType::BUTTON, WG_BUTTON_START},
416 {EV_ABS, ABS_X, GamepadEventType::BUTTON, kHAT_X},
417 {EV_ABS, ABS_Y, GamepadEventType::BUTTON, kHAT_Y}};
418 return &map;
419 }
420
421 MappingData* GetVendor_1038Product_1412Map() {
422 static MappingData map = {
423 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
424 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
425 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
426 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
427 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
428 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
429 {EV_KEY, BTN_MODE, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
430 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
431 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
432 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
433 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
434 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
435 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
436 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
437 return &map;
438 }
439
440 MappingData* GetVendor_1badProduct_f036Map() {
441 static MappingData map = {
442 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
443 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
444 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
445 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
446 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
447 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
448 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
449 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
450 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
451 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
452 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
453 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
454 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
455 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
456 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
457 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
458 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
459 return &map;
460 }
461
462 MappingData* GetVendor_1badProduct_f016Map() {
463 static MappingData map = {
464 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
465 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
466 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
467 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
468 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
469 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
470 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
471 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
472 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
473 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
474 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
475 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
476 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
477 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
478 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
479 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
480 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
481 return &map;
482 }
483
484 MappingData* GetVendor_1689Product_fe00Map() {
485 static MappingData map = {
486 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
487 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
488 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
489 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
490 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
491 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
492 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
493 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
494 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
495 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
496 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
497 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
498 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
499 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
500 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
501 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
502 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
503 return &map;
504 }
505
506 MappingData* GetVendor_1532Product_0900Map() {
507 static MappingData map = {
508 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
509 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
510 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
511 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
512 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
513 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
514 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
515 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
516 {EV_KEY, BTN_MODE, GamepadEventType::BUTTON, WG_BUTTON_MODE},
517 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
518 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
519 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
520 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
521 {EV_ABS, ABS_BRAKE, GamepadEventType::BUTTON, WG_BUTTON_L2},
522 {EV_ABS, ABS_GAS, GamepadEventType::BUTTON, WG_BUTTON_R2},
523 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
524 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
525 return &map;
526 }
527
528 MappingData* GetVendor_046dProduct_c21fMap() {
529 static MappingData map = {
530 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
531 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
532 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
533 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
534 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
535 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
536 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
537 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
538 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
539 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
540 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
541 {EV_ABS, ABS_RX, GamepadEventType::AXIS, WG_ABS_Z},
542 {EV_ABS, ABS_RY, GamepadEventType::AXIS, WG_ABS_RZ},
543 {EV_ABS, ABS_Z, GamepadEventType::BUTTON, WG_BUTTON_L2},
544 {EV_ABS, ABS_RZ, GamepadEventType::BUTTON, WG_BUTTON_R2},
545 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
546 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
547 return &map;
548 }
549
550 MappingData* GetVendor_046dProduct_c219Map() {
551 static MappingData map = {
552 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_A},
553 {EV_KEY, BTN_C, GamepadEventType::BUTTON, WG_BUTTON_B},
554 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_X},
555 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_Y},
556 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_L1},
557 {EV_KEY, BTN_Z, GamepadEventType::BUTTON, WG_BUTTON_R1},
558 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L2},
559 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R2},
560 {EV_KEY, BTN_TR2, GamepadEventType::BUTTON, WG_BUTTON_START},
561 {EV_KEY, BTN_SELECT, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
562 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
563 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
564 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
565 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
566 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
567 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
568 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
569 return &map;
570 }
571
572 MappingData* GetGenericMap() {
573 static MappingData map = {
574 {EV_KEY, BTN_A, GamepadEventType::BUTTON, WG_BUTTON_A},
575 {EV_KEY, BTN_B, GamepadEventType::BUTTON, WG_BUTTON_B},
576 {EV_KEY, BTN_X, GamepadEventType::BUTTON, WG_BUTTON_X},
577 {EV_KEY, BTN_Y, GamepadEventType::BUTTON, WG_BUTTON_Y},
578 {EV_KEY, BTN_TL, GamepadEventType::BUTTON, WG_BUTTON_L1},
579 {EV_KEY, BTN_TR, GamepadEventType::BUTTON, WG_BUTTON_R1},
580 {EV_KEY, BTN_TL2, GamepadEventType::BUTTON, WG_BUTTON_L2},
581 {EV_KEY, BTN_TR2, GamepadEventType::BUTTON, WG_BUTTON_R2},
582 {EV_KEY, BTN_SELECT, GamepadEventType::BUTTON, WG_BUTTON_SELECT},
583 {EV_KEY, BTN_START, GamepadEventType::BUTTON, WG_BUTTON_START},
584 {EV_KEY, BTN_THUMBL, GamepadEventType::BUTTON, WG_BUTTON_THUMBL},
585 {EV_KEY, BTN_THUMBR, GamepadEventType::BUTTON, WG_BUTTON_THUMBR},
586 {EV_KEY, KEY_UP, GamepadEventType::BUTTON, WG_BUTTON_DPAD_UP},
587 {EV_KEY, KEY_DOWN, GamepadEventType::BUTTON, WG_BUTTON_DPAD_DOWN},
588 {EV_KEY, KEY_LEFT, GamepadEventType::BUTTON, WG_BUTTON_DPAD_LEFT},
589 {EV_KEY, KEY_RIGHT, GamepadEventType::BUTTON, WG_BUTTON_DPAD_RIGHT},
590 {EV_KEY, BTN_MODE, GamepadEventType::BUTTON, WG_BUTTON_MODE},
591 {EV_ABS, ABS_X, GamepadEventType::AXIS, WG_ABS_X},
592 {EV_ABS, ABS_Y, GamepadEventType::AXIS, WG_ABS_Y},
593 {EV_ABS, ABS_Z, GamepadEventType::AXIS, WG_ABS_Z},
594 {EV_ABS, ABS_RZ, GamepadEventType::AXIS, WG_ABS_RZ},
595 {EV_ABS, ABS_HAT0X, GamepadEventType::BUTTON, kHAT_X},
596 {EV_ABS, ABS_HAT0Y, GamepadEventType::BUTTON, kHAT_Y}};
597 return &map;
598 }
599
600 MappingData* GetGamepadMapping(unsigned short vendor_id,
601 unsigned short product_id) {
602 if (vendor_id == 0x2378 && product_id == 0x100a) {
603 return GetVendor_2378Product_100aMap();
604 }
605 if (vendor_id == 0x046d && product_id == 0xc216) {
606 return GetVendor_046dProduct_c216Map();
607 }
608 if (vendor_id == 0x045e && product_id == 0x028e) {
609 return GetVendor_045eProduct_028eMap();
610 }
611 if (vendor_id == 0x054c && product_id == 0x0268) {
612 return GetVendor_054cProduct_0268Map();
613 }
614 if (vendor_id == 0x046d && product_id == 0xb501) {
615 return GetVendor_046dProduct_b501Map();
616 }
617 if (vendor_id == 0x1689 && product_id == 0xfd00) {
618 return GetVendor_1689Product_fd00Map();
619 }
620 if (vendor_id == 0x046d && product_id == 0xc294) {
621 return GetVendor_046dProduct_c294Map();
622 }
623 if (vendor_id == 0x0079 && product_id == 0x0011) {
624 return GetVendor_0079Product_0011Map();
625 }
626 if (vendor_id == 0x1bad && product_id == 0xf023) {
627 return GetVendor_1badProduct_f023Map();
628 }
629 if (vendor_id == 0x1bad && product_id == 0xf027) {
630 return GetVendor_1badProduct_f027Map();
631 }
632 if (vendor_id == 0x0583 && product_id == 0x2060) {
633 return GetVendor_0583Product_2060Map();
634 }
635 if (vendor_id == 0x046d && product_id == 0xc299) {
636 return GetVendor_046dProduct_c299Map();
637 }
638 if (vendor_id == 0x1d79 && product_id == 0x0009) {
639 return GetVendor_1d79Product_0009Map();
640 }
641 if (vendor_id == 0x0b05 && product_id == 0x4500) {
642 return GetVendor_0b05Product_4500Map();
643 }
644 if (vendor_id == 0x046d && product_id == 0xc21d) {
645 return GetVendor_046dProduct_c21dMap();
646 }
647 if (vendor_id == 0x18d1 && product_id == 0x2c40) {
648 return GetVendor_18d1Product_2c40Map();
649 }
650 if (vendor_id == 0x2378 && product_id == 0x1008) {
651 return GetVendor_2378Product_1008Map();
652 }
653 if (vendor_id == 0x1689 && product_id == 0xfd01) {
654 return GetVendor_1689Product_fd01Map();
655 }
656 if (vendor_id == 0x12bd && product_id == 0xd015) {
657 return GetVendor_12bdProduct_d015Map();
658 }
659 if (vendor_id == 0x1038 && product_id == 0x1412) {
660 return GetVendor_1038Product_1412Map();
661 }
662 if (vendor_id == 0x1bad && product_id == 0xf036) {
663 return GetVendor_1badProduct_f036Map();
664 }
665 if (vendor_id == 0x1bad && product_id == 0xf016) {
666 return GetVendor_1badProduct_f016Map();
667 }
668 if (vendor_id == 0x1689 && product_id == 0xfe00) {
669 return GetVendor_1689Product_fe00Map();
670 }
671 if (vendor_id == 0x1532 && product_id == 0x0900) {
672 return GetVendor_1532Product_0900Map();
673 }
674 if (vendor_id == 0x046d && product_id == 0xc21f) {
675 return GetVendor_046dProduct_c21fMap();
676 }
677 if (vendor_id == 0x046d && product_id == 0xc219) {
678 return GetVendor_046dProduct_c219Map();
679 }
680 return GetGenericMap();
681 }
682 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698