summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGravatar Zach Hilman2018-11-01 21:53:31 -0400
committerGravatar Zach Hilman2018-11-18 23:21:33 -0500
commitfd5fa48674d85be2c7d8c2d9ab84b410bb47341b (patch)
tree50550d3cb8caa650b167e78ca7b435013e3777f0 /src
parentsettings: Add Native type for mouse buttons (diff)
downloadyuzu-fd5fa48674d85be2c7d8c2d9ab84b410bb47341b.tar.gz
yuzu-fd5fa48674d85be2c7d8c2d9ab84b410bb47341b.tar.xz
yuzu-fd5fa48674d85be2c7d8c2d9ab84b410bb47341b.zip
settings: Add Native type for keyboard
Diffstat (limited to 'src')
-rw-r--r--src/core/settings.h210
1 files changed, 210 insertions, 0 deletions
diff --git a/src/core/settings.h b/src/core/settings.h
index d9aa14cd2..54a4859b9 100644
--- a/src/core/settings.h
+++ b/src/core/settings.h
@@ -135,6 +135,212 @@ static const std::array<const char*, NumMouseButtons> mapping = {{
135}}; 135}};
136} // namespace NativeMouseButton 136} // namespace NativeMouseButton
137 137
138namespace NativeKeyboard {
139enum Keys {
140 None,
141 Error,
142
143 A = 4,
144 B,
145 C,
146 D,
147 E,
148 F,
149 G,
150 H,
151 I,
152 J,
153 K,
154 L,
155 M,
156 N,
157 O,
158 P,
159 Q,
160 R,
161 S,
162 T,
163 U,
164 V,
165 W,
166 X,
167 Y,
168 Z,
169 N1,
170 N2,
171 N3,
172 N4,
173 N5,
174 N6,
175 N7,
176 N8,
177 N9,
178 N0,
179 Enter,
180 Escape,
181 Backspace,
182 Tab,
183 Space,
184 Minus,
185 Equal,
186 LeftBrace,
187 RightBrace,
188 Backslash,
189 Tilde,
190 Semicolon,
191 Apostrophe,
192 Grave,
193 Comma,
194 Dot,
195 Slash,
196 CapsLockKey,
197
198 F1,
199 F2,
200 F3,
201 F4,
202 F5,
203 F6,
204 F7,
205 F8,
206 F9,
207 F10,
208 F11,
209 F12,
210
211 SystemRequest,
212 ScrollLockKey,
213 Pause,
214 Insert,
215 Home,
216 PageUp,
217 Delete,
218 End,
219 PageDown,
220 Right,
221 Left,
222 Down,
223 Up,
224
225 NumLockKey,
226 KPSlash,
227 KPAsterisk,
228 KPMinus,
229 KPPlus,
230 KPEnter,
231 KP1,
232 KP2,
233 KP3,
234 KP4,
235 KP5,
236 KP6,
237 KP7,
238 KP8,
239 KP9,
240 KP0,
241 KPDot,
242
243 Key102,
244 Compose,
245 Power,
246 KPEqual,
247
248 F13,
249 F14,
250 F15,
251 F16,
252 F17,
253 F18,
254 F19,
255 F20,
256 F21,
257 F22,
258 F23,
259 F24,
260
261 Open,
262 Help,
263 Properties,
264 Front,
265 Stop,
266 Repeat,
267 Undo,
268 Cut,
269 Copy,
270 Paste,
271 Find,
272 Mute,
273 VolumeUp,
274 VolumeDown,
275 CapsLockActive,
276 NumLockActive,
277 ScrollLockActive,
278 KPComma,
279
280 KPLeftParenthesis,
281 KPRightParenthesis,
282
283 LeftControlKey = 0xE0,
284 LeftShiftKey,
285 LeftAltKey,
286 LeftMetaKey,
287 RightControlKey,
288 RightShiftKey,
289 RightAltKey,
290 RightMetaKey,
291
292 MediaPlayPause,
293 MediaStopCD,
294 MediaPrevious,
295 MediaNext,
296 MediaEject,
297 MediaVolumeUp,
298 MediaVolumeDown,
299 MediaMute,
300 MediaWebsite,
301 MediaBack,
302 MediaForward,
303 MediaStop,
304 MediaFind,
305 MediaScrollUp,
306 MediaScrollDown,
307 MediaEdit,
308 MediaSleep,
309 MediaCoffee,
310 MediaRefresh,
311 MediaCalculator,
312
313 NumKeyboardKeys,
314};
315
316static_assert(NumKeyboardKeys == 0xFC, "Incorrect number of keyboard keys.");
317
318enum Modifiers {
319 LeftControl,
320 LeftShift,
321 LeftAlt,
322 LeftMeta,
323 RightControl,
324 RightShift,
325 RightAlt,
326 RightMeta,
327 CapsLock,
328 ScrollLock,
329 NumLock,
330
331 NumKeyboardMods,
332};
333
334constexpr int KEYBOARD_KEYS_HID_BEGIN = None;
335constexpr int KEYBOARD_KEYS_HID_END = NumKeyboardKeys;
336constexpr int NUM_KEYBOARD_KEYS_HID = NumKeyboardKeys;
337
338constexpr int KEYBOARD_MODS_HID_BEGIN = LeftControl;
339constexpr int KEYBOARD_MODS_HID_END = NumKeyboardMods;
340constexpr int NUM_KEYBOARD_MODS_HID = NumKeyboardMods;
341
342} // namespace NativeKeyboard
343
138struct Values { 344struct Values {
139 // System 345 // System
140 bool use_docked_mode; 346 bool use_docked_mode;
@@ -149,6 +355,10 @@ struct Values {
149 bool mouse_enabled; 355 bool mouse_enabled;
150 std::string mouse_device; 356 std::string mouse_device;
151 MouseButtonsRaw mouse_buttons; 357 MouseButtonsRaw mouse_buttons;
358
359 bool keyboard_enabled;
360 KeyboardKeysRaw keyboard_keys;
361 KeyboardModsRaw keyboard_mods;
152 std::string motion_device; 362 std::string motion_device;
153 std::string touch_device; 363 std::string touch_device;
154 std::atomic_bool is_device_reload_pending{true}; 364 std::atomic_bool is_device_reload_pending{true};