1 /*
2  * Copyright (c) 2024 Huawei Device Co., Ltd.
3  * Licensed under the Apache License, Version 2.0 (the "License");
4  * you may not use this file except in compliance with the License.
5  * You may obtain a copy of the License at
6  *
7  *     http://www.apache.org/licenses/LICENSE-2.0
8  *
9  * Unless required by applicable law or agreed to in writing, software
10  * distributed under the License is distributed on an "AS IS" BASIS,
11  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12  * See the License for the specific language governing permissions and
13  * limitations under the License.
14  */
15 
16 #ifndef OH_KEY_CODE_H
17 #define OH_KEY_CODE_H
18 
19 /**
20  * @addtogroup input
21  * @{
22  *
23  * @brief Provides the C interface in the multi-modal input domain.
24  *
25  * @since 12
26  */
27 
28 /**
29  * @file oh_key_code.h
30  *
31  * @brief Defines the key event structure and related enumeration values.
32  *
33  * @syscap SystemCapability.MultimodalInput.Input.Core
34  * @library libohinput.so
35  * @since 12
36  */
37 
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41 
42 /**
43  * @brief Enumerated values of OpenHarmony key code.
44  *
45  * @since 12
46  */
47 typedef enum {
48     /** Unknown key */
49     KEYCODE_UNKNOWN = -1,
50     /** Function (Fn) key */
51     KEYCODE_FN = 0,
52     /** Volume Up key */
53     KEYCODE_VOLUME_UP = 16,
54     /** Volume Down button */
55     KEYCODE_VOLUME_DOWN = 17,
56     /** Power key */
57     KEYCODE_POWER = 18,
58     /** Shutter key */
59     KEYCODE_CAMERA = 19,
60     /** Speaker Mute key */
61     KEYCODE_VOLUME_MUTE = 22,
62     /** Mute key */
63     KEYCODE_MUTE = 23,
64     /** Brightness Up key */
65     KEYCODE_BRIGHTNESS_UP = 40,
66     /** Brightness Down key */
67     KEYCODE_BRIGHTNESS_DOWN = 41,
68     /** Key 0 */
69     KEYCODE_0 = 2000,
70     /** Key 1 */
71     KEYCODE_1 = 2001,
72     /** Key 2 */
73     KEYCODE_2 = 2002,
74     /** Key 3 */
75     KEYCODE_3 = 2003,
76     /** Key 4 */
77     KEYCODE_4 = 2004,
78     /** Key 5 */
79     KEYCODE_5 = 2005,
80     /** Key 6 */
81     KEYCODE_6 = 2006,
82     /** Key 7 */
83     KEYCODE_7 = 2007,
84     /** Key 8 */
85     KEYCODE_8 = 2008,
86     /** Key 9 */
87     KEYCODE_9 = 2009,
88     /** Key * */
89     KEYCODE_STAR = 2010,
90     /** Key # */
91     KEYCODE_POUND = 2011,
92      /** Up key on D-pad */
93     KEYCODE_DPAD_UP = 2012,
94     /** Down key on D-pad */
95     KEYCODE_DPAD_DOWN = 2013,
96     /** Left key on D-pad */
97     KEYCODE_DPAD_LEFT = 2014,
98     /** Right key on D-pad */
99     KEYCODE_DPAD_RIGHT = 2015,
100     /** OK key on D-pad */
101     KEYCODE_DPAD_CENTER = 2016,
102     /** Key A */
103     KEYCODE_A = 2017,
104     /** Key B */
105     KEYCODE_B = 2018,
106     /** Key C */
107     KEYCODE_C = 2019,
108     /** Key D */
109     KEYCODE_D = 2020,
110     /** Key E */
111     KEYCODE_E = 2021,
112     /** Key F */
113     KEYCODE_F = 2022,
114     /** Key G */
115     KEYCODE_G = 2023,
116     /** Key H */
117     KEYCODE_H = 2024,
118     /** Key I */
119     KEYCODE_I = 2025,
120     /** Key J */
121     KEYCODE_J = 2026,
122     /** Key K */
123     KEYCODE_K = 2027,
124     /** Key L */
125     KEYCODE_L = 2028,
126     /** Key M */
127     KEYCODE_M = 2029,
128     /** Key N */
129     KEYCODE_N = 2030,
130     /** Key O */
131     KEYCODE_O = 2031,
132     /** Key P */
133     KEYCODE_P = 2032,
134     /** Key Q */
135     KEYCODE_Q = 2033,
136     /** Key R */
137     KEYCODE_R = 2034,
138     /** Key S */
139     KEYCODE_S = 2035,
140     /** Key T */
141     KEYCODE_T = 2036,
142     /** Key U */
143     KEYCODE_U = 2037,
144     /** Key V */
145     KEYCODE_V = 2038,
146     /** Key W */
147     KEYCODE_W = 2039,
148     /** Key X */
149     KEYCODE_X = 2040,
150     /** Key Y */
151     KEYCODE_Y = 2041,
152     /** Key Z */
153     KEYCODE_Z = 2042,
154     /** Key , */
155     KEYCODE_COMMA = 2043,
156     /** Key . */
157     KEYCODE_PERIOD = 2044,
158     /** Left Alt key */
159     KEYCODE_ALT_LEFT = 2045,
160     /** Right Alt key */
161     KEYCODE_ALT_RIGHT = 2046,
162     /** Left Shift key */
163     KEYCODE_SHIFT_LEFT = 2047,
164     /** Right Shift key */
165     KEYCODE_SHIFT_RIGHT = 2048,
166     /** Tab key */
167     KEYCODE_TAB = 2049,
168     /** Space key */
169     KEYCODE_SPACE = 2050,
170     /** Symbol key */
171     KEYCODE_SYM = 2051,
172     /** Explorer key, used to start the explorer application */
173     KEYCODE_EXPLORER = 2052,
174     /** Email key, used to start the email application */
175     KEYCODE_ENVELOPE = 2053,
176     /** Enter key */
177     KEYCODE_ENTER = 2054,
178     /** Backspace key */
179     KEYCODE_DEL = 2055,
180     /** Key * */
181     KEYCODE_GRAVE = 2056,
182     /** Key - */
183     KEYCODE_MINUS = 2057,
184     /** Key = */
185     KEYCODE_EQUALS = 2058,
186     /** Key [ */
187     KEYCODE_LEFT_BRACKET = 2059,
188     /** Key ] */
189     KEYCODE_RIGHT_BRACKET = 2060,
190     /** Key \ */
191     KEYCODE_BACKSLASH = 2061,
192     /** Key ; */
193     KEYCODE_SEMICOLON = 2062,
194     /** Key ' */
195     KEYCODE_APOSTROPHE = 2063,
196     /** Key / */
197     KEYCODE_SLASH = 2064,
198     /** Key @ */
199     KEYCODE_AT = 2065,
200     /** Key + */
201     KEYCODE_PLUS = 2066,
202     /** Menu key */
203     KEYCODE_MENU = 2067,
204     /** Page Up key */
205     KEYCODE_PAGE_UP = 2068,
206     /** Page Down key */
207     KEYCODE_PAGE_DOWN = 2069,
208     /** ESC key */
209     KEYCODE_ESCAPE = 2070,
210     /** Delete key */
211     KEYCODE_FORWARD_DEL = 2071,
212     /** Left Ctrl key */
213     KEYCODE_CTRL_LEFT = 2072,
214     /** Right Ctrl key */
215     KEYCODE_CTRL_RIGHT = 2073,
216     /** Caps Lock key */
217     KEYCODE_CAPS_LOCK = 2074,
218     /** Scroll Lock key */
219     KEYCODE_SCROLL_LOCK = 2075,
220     /** Left Meta key */
221     KEYCODE_META_LEFT = 2076,
222     /** Right Meta key */
223     KEYCODE_META_RIGHT = 2077,
224     /** Function key */
225     KEYCODE_FUNCTION = 2078,
226     /** System Request/Print Screen key */
227     KEYCODE_SYSRQ = 2079,
228     /** Break/Pause key */
229     KEYCODE_BREAK = 2080,
230     /** Move to Home key */
231     KEYCODE_MOVE_HOME = 2081,
232     /** Move to End key */
233     KEYCODE_MOVE_END = 2082,
234     /** Insert key */
235     KEYCODE_INSERT = 2083,
236     /** Forward key */
237     KEYCODE_FORWARD = 2084,
238     /** Play key */
239     KEYCODE_MEDIA_PLAY = 2085,
240     /** Pause key */
241     KEYCODE_MEDIA_PAUSE = 2086,
242     /** Close key */
243     KEYCODE_MEDIA_CLOSE = 2087,
244     /** Eject key */
245     KEYCODE_MEDIA_EJECT = 2088,
246     /** Record key */
247     KEYCODE_MEDIA_RECORD = 2089,
248     /** F1 key */
249     KEYCODE_F1 = 2090,
250     /** F2 key */
251     KEYCODE_F2 = 2091,
252     /** F3 key */
253     KEYCODE_F3 = 2092,
254     /** F4 key */
255     KEYCODE_F4 = 2093,
256     /** F5 key */
257     KEYCODE_F5 = 2094,
258     /** F6 key */
259     KEYCODE_F6 = 2095,
260     /** F7 key */
261     KEYCODE_F7 = 2096,
262     /** F8 key */
263     KEYCODE_F8 = 2097,
264     /** F9 key */
265     KEYCODE_F9 = 2098,
266     /** F10 key */
267     KEYCODE_F10 = 2099,
268     /** F11 key */
269     KEYCODE_F11 = 2100,
270     /** F12 key */
271     KEYCODE_F12 = 2101,
272     /** Number Lock key on numeric keypad */
273     KEYCODE_NUM_LOCK = 2102,
274     /** Key 0 on numeric keypad */
275     KEYCODE_NUMPAD_0 = 2103,
276     /** Key 1 on numeric keypad */
277     KEYCODE_NUMPAD_1 = 2104,
278     /** Key 2 on numeric keypad */
279     KEYCODE_NUMPAD_2 = 2105,
280     /** Key 3 on numeric keypad */
281     KEYCODE_NUMPAD_3 = 2106,
282     /** Key 4 on numeric keypad */
283     KEYCODE_NUMPAD_4 = 2107,
284     /** Key 5 on numeric keypad */
285     KEYCODE_NUMPAD_5 = 2108,
286     /** Key 6 on numeric keypad */
287     KEYCODE_NUMPAD_6 = 2109,
288     /** Key 7 on numeric keypad */
289     KEYCODE_NUMPAD_7 = 2110,
290     /** Key 8 on numeric keypad */
291     KEYCODE_NUMPAD_8 = 2111,
292     /** Key 9 on numeric keypad */
293     KEYCODE_NUMPAD_9 = 2112,
294     /** Key / on numeric keypad */
295     KEYCODE_NUMPAD_DIVIDE = 2113,
296     /** Key * on numeric keypad */
297     KEYCODE_NUMPAD_MULTIPLY = 2114,
298     /** Key - on numeric keypad */
299     KEYCODE_NUMPAD_SUBTRACT = 2115,
300     /** Key + on numeric keypad */
301     KEYCODE_NUMPAD_ADD = 2116,
302     /** Key . on numeric keypad */
303     KEYCODE_NUMPAD_DOT = 2117,
304     /** Key , on numeric keypad */
305     KEYCODE_NUMPAD_COMMA = 2118,
306     /** Enter key on numeric keypad */
307     KEYCODE_NUMPAD_ENTER = 2119,
308     /** Key = on numeric keypad */
309     KEYCODE_NUMPAD_EQUALS = 2120,
310     /** Key ( on numeric keypad */
311     KEYCODE_NUMPAD_LEFT_PAREN = 2121,
312     /** Key ) on numeric keypad */
313     KEYCODE_NUMPAD_RIGHT_PAREN = 2122
314 } Input_KeyCode;
315 
316 #ifdef __cplusplus
317 }
318 #endif
319 /** @} */
320 
321 #endif /* OH_KEY_CODE_H */
322