GamepadInput Arduino Lib
1.2.0
Loading...
Searching...
No Matches
gamepad_input_button.h
1
#pragma once
2
3
#ifndef GAMEPAD_INPUT_BUTTON_H
4
#define GAMEPAD_INPUT_BUTTON_H
5
6
#include <stdint.h>
7
8
/**
9
* @~English
10
* @defgroup CommonEnums
11
* @brief Common enumerations used in the project.
12
* @ingroup Root
13
*/
14
/**
15
* @~Chinese
16
* @defgroup CommonEnums 公共枚举
17
* @brief 项目中通用的枚举
18
* @ingroup Root
19
*/
20
namespace
gamepad::input {
21
22
/**
23
* @~English
24
* @enum Button
25
* @ingroup CommonEnums
26
* @brief Button identifiers for a generic gamepad.
27
*/
28
/**
29
* @~Chinese
30
* @enum Button
31
* @ingroup CommonEnums
32
* @brief 通用游戏手柄按键枚举
33
*/
34
enum class
Button
: uint32_t {
35
/**
36
* @~English
37
* @brief Up direction
38
*/
39
/**
40
* @~Chinese
41
* @brief 方向上
42
*/
43
kUp
= uint32_t{1} << 0,
44
45
/**
46
* @~English
47
* @brief Down direction
48
*/
49
/**
50
* @~Chinese
51
* @brief 方向下
52
*/
53
kDown
= uint32_t{1} << 1,
54
55
/**
56
* @~English
57
* @brief Left direction
58
*/
59
/**
60
* @~Chinese
61
* @brief 方向左
62
*/
63
kLeft
= uint32_t{1} << 2,
64
65
/**
66
* @~English
67
* @brief Right direction
68
*/
69
/**
70
* @~Chinese
71
* @brief 方向右
72
*/
73
kRight
= uint32_t{1} << 3,
74
75
/**
76
* @~English
77
* @brief Square or X
78
*/
79
/**
80
* @~Chinese
81
* @brief 方形或者X
82
*/
83
kSquareX
= uint32_t{1} << 4,
84
85
/**
86
* @~English
87
* @brief Triangle or Y
88
*/
89
/**
90
* @~Chinese
91
* @brief 三角形或者Y
92
*/
93
kTriangleY
= uint32_t{1} << 5,
94
95
/**
96
* @~English
97
* @brief Cross or A
98
*/
99
/**
100
* @~Chinese
101
* @brief 叉或者A
102
*/
103
kCrossA
= uint32_t{1} << 6,
104
105
/**
106
* @~English
107
* @brief Circle or B
108
*/
109
/**
110
* @~Chinese
111
* @brief 圆形或者B
112
*/
113
kCircleB
= uint32_t{1} << 7,
114
115
/**
116
* @~English
117
* @brief Left shoulder button 1
118
*/
119
/**
120
* @~Chinese
121
* @brief 左肩键 L1
122
*/
123
kL1
= uint32_t{1} << 8,
124
125
/**
126
* @~English
127
* @brief Left trigger button
128
*/
129
/**
130
* @~Chinese
131
* @brief 左扳机 L2
132
*/
133
kL2
= uint32_t{1} << 9,
134
135
/**
136
* @~English
137
* @brief Left stick click
138
*/
139
/**
140
* @~Chinese
141
* @brief 左摇杆按下 L3
142
*/
143
kL3
= uint32_t{1} << 10,
144
145
/**
146
* @~English
147
* @brief Right shoulder button 1
148
*/
149
/**
150
* @~Chinese
151
* @brief 右肩键 R1
152
*/
153
kR1
= uint32_t{1} << 11,
154
155
/**
156
* @~English
157
* @brief Right trigger button
158
*/
159
/**
160
* @~Chinese
161
* @brief 右扳机 R2
162
*/
163
kR2
= uint32_t{1} << 12,
164
165
/**
166
* @~English
167
* @brief Right stick click
168
*/
169
/**
170
* @~Chinese
171
* @brief 右摇杆按下 R3
172
*/
173
kR3
= uint32_t{1} << 13,
174
175
/**
176
* @~English
177
* @brief Select button
178
*/
179
/**
180
* @~Chinese
181
* @brief 选择键
182
*/
183
kSelect
= uint32_t{1} << 14,
184
185
/**
186
* @~English
187
* @brief Start button
188
*/
189
/**
190
* @~Chinese
191
* @brief 开始键
192
*/
193
kStart
= uint32_t{1} << 15,
194
195
/**
196
* @~English
197
* @brief Home button
198
*/
199
/**
200
* @~Chinese
201
* @brief 主页键
202
*/
203
kHome
= uint32_t{1} << 16,
204
};
205
206
inline
constexpr
Button
operator|(
Button
a,
Button
b)
noexcept
{
207
return
static_cast<
Button
>
(
static_cast<
uint32_t
>
(a) |
static_cast<
uint32_t
>
(b));
208
}
209
210
inline
constexpr
bool
operator&(uint32_t bits,
Button
b)
noexcept
{
return
(bits &
static_cast<
uint32_t
>
(b)) != 0; }
211
}
// namespace gamepad::input
212
#endif
gamepad::input::Button
Button
Button identifiers for a generic gamepad.
Definition
gamepad_input_button.h:34
gamepad::input::Button::kSelect
@ kSelect
Select button.
Definition
gamepad_input_button.h:183
gamepad::input::Button::kStart
@ kStart
Start button.
Definition
gamepad_input_button.h:193
gamepad::input::Button::kL2
@ kL2
Left trigger button.
Definition
gamepad_input_button.h:133
gamepad::input::Button::kL1
@ kL1
Left shoulder button 1.
Definition
gamepad_input_button.h:123
gamepad::input::Button::kCrossA
@ kCrossA
Cross or A.
Definition
gamepad_input_button.h:103
gamepad::input::Button::kLeft
@ kLeft
Left direction.
Definition
gamepad_input_button.h:63
gamepad::input::Button::kRight
@ kRight
Right direction.
Definition
gamepad_input_button.h:73
gamepad::input::Button::kHome
@ kHome
Home button.
Definition
gamepad_input_button.h:203
gamepad::input::Button::kL3
@ kL3
Left stick click.
Definition
gamepad_input_button.h:143
gamepad::input::Button::kDown
@ kDown
Down direction.
Definition
gamepad_input_button.h:53
gamepad::input::Button::kSquareX
@ kSquareX
Square or X.
Definition
gamepad_input_button.h:83
gamepad::input::Button::kR3
@ kR3
Right stick click.
Definition
gamepad_input_button.h:173
gamepad::input::Button::kR2
@ kR2
Right trigger button.
Definition
gamepad_input_button.h:163
gamepad::input::Button::kUp
@ kUp
Up direction.
Definition
gamepad_input_button.h:43
gamepad::input::Button::kCircleB
@ kCircleB
Circle or B.
Definition
gamepad_input_button.h:113
gamepad::input::Button::kR1
@ kR1
Right shoulder button 1.
Definition
gamepad_input_button.h:153
gamepad::input::Button::kTriangleY
@ kTriangleY
Triangle or Y.
Definition
gamepad_input_button.h:93
src
gamepad_input_button.h
Generated by
1.13.0