1#[repr(i32)]
2pub enum Button {
3 A = 0,
4 B = 1,
5 X = 2,
6 Y = 3,
7 StickL = 4,
8 StickR = 5,
9 L = 6,
10 R = 7,
11 ZL = 8,
12 ZR = 9,
13 Plus = 10,
14 Minus = 11,
15 Left = 12,
16 Up = 13,
17 Right = 14,
18 Down = 15,
19}
20
21#[repr(i32)]
22pub enum Key {
23 A = 4,
24 B,
25 C,
26 D,
27 E,
28 F,
29 G,
30 H,
31 I,
32 J,
33 K,
34 L,
35 M,
36 N,
37 O,
38 P,
39 Q,
40 R,
41 S,
42 T,
43 U,
44 V,
45 W,
46 X,
47 Y,
48 Z,
49 N1 = 30,
50 N2,
51 N3,
52 N4,
53 N5,
54 N6,
55 N7,
56 N8,
57 N9,
58 N0,
59 Enter = 40,
60 Escape = 41,
61 Backspace = 42,
62 Tab = 43,
63 Space = 44,
64 Minus = 45,
65 Equals = 46,
66 LeftBracket = 47,
67 RightBracket = 48,
68 Backslash = 49,
69 Semicolon = 51,
70 Apostrophe = 52,
71 Grave = 53,
72 Comma = 54,
73 Period = 55,
74 Slash = 56,
75 CapsLock = 57,
76 F1 = 58,
77 F2,
78 F3,
79 F4,
80 F5,
81 F6,
82 F7,
83 F8,
84 F9,
85 F10,
86 F11,
87 F12,
88 Insert = 73,
89 Home = 74,
90 PageUp = 75,
91 Delete = 76,
92 End = 77,
93 PageDown = 78,
94 Right = 79,
95 Left = 80,
96 Down = 81,
97 Up = 82,
98}
99
100unsafe extern "C" {
101 pub fn forge_input_isDown(button: Button) -> bool;
102 pub fn forge_input_isPressed(button: Button) -> bool;
103 pub fn forge_input_isReleased(button: Button) -> bool;
104
105 pub fn forge_input_getStickL(x: *mut f32, y: *mut f32);
106 pub fn forge_input_getStickR(x: *mut f32, y: *mut f32);
107
108 pub fn forge_input_isConnected() -> bool;
109
110 pub fn forge_input_getTouch(x: *mut f32, y: *mut f32) -> bool;
111
112 pub fn forge_input_isKeyDown(key: Key) -> bool;
113 pub fn forge_input_isKeyPressed(key: Key) -> bool;
114 pub fn forge_input_isKeyReleased(key: Key) -> bool;
115
116 pub fn forge_input_isShiftDown() -> bool;
117 pub fn forge_input_isCtrlDown() -> bool;
118 pub fn forge_input_isAltDown() -> bool;
119}