1 /*
2  * Copyright (c) 2021-2022 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 HOS_KEY_EVENT_H
17 #define HOS_KEY_EVENT_H
18 
19 #include "define_multimodal.h"
20 
21 namespace OHOS {
22 enum HosKeyState {
23     /**
24      * Indicates that the key is being pressed down.
25      *
26      * @since 3
27      */
28     HOS_KEY_PRESSED = 0,
29 
30     /**
31      * Indicates that the key is being released.
32      *
33      * @since 3
34      */
35     HOS_KEY_RELEASED = 1,
36 };
37 
38 enum HosKeyEventEnum {
39     /**
40      * Keycode constant: unknown keycode
41      * <p>The keycode is unknown.
42      *
43      * @since 1
44      */
45     HOS_UNKNOWN_KEY_BASE = 10000,
46     HOS_KEY_UNKNOWN = -1,
47     /**
48      * Keycode constant: Fn key
49      *
50      * @since 1
51      */
52     HOS_KEY_FN = 0,
53     /**
54      * Keycode constant: Home key
55      * <p>This key is processed by the framework and will never be sent to the application.
56      *
57      * @since 1
58      */
59     HOS_KEY_HOME = 1,
60 
61     /**
62      * Keycode constant: Back key
63      *
64      * @since 1
65      */
66     HOS_KEY_BACK = 2,
67 
68     /**
69      * Keycode constant: Call key
70      *
71      * @since 1
72      */
73     HOS_KEY_CALL = 3,
74 
75     /**
76      * Keycode constant: End Call key
77      *
78      * @since 1
79      */
80     HOS_KEY_ENDCALL = 4,
81 
82     /**
83      * Keycode constant: Clear key
84      *
85      * @since 1
86      */
87     HOS_KEY_CLEAR = 5,
88 
89     /**
90      * Keycode constant: Headset Hook key
91      * <p>The key is used to end a call and stop media.
92      *
93      * @since 1
94      */
95     HOS_KEY_HEADSETHOOK = 6,
96 
97     /**
98      * Keycode constant: Camera Focus key
99      * <p>This key is used to enable focus for the camera.
100      *
101      * @since 1
102      */
103     HOS_KEY_FOCUS = 7,
104 
105     /**
106      * Keycode constant: Notification key
107      *
108      * @since 1
109      */
110     HOS_KEY_NOTIFICATION = 8,
111 
112     /**
113      * Keycode constant: Search key
114      *
115      * @since 1
116      */
117     HOS_KEY_SEARCH = 9,
118 
119     /**
120      * Keycode constant: Play/Pause media key
121      *
122      * @since 1
123      */
124     HOS_KEY_MEDIA_PLAY_PAUSE = 10,
125 
126     /**
127      * Keycode constant: Stop media key
128      *
129      * @since 1
130      */
131     HOS_KEY_MEDIA_STOP = 11,
132 
133     /**
134      * Keycode constant: Play Next media key
135      *
136      * @since 1
137      */
138     HOS_KEY_MEDIA_NEXT = 12,
139 
140     /**
141      * Keycode constant: Play Previous media key
142      *
143      * @since 1
144      */
145     HOS_KEY_MEDIA_PREVIOUS = 13,
146 
147     /**
148      * Keycode constant: Rewind media key
149      *
150      * @since 1
151      */
152     HOS_KEY_MEDIA_REWIND = 14,
153 
154     /**
155      * Keycode constant: Fast Forward media key
156      *
157      * @since 1
158      */
159     HOS_KEY_MEDIA_FAST_FORWARD = 15,
160 
161     /**
162      * Turns up the volume.
163      *
164      * @since 1
165      */
166     HOS_KEY_VOLUME_UP = 16,
167 
168     /**
169      * Turns down the volume.
170      *
171      * @since 1
172      */
173     HOS_KEY_VOLUME_DOWN = 17,
174 
175     /**
176      * Presses the power button.
177      *
178      * @since 1
179      */
180     HOS_KEY_POWER = 18,
181 
182     /**
183      * Presses the camera key.
184      * <p>It is used to start the camera or take photos.
185      *
186      * @since 1
187      */
188     HOS_KEY_CAMERA = 19,
189 
190     /**
191      * Voice Assistant key
192      * <p>This key is used to wake up the voice assistant.
193      *
194      * @since 1
195      */
196     HOS_KEY_VOICE_ASSISTANT = 20,
197 
198     /**
199      * Custom key 1
200      * <p>The actions mapping to the custom keys are user-defined. Key values 521-529 are reserved for custom keys.
201      *
202      * @since 1
203      */
204     HOS_KEY_CUSTOM1 = 21,
205 
206     HOS_KEY_VOLUME_MUTE = 22,
207     HOS_KEY_MUTE = 23,
208 
209     /**
210      * Brightness UP key
211      *
212      * @since 1
213      */
214     HOS_KEY_BRIGHTNESS_UP = 40,
215 
216     /**
217      * Brightness Down key
218      *
219      * @since 1
220      */
221     HOS_KEY_BRIGHTNESS_DOWN = 41,
222 
223     /**
224      * Indicates general-purpose key 1 on the wearables
225      *
226      * @since 3
227      */
228     HOS_KEY_WEAR_1 = 1001,
229 
230     /**
231      * Keycode constant: '0' key
232      *
233      * @since 1
234      */
235     HOS_KEY_0 = 2000,
236 
237     /**
238      * Keycode constant: '1' key
239      *
240      * @since 1
241      */
242     HOS_KEY_1 = 2001,
243 
244     /**
245      * Keycode constant: '2' key
246      *
247      * @since 1
248      */
249     HOS_KEY_2 = 2002,
250 
251     /**
252      * Keycode constant: '3' key
253      *
254      * @since 1
255      */
256     HOS_KEY_3 = 2003,
257 
258     /**
259      * Keycode constant: '4' key
260      *
261      * @since 1
262      */
263     HOS_KEY_4 = 2004,
264 
265     /**
266      * Keycode constant: '5' key
267      *
268      * @since 1
269      */
270     HOS_KEY_5 = 2005,
271 
272     /**
273      * Keycode constant: '6' key
274      *
275      * @since 1
276      */
277     HOS_KEY_6 = 2006,
278 
279     /**
280      * Keycode constant: '7' key
281      *
282      * @since 1
283      */
284     HOS_KEY_7 = 2007,
285 
286     /**
287      * Keycode constant: '8' key
288      *
289      * @since 1
290      */
291     HOS_KEY_8 = 2008,
292 
293     /**
294      * Keycode constant: '9' key
295      *
296      * @since 1
297      */
298     HOS_KEY_9 = 2009,
299 
300     /**
301      * Keycode constant: '*' key
302      *
303      * @since 1
304      */
305     HOS_KEY_STAR = 2010,
306 
307     /**
308      * Keycode constant: '#' key
309      *
310      * @since 1
311      */
312     HOS_KEY_POUND = 2011,
313 
314     /**
315      * Keycode constant: Directional Pad Up key
316      * <p>The key may also be synthesized from trackball motions.
317      *
318      * @since 1
319      */
320     HOS_KEY_DPAD_UP = 2012,
321 
322     /**
323      * Keycode constant: Directional Pad Down key
324      * <p>The key may also be synthesized from trackball motions.
325      *
326      * @since 1
327      */
328     HOS_KEY_DPAD_DOWN = 2013,
329 
330     /**
331      * Keycode constant: Directional Pad Left key
332      * <p>The key may also be synthesized from trackball motions.
333      *
334      * @since 1
335      */
336     HOS_KEY_DPAD_LEFT = 2014,
337 
338     /**
339      * Keycode constant: Directional Pad Right key
340      * <p>The key may also be synthesized from trackball motions.
341      *
342      * @since 1
343      */
344     HOS_KEY_DPAD_RIGHT = 2015,
345 
346     /**
347      * Keycode constant: Directional Pad Center key
348      * <p>The key may also be synthesized from trackball motions.
349      *
350      * @since 1
351      */
352     HOS_KEY_DPAD_CENTER = 2016,
353 
354     /**
355      * Keycode constant: 'A' key
356      *
357      * @since 1
358      */
359     HOS_KEY_A = 2017,
360 
361     /**
362      * Keycode constant: 'B' key
363      *
364      * @since 1
365      */
366     HOS_KEY_B = 2018,
367 
368     /**
369      * Keycode constant: 'C' key
370      *
371      * @since 1
372      */
373     HOS_KEY_C = 2019,
374 
375     /**
376      * Keycode constant: 'D' key
377      *
378      * @since 1
379      */
380     HOS_KEY_D = 2020,
381 
382     /**
383      * Keycode constant: 'E' key
384      *
385      * @since 1
386      */
387     HOS_KEY_E = 2021,
388 
389     /**
390      * Keycode constant: 'F' key
391      *
392      * @since 1
393      */
394     HOS_KEY_F = 2022,
395 
396     /**
397      * Keycode constant: 'G' key
398      *
399      * @since 1
400      */
401     HOS_KEY_G = 2023,
402 
403     /**
404      * Keycode constant: 'H' key
405      *
406      * @since 1
407      */
408     HOS_KEY_H = 2024,
409 
410     /**
411      * Keycode constant: 'I' key
412      *
413      * @since 1
414      */
415     HOS_KEY_I = 2025,
416 
417     /**
418      * Keycode constant: 'J' key
419      *
420      * @since 1
421      */
422     HOS_KEY_J = 2026,
423 
424     /**
425      * Keycode constant: 'K' key
426      *
427      * @since 1
428      */
429     HOS_KEY_K = 2027,
430 
431     /**
432      * Keycode constant: 'L' key
433      *
434      * @since 1
435      */
436     HOS_KEY_L = 2028,
437 
438     /**
439      * Keycode constant: 'M' key
440      *
441      * @since 1
442      */
443     HOS_KEY_M = 2029,
444 
445     /**
446      * Keycode constant: 'N' key
447      *
448      * @since 1
449      */
450     HOS_KEY_N = 2030,
451 
452     /**
453      * Keycode constant: 'O' key
454      *
455      * @since 1
456      */
457     HOS_KEY_O = 2031,
458 
459     /**
460      * Keycode constant: 'P' key
461      *
462      * @since 1
463      */
464     HOS_KEY_P = 2032,
465 
466     /**
467      * Keycode constant: 'Q' key
468      *
469      * @since 1
470      */
471     HOS_KEY_Q = 2033,
472 
473     /**
474      * Keycode constant: 'R' key
475      *
476      * @since 1
477      */
478     HOS_KEY_R = 2034,
479 
480     /**
481      * Keycode constant: 'S' key
482      *
483      * @since 1
484      */
485     HOS_KEY_S = 2035,
486 
487     /**
488      * Keycode constant: 'T' key
489      *
490      * @since 1
491      */
492     HOS_KEY_T = 2036,
493 
494     /**
495      * Keycode constant: 'U' key
496      *
497      * @since 1
498      */
499     HOS_KEY_U = 2037,
500 
501     /**
502      * Keycode constant: 'V' key
503      *
504      * @since 1
505      */
506     HOS_KEY_V = 2038,
507 
508     /**
509      * Keycode constant: 'W' key
510      *
511      * @since 1
512      */
513     HOS_KEY_W = 2039,
514 
515     /**
516      * Keycode constant: 'X' key
517      *
518      * @since 1
519      */
520     HOS_KEY_X = 2040,
521 
522     /**
523      * Keycode constant: 'Y' key
524      *
525      * @since 1
526      */
527     HOS_KEY_Y = 2041,
528 
529     /**
530      * Keycode constant: 'Z' key
531      *
532      * @since 1
533      */
534     HOS_KEY_Z = 2042,
535 
536     /**
537      * Keycode constant: ',' key
538      *
539      * @since 1
540      */
541     HOS_KEY_COMMA = 2043,
542 
543     /**
544      * Keycode constant: '.' key
545      *
546      * @since 1
547      */
548     HOS_KEY_PERIOD = 2044,
549 
550     /**
551      * Keycode constant: Left Alt modifier key
552      *
553      * @since 1
554      */
555     HOS_KEY_ALT_LEFT = 2045,
556 
557     /**
558      * Keycode constant: Right Alt modifier key
559      *
560      * @since 1
561      */
562     HOS_KEY_ALT_RIGHT = 2046,
563 
564     /**
565      * Keycode constant: Left Shift modifier key
566      *
567      * @since 1
568      */
569     HOS_KEY_SHIFT_LEFT = 2047,
570 
571     /**
572      * Keycode constant: Right Shift modifier key
573      *
574      * @since 1
575      */
576     HOS_KEY_SHIFT_RIGHT = 2048,
577 
578     /**
579      * Keycode constant: Tab key
580      *
581      * @since 1
582      */
583     HOS_KEY_TAB = 2049,
584 
585     /**
586      * Keycode constant: Space key
587      *
588      * @since 1
589      */
590     HOS_KEY_SPACE = 2050,
591 
592     /**
593      * Keycode constant: Symbol modifier key
594      * <p>The key is used to input alternate symbols.
595      *
596      * @since 1
597      */
598     HOS_KEY_SYM = 2051,
599 
600     /**
601      * Keycode constant: Explorer function key
602      * <p>This key is used to launch a browser application.
603      *
604      * @since 1
605      */
606     HOS_KEY_EXPLORER = 2052,
607 
608     /**
609      * Keycode constant: Email function key
610      * <p>This key is used to launch an email application.
611      *
612      * @since 1
613      */
614     HOS_KEY_ENVELOPE = 2053,
615 
616     /**
617      * Keycode constant: Enter key
618      *
619      * @since 1
620      */
621     HOS_KEY_ENTER = 2054,
622 
623     /**
624      * Keycode constant: Backspace key
625      * <p>Unlike {@link #KEY_FORWARD_DEL}, this key is used to delete characters before the
626      * insertion point.
627      *
628      * @since 1
629      */
630     HOS_KEY_DEL = 2055,
631 
632     /**
633      * Keycode constant: '`' key (backtick key)
634      *
635      * @since 1
636      */
637     HOS_KEY_GRAVE = 2056,
638 
639     /**
640      * Keycode constant: '-' key
641      *
642      * @since 1
643      */
644     HOS_KEY_MINUS = 2057,
645 
646     /**
647      * Keycode constant: '=' key
648      *
649      * @since 1
650      */
651     HOS_KEY_EQUALS = 2058,
652 
653     /**
654      * Keycode constant: '[' key
655      *
656      * @since 1
657      */
658     HOS_KEY_LEFT_BRACKET = 2059,
659 
660     /**
661      * Keycode constant: ']' key
662      *
663      * @since 1
664      */
665     HOS_KEY_RIGHT_BRACKET = 2060,
666 
667     /**
668      * Keycode constant: '\' key
669      *
670      * @since 1
671      */
672     HOS_KEY_BACKSLASH = 2061,
673 
674     /**
675      * Keycode constant: ',' key
676      *
677      * @since 1
678      */
679     HOS_KEY_SEMICOLON = 2062,
680 
681     /**
682      * Keycode constant: ''' key (apostrophe key)
683      *
684      * @since 1
685      */
686     HOS_KEY_APOSTROPHE = 2063,
687 
688     /**
689      * Keycode constant: '/' key
690      *
691      * @since 1
692      */
693     HOS_KEY_SLASH = 2064,
694 
695     /**
696      * Keycode constant: '{@literal @}' key
697      *
698      * @since 1
699      */
700     HOS_KEY_AT = 2065,
701 
702     /**
703      * Keycode constant: '+' key
704      *
705      * @since 1
706      */
707     HOS_KEY_PLUS = 2066,
708 
709     /**
710      * Keycode constant: Menu key
711      *
712      * @since 1
713      */
714     HOS_KEY_MENU = 2067,
715 
716     /**
717      * Keycode constant: Page Up key
718      *
719      * @since 1
720      */
721     HOS_KEY_PAGE_UP = 2068,
722 
723     /**
724      * Keycode constant: Page Down key
725      *
726      * @since 1
727      */
728     HOS_KEY_PAGE_DOWN = 2069,
729 
730     /**
731      * Keycode constant: Escape key
732      *
733      * @since 1
734      */
735     HOS_KEY_ESCAPE = 2070,
736 
737     /**
738      * Keycode constant: Forward Delete key
739      * <p>Unlike {@link #KEY_DEL}, this key is used to delete characters ahead of the insertion
740      * point.
741      *
742      * @since 1
743      */
744     HOS_KEY_FORWARD_DEL = 2071,
745 
746     /**
747      * Keycode constant: Left Control modifier key
748      *
749      * @since 1
750      */
751     HOS_KEY_CTRL_LEFT = 2072,
752 
753     /**
754      * Keycode constant: Right Control modifier key
755      *
756      * @since 1
757      */
758     HOS_KEY_CTRL_RIGHT = 2073,
759 
760     /**
761      * Keycode constant: Caps Lock key
762      *
763      * @since 1
764      */
765     HOS_KEY_CAPS_LOCK = 2074,
766 
767     /**
768      * Keycode constant: Scroll Lock key
769      *
770      * @since 1
771      */
772     HOS_KEY_SCROLL_LOCK = 2075,
773 
774     /**
775      * Keycode constant: Left Meta modifier key
776      *
777      * @since 1
778      */
779     HOS_KEY_META_LEFT = 2076,
780 
781     /**
782      * Keycode constant: Right Meta modifier key
783      *
784      * @since 1
785      */
786     HOS_KEY_META_RIGHT = 2077,
787 
788     /**
789      * Keycode constant: Function modifier key
790      *
791      * @since 1
792      */
793     HOS_KEY_FUNCTION = 2078,
794 
795     /**
796      * Keycode constant: System Request/Print Screen key
797      *
798      * @since 1
799      */
800     HOS_KEY_SYSRQ = 2079,
801 
802     /**
803      * Keycode constant: Break/Pause key
804      *
805      * @since 1
806      */
807     HOS_KEY_BREAK = 2080,
808 
809     /**
810      * Keycode constant: Home Movement key
811      * <p>This key is used to scroll or move the cursor around to the start of a line or to the
812      * top of a list.
813      *
814      * @since 1
815      */
816     HOS_KEY_MOVE_HOME = 2081,
817 
818     /**
819      * Keycode constant: End Movement key
820      * <p>This key is used to scroll or move the cursor around to the end of a line or to the
821      * bottom of a list.
822      *
823      * @since 1
824      */
825     HOS_KEY_MOVE_END = 2082,
826 
827     /**
828      * Keycode constant: Insert key
829      * <p>This key is used to toggle the insert or overwrite edit mode.
830      *
831      * @since 1
832      */
833     HOS_KEY_INSERT = 2083,
834 
835     /**
836      * Keycode constant: Forward key
837      * <p>This key is used to navigate forward in the history stack. It is a complement of
838      * {@link #KEY_BACK}.
839      *
840      * @since 1
841      */
842     HOS_KEY_FORWARD = 2084,
843 
844     /**
845      * Keycode constant: Play media key
846      *
847      * @since 1
848      */
849     HOS_KEY_MEDIA_PLAY = 2085,
850 
851     /**
852      * Keycode constant: Pause media key
853      *
854      * @since 1
855      */
856     HOS_KEY_MEDIA_PAUSE = 2086,
857 
858     /**
859      * Keycode constant: Close media key
860      * <p>This key can be used to close a CD tray, for example.
861      *
862      * @since 1
863      */
864     HOS_KEY_MEDIA_CLOSE = 2087,
865 
866     /**
867      * Keycode constant: Eject media key
868      * <p>This key can be used to eject a CD tray, for example.
869      *
870      * @since 1
871      */
872     HOS_KEY_MEDIA_EJECT = 2088,
873 
874     /**
875      * Keycode constant: Record media key
876      *
877      * @since 1
878      */
879     HOS_KEY_MEDIA_RECORD = 2089,
880 
881     /**
882      * Keycode constant: F1 key
883      *
884      * @since 1
885      */
886     HOS_KEY_F1 = 2090,
887 
888     /**
889      * Keycode constant: F2 key
890      *
891      * @since 1
892      */
893     HOS_KEY_F2 = 2091,
894 
895     /**
896      * Keycode constant: F3 key
897      *
898      * @since 1
899      */
900     HOS_KEY_F3 = 2092,
901 
902     /**
903      * Keycode constant: F4 key
904      *
905      * @since 1
906      */
907     HOS_KEY_F4 = 2093,
908 
909     /**
910      * Keycode constant: F5 key
911      *
912      * @since 1
913      */
914     HOS_KEY_F5 = 2094,
915 
916     /**
917      * Keycode constant: F6 key
918      *
919      * @since 1
920      */
921     HOS_KEY_F6 = 2095,
922 
923     /**
924      * Keycode constant: F7 key
925      *
926      * @since 1
927      */
928     HOS_KEY_F7 = 2096,
929 
930     /**
931      * Keycode constant: F8 key
932      *
933      * @since 1
934      */
935     HOS_KEY_F8 = 2097,
936 
937     /**
938      * Keycode constant: F9 key
939      *
940      * @since 1
941      */
942     HOS_KEY_F9 = 2098,
943 
944     /**
945      * Keycode constant: F10 key
946      *
947      * @since 1
948      */
949     HOS_KEY_F10 = 2099,
950 
951     /**
952      * Keycode constant: F11 key
953      *
954      * @since 1
955      */
956     HOS_KEY_F11 = 2100,
957 
958     /**
959      * Keycode constant: F12 key
960      *
961      * @since 1
962      */
963     HOS_KEY_F12 = 2101,
964 
965     /**
966      * Keycode constant: Num Lock key
967      * <p>This key is used to alter the behavior of other keys on the numeric keypad.
968      *
969      * @since 1
970      */
971     HOS_KEY_NUM_LOCK = 2102,
972 
973     /**
974      * Keycode constant: '0' key on the numeric keypad
975      *
976      * @since 1
977      */
978     HOS_KEY_NUMPAD_0 = 2103,
979 
980     /**
981      * Keycode constant: '1' key on the numeric keypad
982      *
983      * @since 1
984      */
985     HOS_KEY_NUMPAD_1 = 2104,
986 
987     /**
988      * Keycode constant: '2' key on the numeric keypad
989      *
990      * @since 1
991      */
992     HOS_KEY_NUMPAD_2 = 2105,
993 
994     /**
995      * Keycode constant: '3' key on the numeric keypad
996      *
997      * @since 1
998      */
999     HOS_KEY_NUMPAD_3 = 2106,
1000 
1001     /**
1002      * Keycode constant: '4' key on the numeric keypad
1003      *
1004      * @since 1
1005      */
1006     HOS_KEY_NUMPAD_4 = 2107,
1007 
1008     /**
1009      * Keycode constant: '5' key on the numeric keypad
1010      *
1011      * @since 1
1012      */
1013     HOS_KEY_NUMPAD_5 = 2108,
1014 
1015     /**
1016      * Keycode constant: '6' key on the numeric keypad
1017      *
1018      * @since 1
1019      */
1020     HOS_KEY_NUMPAD_6 = 2109,
1021 
1022     /**
1023      * Keycode constant: '7' key on the numeric keypad
1024      *
1025      * @since 1
1026      */
1027     HOS_KEY_NUMPAD_7 = 2110,
1028 
1029     /**
1030      * Keycode constant: '8' key on the numeric keypad
1031      *
1032      * @since 1
1033      */
1034     HOS_KEY_NUMPAD_8 = 2111,
1035 
1036     /**
1037      * Keycode constant: '9' key on the numeric keypad
1038      *
1039      * @since 1
1040      */
1041     HOS_KEY_NUMPAD_9 = 2112,
1042 
1043     /**
1044      * Keycode constant: '/' key (for division) on the numeric keypad
1045      *
1046      * @since 1
1047      */
1048     HOS_KEY_NUMPAD_DIVIDE = 2113,
1049 
1050     /**
1051      * Keycode constant: '*' key (for multiplication) on the numeric keypad
1052      *
1053      * @since 1
1054      */
1055     HOS_KEY_NUMPAD_MULTIPLY = 2114,
1056 
1057     /**
1058      * Keycode constant: '-' key (for subtraction) on the numeric keypad
1059      *
1060      * @since 1
1061      */
1062     HOS_KEY_NUMPAD_SUBTRACT = 2115,
1063 
1064     /**
1065      * Keycode constant: '+' key (for addition) on the numeric keypad
1066      *
1067      * @since 1
1068      */
1069     HOS_KEY_NUMPAD_ADD = 2116,
1070 
1071     /**
1072      * Key code constant: '.' key (for decimals or digit grouping) on the numeric keypad
1073      *
1074      * @since 1
1075      */
1076     HOS_KEY_NUMPAD_DOT = 2117,
1077 
1078     /**
1079      * Key code constant: ',' key (for decimals or digit grouping) on the numeric keypad
1080      *
1081      * @since 1
1082      */
1083     HOS_KEY_NUMPAD_COMMA = 2118,
1084 
1085     /**
1086      * Keycode constant: Enter key on the numeric keypad
1087      *
1088      * @since 1
1089      */
1090     HOS_KEY_NUMPAD_ENTER = 2119,
1091 
1092     /**
1093      * Keycode constant: '=' key on the numeric keypad
1094      *
1095      * @since 1
1096      */
1097     HOS_KEY_NUMPAD_EQUALS = 2120,
1098 
1099     /**
1100      * Keycode constant: '(' key on the numeric keypad
1101      *
1102      * @since 1
1103      */
1104     HOS_KEY_NUMPAD_LEFT_PAREN = 2121,
1105 
1106     /**
1107      * Keycode constant: ')' key on the numeric keypad
1108      *
1109      * @since 1
1110      */
1111     HOS_KEY_NUMPAD_RIGHT_PAREN = 2122,
1112 
1113     /**
1114      * Key code:  The virtual multitask key
1115      *
1116      * @since 1
1117      */
1118     HOS_KEY_VIRTUAL_MULTITASK = 2210,
1119 
1120     HOS_KEY_COMPOSE = 2466,
1121     HOS_KEY_SLEEP = 2600,
1122     HOS_KEY_ZENKAKU_HANKAKU = 2601,
1123     HOS_KEY_102ND = 2602,
1124     HOS_KEY_RO = 2603,
1125     HOS_KEY_KATAKANA = 2604,
1126     HOS_KEY_HIRAGANA = 2605,
1127     HOS_KEY_HENKAN = 2606,
1128     HOS_KEY_KATAKANA_HIRAGANA = 2607,
1129     HOS_KEY_MUHENKAN = 2608,
1130     HOS_KEY_LINEFEED = 2609,
1131     HOS_KEY_MACRO = 2610,
1132     HOS_KEY_NUMPAD_PLUSMINUS = 2611,
1133     HOS_KEY_SCALE = 2612,
1134     HOS_KEY_HANGUEL = 2613,
1135     HOS_KEY_HANJA = 2614,
1136     HOS_KEY_YEN = 2615,
1137     HOS_KEY_STOP = 2616,
1138     HOS_KEY_AGAIN = 2617,
1139     HOS_KEY_PROPS = 2618,
1140     HOS_KEY_UNDO = 2619,
1141     HOS_KEY_COPY = 2620,
1142     HOS_KEY_OPEN = 2621,
1143     HOS_KEY_PASTE = 2622,
1144     HOS_KEY_FIND = 2623,
1145     HOS_KEY_CUT = 2624,
1146     HOS_KEY_HELP = 2625,
1147     HOS_KEY_CALC = 2626,
1148     HOS_KEY_FILE = 2627,
1149     HOS_KEY_BOOKMARKS = 2628,
1150     HOS_KEY_NEXT = 2629,
1151     HOS_KEY_PLAYPAUSE = 2630,
1152     HOS_KEY_PREVIOUS = 2631,
1153     HOS_KEY_STOPCD = 2632,
1154     HOS_KEY_CONFIG = 2634,
1155     HOS_KEY_REFRESH = 2635,
1156     HOS_KEY_EXIT = 2636,
1157     HOS_KEY_EDIT = 2637,
1158     HOS_KEY_SCROLLUP = 2638,
1159     HOS_KEY_SCROLLDOWN = 2639,
1160     HOS_KEY_NEW = 2640,
1161     HOS_KEY_REDO = 2641,
1162     HOS_KEY_CLOSE = 2642,
1163     HOS_KEY_PLAY = 2643,
1164     HOS_KEY_BASSBOOST = 2644,
1165     HOS_KEY_PRINT = 2645,
1166     HOS_KEY_CHAT = 2646,
1167     HOS_KEY_FINANCE = 2647,
1168     HOS_KEY_CANCEL = 2648,
1169     HOS_KEY_KBDILLUM_TOGGLE = 2649,
1170     HOS_KEY_KBDILLUM_DOWN = 2650,
1171     HOS_KEY_KBDILLUM_UP = 2651,
1172     HOS_KEY_SEND = 2652,
1173     HOS_KEY_REPLY = 2653,
1174     HOS_KEY_FORWARDMAIL = 2654,
1175     HOS_KEY_SAVE = 2655,
1176     HOS_KEY_DOCUMENTS = 2656,
1177     HOS_KEY_VIDEO_NEXT = 2657,
1178     HOS_KEY_VIDEO_PREV = 2658,
1179     HOS_KEY_BRIGHTNESS_CYCLE = 2659,
1180     HOS_KEY_BRIGHTNESS_ZERO = 2660,
1181     HOS_KEY_DISPLAY_OFF = 2661,
1182     HOS_BTN_MISC = 2662,
1183     HOS_KEY_GOTO = 2663,
1184     HOS_KEY_INFO = 2664,
1185     HOS_KEY_PROGRAM = 2665,
1186     HOS_KEY_PVR = 2666,
1187     HOS_KEY_SUBTITLE = 2667,
1188     HOS_KEY_FULL_SCREEN = 2668,
1189     HOS_KEY_KEYBOARD = 2669,
1190     HOS_KEY_ASPECT_RATIO = 2670,
1191     HOS_KEY_PC = 2671,
1192     HOS_KEY_TV = 2672,
1193     HOS_KEY_TV2 = 2673,
1194     HOS_KEY_VCR = 2674,
1195     HOS_KEY_VCR2 = 2675,
1196     HOS_KEY_SAT = 2676,
1197     HOS_KEY_CD = 2677,
1198     HOS_KEY_TAPE = 2678,
1199     HOS_KEY_TUNER = 2679,
1200     HOS_KEY_PLAYER = 2680,
1201     HOS_KEY_DVD = 2681,
1202     HOS_KEY_AUDIO = 2682,
1203     HOS_KEY_VIDEO = 2683,
1204     HOS_KEY_MEMO = 2684,
1205     HOS_KEY_CALENDAR = 2685,
1206     HOS_KEY_RED = 2686,
1207     HOS_KEY_GREEN = 2687,
1208     HOS_KEY_YELLOW = 2688,
1209     HOS_KEY_BLUE = 2689,
1210     HOS_KEY_CHANNELUP = 2690,
1211     HOS_KEY_CHANNELDOWN = 2691,
1212     HOS_KEY_LAST = 2692,
1213     HOS_KEY_RESTART = 2693,
1214     HOS_KEY_SLOW = 2694,
1215     HOS_KEY_SHUFFLE = 2695,
1216     HOS_KEY_VIDEOPHONE = 2696,
1217     HOS_KEY_GAMES = 2697,
1218     HOS_KEY_ZOOMIN = 2698,
1219     HOS_KEY_ZOOMOUT = 2699,
1220     HOS_KEY_ZOOMRESET = 2700,
1221     HOS_KEY_WORDPROCESSOR = 2701,
1222     HOS_KEY_EDITOR = 2702,
1223     HOS_KEY_SPREADSHEET = 2703,
1224     HOS_KEY_GRAPHICSEDITOR = 2704,
1225     HOS_KEY_PRESENTATION = 2705,
1226     HOS_KEY_DATABASE = 2706,
1227     HOS_KEY_NEWS = 2707,
1228     HOS_KEY_VOICEMAIL = 2708,
1229     HOS_KEY_ADDRESSBOOK = 2709,
1230     HOS_KEY_MESSENGER = 2710,
1231     HOS_KEY_BRIGHTNESS_TOGGLE = 2711,
1232     HOS_KEY_SPELLCHECK = 2712,
1233     HOS_KEY_COFFEE = 2713,
1234     HOS_KEY_MEDIA_REPEAT = 2714,
1235     HOS_KEY_IMAGES = 2715,
1236     HOS_KEY_BUTTONCONFIG = 2716,
1237     HOS_KEY_TASKMANAGER = 2717,
1238     HOS_KEY_JOURNAL = 2718,
1239     HOS_KEY_CONTROLPANEL = 2719,
1240     HOS_KEY_APPSELECT = 2720,
1241     HOS_KEY_SCREENSAVER = 2721,
1242     HOS_KEY_ASSISTANT = 2722,
1243     HOS_KEY_KBD_LAYOUT_NEXT = 2723,
1244     HOS_KEY_BRIGHTNESS_MIN = 2724,
1245     HOS_KEY_BRIGHTNESS_MAX = 2725,
1246     HOS_KEY_KBDINPUTASSIST_PREV = 2726,
1247     HOS_KEY_KBDINPUTASSIST_NEXT = 2727,
1248     HOS_KEY_KBDINPUTASSIST_PREVGROUP = 2728,
1249     HOS_KEY_KBDINPUTASSIST_NEXTGROUP = 2729,
1250     HOS_KEY_KBDINPUTASSIST_ACCEPT = 2730,
1251     HOS_KEY_KBDINPUTASSIST_CANCEL = 2731,
1252 
1253     HOS_KEY_FRONT = 2800,
1254     HOS_KEY_SETUP = 2801,
1255     HOS_KEY_WAKEUP = 2802,
1256     HOS_KEY_SENDFILE = 2803,
1257     HOS_KEY_DELETEFILE = 2804,
1258     HOS_KEY_XFER = 2805,
1259     HOS_KEY_PROG1 = 2806,
1260     HOS_KEY_PROG2 = 2807,
1261     HOS_KEY_MSDOS = 2808,
1262     HOS_KEY_SCREENLOCK = 2809,
1263     HOS_KEY_DIRECTION_ROTATE_DISPLAY = 2810,
1264     HOS_KEY_CYCLEWINDOWS = 2811,
1265     HOS_KEY_COMPUTER = 2812,
1266     HOS_KEY_EJECTCLOSECD = 2813,
1267     HOS_KEY_ISO = 2814,
1268     HOS_KEY_MOVE = 2815,
1269     HOS_KEY_F13 = 2816,
1270     HOS_KEY_F14 = 2817,
1271     HOS_KEY_F15 = 2818,
1272     HOS_KEY_F16 = 2819,
1273     HOS_KEY_F17 = 2820,
1274     HOS_KEY_F18 = 2821,
1275     HOS_KEY_F19 = 2822,
1276     HOS_KEY_F20 = 2823,
1277     HOS_KEY_F21 = 2824,
1278     HOS_KEY_F22 = 2825,
1279     HOS_KEY_F23 = 2826,
1280     HOS_KEY_F24 = 2827,
1281     HOS_KEY_PROG3 = 2828,
1282     HOS_KEY_PROG4 = 2829,
1283     HOS_KEY_DASHBOARD = 2830,
1284     HOS_KEY_SUSPEND = 2831,
1285     HOS_KEY_HP = 2832,
1286     HOS_KEY_SOUND = 2833,
1287     HOS_KEY_QUESTION = 2834,
1288     HOS_KEY_CONNECT = 2836,
1289     HOS_KEY_SPORT = 2837,
1290     HOS_KEY_SHOP = 2838,
1291     HOS_KEY_ALTERASE = 2839,
1292     HOS_KEY_SWITCHVIDEOMODE = 2841,
1293     HOS_KEY_BATTERY = 2842,
1294     HOS_KEY_BLUETOOTH = 2843,
1295     HOS_KEY_WLAN = 2844,
1296     HOS_KEY_UWB = 2845,
1297     HOS_KEY_WWAN_WIMAX = 2846,
1298     HOS_KEY_RFKILL = 2847,
1299     HOS_KEY_F26 = 2848,
1300     HOS_KEY_F27 = 2849,
1301 
1302     HOS_KEY_CHANNEL = 3001,
1303     HOS_KEY_BTN_0 = 3100,
1304     HOS_KEY_BTN_1 = 3101,
1305     HOS_KEY_BTN_2 = 3102,
1306     HOS_KEY_BTN_3 = 3103,
1307     HOS_KEY_BTN_4 = 3104,
1308     HOS_KEY_BTN_5 = 3105,
1309     HOS_KEY_BTN_6 = 3106,
1310     HOS_KEY_BTN_7 = 3107,
1311     HOS_KEY_BTN_8 = 3108,
1312     HOS_KEY_BTN_9 = 3109,
1313 
1314     HOS_KEY_BRL_DOT1 = 3201,
1315     HOS_KEY_BRL_DOT2 = 3202,
1316     HOS_KEY_BRL_DOT3 = 3203,
1317     HOS_KEY_BRL_DOT4 = 3204,
1318     HOS_KEY_BRL_DOT5 = 3205,
1319     HOS_KEY_BRL_DOT6 = 3206,
1320     HOS_KEY_BRL_DOT7 = 3207,
1321     HOS_KEY_BRL_DOT8 = 3208,
1322     HOS_KEY_BRL_DOT9 = 3209,
1323     HOS_KEY_BRL_DOT10 = 3210,
1324 
1325     /**
1326      * Left Knob roll-up
1327      * <p>In contrast to {@link #KEY_LEFT_KNOB_ROLL_DOWN}, it means rolling the left knob upwards. The knob function
1328      * is scenario-specific, for example, increasing the volume or air conditioner temperature.
1329      *
1330      * @since 1
1331      */
1332     HOS_KEY_LEFT_KNOB_ROLL_UP = 10001,
1333 
1334     /**
1335      * Left Knob roll-down
1336      * <p>In contrast to {@link #KEY_LEFT_KNOB_ROLL_UP}, it means rolling the left knob downwards. The knob function
1337      * is scenario-specific, for example, reducing the volume or air conditioner temperature.
1338      *
1339      * @since 1
1340      */
1341     HOS_KEY_LEFT_KNOB_ROLL_DOWN = 10002,
1342 
1343     /**
1344      * Left Knob
1345      * <p>Pressing the knob will activate its adjustment function.
1346      *
1347      * @since 1
1348      */
1349     HOS_KEY_LEFT_KNOB = 10003,
1350 
1351     /**
1352      * Right Knob roll-up
1353      * <p>In contrast to {@link #KEY_RIGHT_KNOB_ROLL_DOWN}, it means rolling the right knob upwards. The knob
1354      * function is scenario-specific, for example, increasing the volume or air conditioner temperature.
1355      *
1356      * @since 1
1357      */
1358     HOS_KEY_RIGHT_KNOB_ROLL_UP = 10004,
1359 
1360     /**
1361      * Right Knob roll-down
1362      * <p>In contrast to {@link #KEY_RIGHT_KNOB_ROLL_UP}, it means rolling the right knob downwards. The knob
1363      * function is scenario-specific, for example, reducing the volume or air conditioner temperature.
1364      *
1365      * @since 1
1366      */
1367     HOS_KEY_RIGHT_KNOB_ROLL_DOWN = 10005,
1368 
1369     /**
1370      * Right Knob
1371      * <p>Pressing the knob will activate its adjustment function.
1372      *
1373      * @since 1
1374      */
1375     HOS_KEY_RIGHT_KNOB = 10006,
1376 
1377     /**
1378      * Audio Source Switch button
1379      * <p>Pressing this button will enable the audio source. Depending on the actual scenario, it may also
1380      * indicate that the Bluetooth call control button is pressed.
1381      *
1382      * @since 1
1383      */
1384     HOS_KEY_VOICE_SOURCE_SWITCH = 10007,
1385 
1386     /**
1387      * Menu key
1388      * <p>Pressing this key will display the launcher page.
1389      *
1390      * @since 1
1391      */
1392     HOS_KEY_LAUNCHER_MENU = 10008,
1393 
1394     /**
1395      * Keycode constant: max keycode
1396      * <p> If a new keycode added to {@code KeyEvent} is greater than the maximum keycode, update
1397      * the maximum keycode accordingly.
1398      *
1399      * @since 1
1400      */
1401     HOS_NOW_MAX_KEY = HOS_KEY_LAUNCHER_MENU
1402 };
1403 
1404 enum MouseEnum {
1405     /**
1406      * Indicates that the left button on the mouse is pressed.
1407      *
1408      * @since 1
1409      */
1410     HOS_LEFT_BUTTON = 1 << 0,
1411 
1412     /**
1413      * Indicates that the right button on the mouse is pressed.
1414      *
1415      * @since 1
1416      */
1417     HOS_RIGHT_BUTTON = 1 << 1,
1418 
1419     /**
1420      * Indicates that the middle button on the mouse is pressed.
1421      *
1422      * @since 1
1423      */
1424     HOS_MIDDLE_BUTTON = 1 << 2,
1425 
1426     /**
1427      * Indicates that the back button on the mouse is pressed.
1428      *
1429      * @since 1
1430      */
1431     HOS_BACK_BUTTON = 1 << 3,
1432 
1433     /**
1434      * Indicates that the forward button on the mouse is pressed.
1435      *
1436      * @since 1
1437      */
1438     HOS_FORWARD_BUTTON = 1 << 4,
1439 
1440     HOS_SIDE_BUTTON = 1 << 5,
1441     HOS_EXTRA_BUTTON = 1 << 6,
1442     HOS_TASK_BUTTON = 1 << 7,
1443 };
1444 
1445 enum JoystickEnum {
1446     /**
1447      * Key code of joystick:
1448      *
1449      * @since 1
1450      */
1451     HOS_KEY_BUTTON_TRIGGER = 2401,
1452 
1453     /**
1454      * Key code of joystick:
1455      *
1456      * @since 1
1457      */
1458     HOS_KEY_BUTTON_THUMB = 2402,
1459 
1460     /**
1461      * Key code of joystick:
1462      *
1463      * @since 1
1464      */
1465     HOS_KEY_BUTTON_THUMB2 = 2403,
1466 
1467     /**
1468      * Key code of joystick:
1469      *
1470      * @since 1
1471      */
1472     HOS_KEY_BUTTON_TOP = 2404,
1473 
1474     /**
1475      * Key code of joystick:
1476      *
1477      * @since 1
1478      */
1479     HOS_KEY_BUTTON_TOP2 = 2405,
1480 
1481     /**
1482      * Key code of joystick:
1483      *
1484      * @since 1
1485      */
1486     HOS_KEY_BUTTON_PINKIE = 2406,
1487 
1488     /**
1489      * Key code of joystick:
1490      *
1491      * @since 1
1492      */
1493     HOS_KEY_BUTTON_BASE1 = 2407,
1494 
1495     /**
1496      * Key code of joystick:
1497      *
1498      * @since 1
1499      */
1500     HOS_KEY_BUTTON_BASE2 = 2408,
1501 
1502     /**
1503      * Key code of joystick:
1504      *
1505      * @since 1
1506      */
1507     HOS_KEY_BUTTON_BASE3 = 2409,
1508 
1509     /**
1510      * Key code of joystick:
1511      *
1512      * @since 1
1513      */
1514     HOS_KEY_BUTTON_BASE4 = 2410,
1515 
1516     /**
1517      * Key code of joystick:
1518      *
1519      * @since 1
1520      */
1521     HOS_KEY_BUTTON_BASE5 = 2411,
1522 
1523     /**
1524      * Key code of joystick:
1525      *
1526      * @since 1
1527      */
1528     HOS_KEY_BUTTON_BASE6 = 2412,
1529 
1530     /**
1531      * Key code of joystick:
1532      *
1533      * @since 1
1534      */
1535     HOS_KEY_BUTTON_BASE7 = 2413,
1536 
1537     /**
1538      * Key code of joystick:
1539      *
1540      * @since 1
1541      */
1542     HOS_KEY_BUTTON_BASE8 = 2414,
1543 
1544     /**
1545      * Key code of joystick:
1546      *
1547      * @since 1
1548      */
1549     HOS_KEY_BUTTON_BASE9 = 2415,
1550 
1551     /**
1552      * Key code of joystick:
1553      *
1554      * @since 1
1555      */
1556     HOS_KEY_BUTTON_DEAD = 2416,
1557 };
1558 
1559 enum HandleEnum {
1560     /**
1561      * Key code of handle:
1562      *
1563      * @since 1
1564      */
1565     HOS_KEY_BUTTON_A = 2301,
1566 
1567     /**
1568      * Key code of handle:
1569      *
1570      * @since 1
1571      */
1572     HOS_KEY_BUTTON_B = 2302,
1573 
1574     /**
1575      * Key code of handle:
1576      *
1577      * @since 1
1578      */
1579     HOS_KEY_BUTTON_C = 2303,
1580 
1581     /**
1582      * Key code of handle:
1583      *
1584      * @since 1
1585      */
1586     HOS_KEY_BUTTON_X = 2304,
1587 
1588     /**
1589      * Key code of handle:
1590      *
1591      * @since 1
1592      */
1593     HOS_KEY_BUTTON_Y = 2305,
1594 
1595     /**
1596      * Key code of handle:
1597      *
1598      * @since 1
1599      */
1600     HOS_KEY_BUTTON_Z = 2306,
1601 
1602     /**
1603      * Key code of handle:
1604      *
1605      * @since 1
1606      */
1607     HOS_KEY_BUTTON_L1 = 2307,
1608 
1609     /**
1610      * Key code of handle:
1611      *
1612      * @since 1
1613      */
1614     HOS_KEY_BUTTON_R1 = 2308,
1615 
1616     /**
1617      * Key code of handle:
1618      *
1619      * @since 1
1620      */
1621     HOS_KEY_BUTTON_L2 = 2309,
1622 
1623     /**
1624      * Key code of handle:
1625      *
1626      * @since 1
1627      */
1628     HOS_KEY_BUTTON_R2 = 2310,
1629 
1630     /**
1631      * Key code of handle:
1632      *
1633      * @since 1
1634      */
1635     HOS_KEY_BUTTON_SELECT = 2311,
1636 
1637     /**
1638      * Key code of handle:
1639      *
1640      * @since 1
1641      */
1642     HOS_KEY_BUTTON_START = 2312,
1643 
1644     /**
1645      * Key code of handle:
1646      *
1647      * @since 1
1648      */
1649     HOS_KEY_BUTTON_MODE = 2313,
1650 
1651     /**
1652      * Key code of handle:
1653      *
1654      * @since 1
1655      */
1656     HOS_KEY_BUTTON_THUMBL = 2314,
1657 
1658     /**
1659      * Key code of handle:
1660      *
1661      * @since 1
1662      */
1663     HOS_KEY_BUTTON_THUMBR = 2315,
1664 };
1665 
1666 enum TouchEnum {
1667     /**
1668      * Key code of touch:
1669      *
1670      * @since 1
1671      */
1672     HOS_BUTTON_TOUCH = 2500,
1673 
1674     HOS_BUTTON_TOOL_PEN = 2501,
1675     HOS_BUTTON_TOOL_RUBBER = 2502,
1676     HOS_BUTTON_TOOL_BRUSH = 2503,
1677     HOS_BUTTON_TOOL_PENCIL = 2504,
1678     HOS_BUTTON_TOOL_AIRBRUSH = 2505,
1679     HOS_BUTTON_TOOL_FINGER = 2506,
1680     HOS_BUTTON_TOOL_MOUSE = 2507,
1681     HOS_BUTTON_TOOL_LENS = 2508,
1682     HOS_BUTTON_STYLUS = 2509,
1683     HOS_BUTTON_STYLUS2 = 2510,
1684     HOS_BUTTON_STYLUS3 = 2511,
1685     HOS_BUTTON_TOOL_DOUBLETAP = 2512,
1686     HOS_BUTTON_TOOL_TRIPLETAP = 2513,
1687     HOS_BUTTON_TOOL_QUADTAP = 2514,
1688     HOS_BUTTON_TOOL_QUINTTAP = 2515,
1689 };
1690 } // namespace OHOS
1691 #endif // HOS_KEY_EVENT_H