1 // Copyright 2016 The Fuchsia Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #pragma once
6 
7 // These codes are defined in:
8 // "Universal Serial Bus HID Usage Tables"
9 // http://www.usb.org/developers/hidpage/Hut1_12v2.pdf
10 // (Version 1.12, 10/28/2004)
11 // See "Table 12: Keyboard/Keypad Page"
12 
13 enum {
14     HID_USAGE_KEY_ERROR_ROLLOVER = 0x01,
15     HID_USAGE_KEY_POST_FAIL = 0x02,
16     HID_USAGE_KEY_ERROR_UNDEF = 0x03,
17     HID_USAGE_KEY_A = 0x04,
18     HID_USAGE_KEY_B = 0x05,
19     HID_USAGE_KEY_C = 0x06,
20     HID_USAGE_KEY_D = 0x07,
21     HID_USAGE_KEY_E = 0x08,
22     HID_USAGE_KEY_F = 0x09,
23     HID_USAGE_KEY_G = 0x0a,
24     HID_USAGE_KEY_H = 0x0b,
25     HID_USAGE_KEY_I = 0x0c,
26     HID_USAGE_KEY_J = 0x0d,
27     HID_USAGE_KEY_K = 0x0e,
28     HID_USAGE_KEY_L = 0x0f,
29     HID_USAGE_KEY_M = 0x10,
30     HID_USAGE_KEY_N = 0x11,
31     HID_USAGE_KEY_O = 0x12,
32     HID_USAGE_KEY_P = 0x13,
33     HID_USAGE_KEY_Q = 0x14,
34     HID_USAGE_KEY_R = 0x15,
35     HID_USAGE_KEY_S = 0x16,
36     HID_USAGE_KEY_T = 0x17,
37     HID_USAGE_KEY_U = 0x18,
38     HID_USAGE_KEY_V = 0x19,
39     HID_USAGE_KEY_W = 0x1a,
40     HID_USAGE_KEY_X = 0x1b,
41     HID_USAGE_KEY_Y = 0x1c,
42     HID_USAGE_KEY_Z = 0x1d,
43     HID_USAGE_KEY_1 = 0x1e,
44     HID_USAGE_KEY_2 = 0x1f,
45     HID_USAGE_KEY_3 = 0x20,
46     HID_USAGE_KEY_4 = 0x21,
47     HID_USAGE_KEY_5 = 0x22,
48     HID_USAGE_KEY_6 = 0x23,
49     HID_USAGE_KEY_7 = 0x24,
50     HID_USAGE_KEY_8 = 0x25,
51     HID_USAGE_KEY_9 = 0x26,
52     HID_USAGE_KEY_0 = 0x27,
53     HID_USAGE_KEY_ENTER = 0x28,
54     HID_USAGE_KEY_ESC = 0x29,
55     HID_USAGE_KEY_BACKSPACE = 0x2a,
56     HID_USAGE_KEY_TAB = 0x2b,
57     HID_USAGE_KEY_SPACE = 0x2c,
58     HID_USAGE_KEY_MINUS = 0x2d,
59     HID_USAGE_KEY_EQUAL = 0x2e,
60     HID_USAGE_KEY_LEFTBRACE = 0x2f,
61     HID_USAGE_KEY_RIGHTBRACE = 0x30,
62     HID_USAGE_KEY_BACKSLASH = 0x31,
63     HID_USAGE_KEY_NON_US_OCTOTHORPE = 0x32,
64     HID_USAGE_KEY_SEMICOLON = 0x33,
65     HID_USAGE_KEY_APOSTROPHE = 0x34,
66     HID_USAGE_KEY_GRAVE = 0x35,
67     HID_USAGE_KEY_COMMA = 0x36,
68     HID_USAGE_KEY_DOT = 0x37,
69     HID_USAGE_KEY_SLASH = 0x38,
70     HID_USAGE_KEY_CAPSLOCK = 0x39,
71     HID_USAGE_KEY_F1 = 0x3a,
72     HID_USAGE_KEY_F2 = 0x3b,
73     HID_USAGE_KEY_F3 = 0x3c,
74     HID_USAGE_KEY_F4 = 0x3d,
75     HID_USAGE_KEY_F5 = 0x3e,
76     HID_USAGE_KEY_F6 = 0x3f,
77     HID_USAGE_KEY_F7 = 0x40,
78     HID_USAGE_KEY_F8 = 0x41,
79     HID_USAGE_KEY_F9 = 0x42,
80     HID_USAGE_KEY_F10 = 0x43,
81     HID_USAGE_KEY_F11 = 0x44,
82     HID_USAGE_KEY_F12 = 0x45,
83     HID_USAGE_KEY_PRINTSCREEN = 0x46,
84     HID_USAGE_KEY_SCROLLLOCK = 0x47,
85     HID_USAGE_KEY_PAUSE = 0x48,
86     HID_USAGE_KEY_INSERT = 0x49,
87     HID_USAGE_KEY_HOME = 0x4a,
88     HID_USAGE_KEY_PAGEUP = 0x4b,
89     HID_USAGE_KEY_DELETE = 0x4c,
90     HID_USAGE_KEY_END = 0x4d,
91     HID_USAGE_KEY_PAGEDOWN = 0x4e,
92     HID_USAGE_KEY_RIGHT = 0x4f,
93     HID_USAGE_KEY_LEFT = 0x50,
94     HID_USAGE_KEY_DOWN = 0x51,
95     HID_USAGE_KEY_UP = 0x52,
96     HID_USAGE_KEY_NUMLOCK = 0x53,
97     HID_USAGE_KEY_KP_SLASH = 0x54,
98     HID_USAGE_KEY_KP_ASTERISK = 0x55,
99     HID_USAGE_KEY_KP_MINUS = 0x56,
100     HID_USAGE_KEY_KP_PLUS = 0x57,
101     HID_USAGE_KEY_KP_ENTER = 0x58,
102     HID_USAGE_KEY_KP_1 = 0x59,
103     HID_USAGE_KEY_KP_2 = 0x5a,
104     HID_USAGE_KEY_KP_3 = 0x5b,
105     HID_USAGE_KEY_KP_4 = 0x5c,
106     HID_USAGE_KEY_KP_5 = 0x5d,
107     HID_USAGE_KEY_KP_6 = 0x5e,
108     HID_USAGE_KEY_KP_7 = 0x5f,
109     HID_USAGE_KEY_KP_8 = 0x60,
110     HID_USAGE_KEY_KP_9 = 0x61,
111     HID_USAGE_KEY_KP_0 = 0x62,
112     HID_USAGE_KEY_KP_DOT = 0x63,
113     HID_USAGE_KEY_NON_US_BACKSLASH = 0x64,
114 
115     // TODO: other keys
116 
117     HID_USAGE_KEY_LEFT_CTRL = 0xe0,
118     HID_USAGE_KEY_LEFT_SHIFT = 0xe1,
119     HID_USAGE_KEY_LEFT_ALT = 0xe2,
120     HID_USAGE_KEY_LEFT_GUI = 0xe3,
121     HID_USAGE_KEY_RIGHT_CTRL = 0xe4,
122     HID_USAGE_KEY_RIGHT_SHIFT = 0xe5,
123     HID_USAGE_KEY_RIGHT_ALT = 0xe6,
124     HID_USAGE_KEY_RIGHT_GUI = 0xe7,
125     HID_USAGE_KEY_VOL_DOWN = 0xe8,
126     HID_USAGE_KEY_VOL_UP = 0xe9,
127 };
128