1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#pragma once
#include "nes/common/types.hh"
namespace nes::app
{
class modifier_mask;
enum class key
{
digit_0,
digit_1,
digit_2,
digit_3,
digit_4,
digit_5,
digit_6,
digit_7,
digit_8,
digit_9,
letter_a,
letter_b,
letter_c,
letter_d,
letter_e,
letter_f,
letter_g,
letter_h,
letter_i,
letter_j,
letter_k,
letter_l,
letter_m,
letter_n,
letter_o,
letter_p,
letter_q,
letter_r,
letter_s,
letter_t,
letter_u,
letter_v,
letter_w,
letter_x,
letter_y,
letter_z,
escape,
dash,
equal,
backspace,
tab,
enter,
semicolon,
apostrophe,
backslash,
comma,
period,
slash,
space,
caps_lock,
bracket_open,
bracket_close,
control_left,
control_right,
shift_left,
shift_right,
alt_left,
alt_right,
arrow_left,
arrow_right,
arrow_up,
arrow_down,
f1,
f2,
f3,
f4,
f5,
f6,
f7,
f8,
f9,
f10,
f11,
f12,
};
inline constexpr auto key_count = static_cast<u32>(key::f12) + 1;
auto to_ascii(key, modifier_mask) -> char;
} // namespace nes::app
|