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 * @kit InputKit
33 * @syscap SystemCapability.MultimodalInput.Input.Core
34 * @library libohinput.so
35 * @since 12
36 */
37
38#ifdef __cplusplus
39extern "C" {
40#endif
41
42/**
43 * @brief Enumerated values of OpenHarmony key code.
44 *
45 * @since 12
46 */
47typedef 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