summaryrefslogtreecommitdiff
path: root/lib/nes/app/input/key.hh
diff options
context:
space:
mode:
Diffstat (limited to 'lib/nes/app/input/key.hh')
-rw-r--r--lib/nes/app/input/key.hh90
1 files changed, 90 insertions, 0 deletions
diff --git a/lib/nes/app/input/key.hh b/lib/nes/app/input/key.hh
new file mode 100644
index 0000000..3156e65
--- /dev/null
+++ b/lib/nes/app/input/key.hh
@@ -0,0 +1,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 \ No newline at end of file