| // Copyright 2020 The Fuchsia Authors. All rights reserved. | 
 | // Use of this source code is governed by a BSD-style license that can be | 
 | // found in the LICENSE file. | 
 |  | 
 | library fuchsia.input; | 
 |  | 
 | /// A Fuchsia key represents a control that can be pressed or released such as a key or | 
 | /// a button on a keyboard or another input device. | 
 | /// | 
 | /// The ordinal index for enum elements is derived from the USB HID Usage Tables at the | 
 | /// time of definition. It is a 32 bit unsigned integer representing the USB HID Usage | 
 | /// where the low 16 bits are the USB HID Usage ID and the high 16 bits are the | 
 | /// USB HID Usage Page. | 
 | /// | 
 | /// The descriptions for each value in the enum assume a US English keyboard layout. | 
 | /// Actual behavior varies by layout. | 
 | enum Key : uint32 { | 
 |     /// Keyboard a and A | 
 |     A = 0x00070004; | 
 |  | 
 |     /// Keyboard b and B | 
 |     B = 0x00070005; | 
 |  | 
 |     /// Keyboard c and C | 
 |     C = 0x00070006; | 
 |  | 
 |     /// Keyboard d and D | 
 |     D = 0x00070007; | 
 |  | 
 |     /// Keyboard e and E | 
 |     E = 0x00070008; | 
 |  | 
 |     /// Keyboard f and F | 
 |     F = 0x00070009; | 
 |  | 
 |     /// Keyboard g and G | 
 |     G = 0x0007000a; | 
 |  | 
 |     /// Keyboard h and H | 
 |     H = 0x0007000b; | 
 |  | 
 |     /// Keyboard i and I | 
 |     I = 0x0007000c; | 
 |  | 
 |     /// Keyboard j and J | 
 |     J = 0x0007000d; | 
 |  | 
 |     /// Keyboard k and K | 
 |     K = 0x0007000e; | 
 |  | 
 |     /// Keyboard l and L | 
 |     L = 0x0007000f; | 
 |  | 
 |     /// Keyboard m and M | 
 |     M = 0x00070010; | 
 |  | 
 |     /// Keyboard n and N | 
 |     N = 0x00070011; | 
 |  | 
 |     /// Keyboard o and O | 
 |     O = 0x00070012; | 
 |  | 
 |     /// Keyboard p and P | 
 |     P = 0x00070013; | 
 |  | 
 |     /// Keyboard q and Q | 
 |     Q = 0x00070014; | 
 |  | 
 |     /// Keyboard r and R | 
 |     R = 0x00070015; | 
 |  | 
 |     /// Keyboard s and S | 
 |     S = 0x00070016; | 
 |  | 
 |     /// Keyboard t and T | 
 |     T = 0x00070017; | 
 |  | 
 |     /// Keyboard u and U | 
 |     U = 0x00070018; | 
 |  | 
 |     /// Keyboard v and V | 
 |     V = 0x00070019; | 
 |  | 
 |     /// Keyboard w and W | 
 |     W = 0x0007001a; | 
 |  | 
 |     /// Keyboard x and X | 
 |     X = 0x0007001b; | 
 |  | 
 |     /// Keyboard y and Y | 
 |     Y = 0x0007001c; | 
 |  | 
 |     /// Keyboard z and Z | 
 |     Z = 0x0007001d; | 
 |  | 
 |     /// Keyboard 1 and ! | 
 |     KEY_1 = 0x0007001e; | 
 |  | 
 |     /// Keyboard 2 and @ | 
 |     KEY_2 = 0x0007001f; | 
 |  | 
 |     /// Keyboard 3 and # | 
 |     KEY_3 = 0x00070020; | 
 |  | 
 |     /// Keyboard 4 and $ | 
 |     KEY_4 = 0x00070021; | 
 |  | 
 |     /// Keyboard 5 and % | 
 |     KEY_5 = 0x00070022; | 
 |  | 
 |     /// Keyboard 6 and ^ | 
 |     KEY_6 = 0x00070023; | 
 |  | 
 |     /// Keyboard 7 and & | 
 |     KEY_7 = 0x00070024; | 
 |  | 
 |     /// Keyboard 8 and * | 
 |     KEY_8 = 0x00070025; | 
 |  | 
 |     /// Keyboard 9 and ( | 
 |     KEY_9 = 0x00070026; | 
 |  | 
 |     /// Keyboard 0 and ) | 
 |     KEY_0 = 0x00070027; | 
 |  | 
 |     /// Keyboard Enter (Return) | 
 |     ENTER = 0x00070028; | 
 |  | 
 |     /// Keyboard Escape | 
 |     ESCAPE = 0x00070029; | 
 |  | 
 |     /// Keyboard Backspace (Backward Delete) | 
 |     BACKSPACE = 0x0007002a; | 
 |  | 
 |     /// Keyboard Tab | 
 |     TAB = 0x0007002b; | 
 |  | 
 |     /// Keyboard Spacebar | 
 |     SPACE = 0x0007002c; | 
 |  | 
 |     /// Keyboard - and (underscore) | 
 |     MINUS = 0x0007002d; | 
 |  | 
 |     /// Keyboard = and + | 
 |     EQUALS = 0x0007002e; | 
 |  | 
 |     /// Keyboard [ and { | 
 |     LEFT_BRACE = 0x0007002f; | 
 |  | 
 |     /// Keyboard ] and } | 
 |     RIGHT_BRACE = 0x00070030; | 
 |  | 
 |     /// Keyboard \ and | | 
 |     BACKSLASH = 0x00070031; | 
 |  | 
 |     /// Keyboard Non-US # and ~ | 
 |     NON_US_HASH = 0x00070032; | 
 |  | 
 |     /// Keyboard ; and : | 
 |     SEMICOLON = 0x00070033; | 
 |  | 
 |     /// Keyboard ' and " | 
 |     APOSTROPHE = 0x00070034; | 
 |  | 
 |     /// Keyboard Grave Accent and Tilde | 
 |     GRAVE_ACCENT = 0x00070035; | 
 |  | 
 |     /// Keyboard , and < | 
 |     COMMA = 0x00070036; | 
 |  | 
 |     /// Keyboard . and > | 
 |     DOT = 0x00070037; | 
 |  | 
 |     /// Keyboard / and ? | 
 |     SLASH = 0x00070038; | 
 |  | 
 |     /// Keyboard Caps Lock | 
 |     CAPS_LOCK = 0x00070039; | 
 |  | 
 |     /// Keyboard F1 | 
 |     F1 = 0x0007003a; | 
 |  | 
 |     /// Keyboard F2 | 
 |     F2 = 0x0007003b; | 
 |  | 
 |     /// Keyboard F3 | 
 |     F3 = 0x0007003c; | 
 |  | 
 |     /// Keyboard F4 | 
 |     F4 = 0x0007003d; | 
 |  | 
 |     /// Keyboard F5 | 
 |     F5 = 0x0007003e; | 
 |  | 
 |     /// Keyboard F6 | 
 |     F6 = 0x0007003f; | 
 |  | 
 |     /// Keyboard F7 | 
 |     F7 = 0x00070040; | 
 |  | 
 |     /// Keyboard F8 | 
 |     F8 = 0x00070041; | 
 |  | 
 |     /// Keyboard F9 | 
 |     F9 = 0x00070042; | 
 |  | 
 |     /// Keyboard F10 | 
 |     F10 = 0x00070043; | 
 |  | 
 |     /// Keyboard F11 | 
 |     F11 = 0x00070044; | 
 |  | 
 |     /// Keyboard F12 | 
 |     F12 = 0x00070045; | 
 |  | 
 |     /// Keyboard Print Screen | 
 |     PRINT_SCREEN = 0x00070046; | 
 |  | 
 |     /// Keyboard Scroll Lock | 
 |     SCROLL_LOCK = 0x00070047; | 
 |  | 
 |     /// Keyboard Pause | 
 |     PAUSE = 0x00070048; | 
 |  | 
 |     /// Keyboard Insert | 
 |     INSERT = 0x00070049; | 
 |  | 
 |     /// Keyboard Home | 
 |     HOME = 0x0007004a; | 
 |  | 
 |     /// Keyboard Page Up | 
 |     PAGE_UP = 0x0007004b; | 
 |  | 
 |     /// Keyboard Forward Delete | 
 |     DELETE = 0x0007004c; | 
 |  | 
 |     /// Keyboard End | 
 |     END = 0x0007004d; | 
 |  | 
 |     /// Keyboard Page Down | 
 |     PAGE_DOWN = 0x0007004e; | 
 |  | 
 |     /// Keyboard Right Arrow | 
 |     RIGHT = 0x0007004f; | 
 |  | 
 |     /// Keyboard Left Arrow | 
 |     LEFT = 0x00070050; | 
 |  | 
 |     /// Keyboard Down Arrow | 
 |     DOWN = 0x00070051; | 
 |  | 
 |     /// Keyboard Up Arrow | 
 |     UP = 0x00070052; | 
 |  | 
 |     /// Keyboard Non-US \ and | | 
 |     NON_US_BACKSLASH = 0x00070064; | 
 |  | 
 |     /// Keyboard Left Control | 
 |     LEFT_CTRL = 0x000700e0; | 
 |  | 
 |     /// Keyboard Left Shift | 
 |     LEFT_SHIFT = 0x000700e1; | 
 |  | 
 |     /// Keyboard Left Alt | 
 |     LEFT_ALT = 0x000700e2; | 
 |  | 
 |     /// Keyboard Left GUI (Meta, Windows) | 
 |     LEFT_META = 0x000700e3; | 
 |  | 
 |     /// Keyboard Right Control | 
 |     RIGHT_CTRL = 0x000700e4; | 
 |  | 
 |     /// Keyboard Right Shift | 
 |     RIGHT_SHIFT = 0x000700e5; | 
 |  | 
 |     /// Keyboard Right Alt | 
 |     RIGHT_ALT = 0x000700e6; | 
 |  | 
 |     /// Keyboard Right GUI (Meta, Windows) | 
 |     RIGHT_META = 0x000700e7; | 
 |  | 
 |     /// Keyboard Menu | 
 |     MENU = 0x00070076; | 
 |  | 
 |     /// Keypad Num Lock and Clear | 
 |     NUM_LOCK = 0x00070053; | 
 |  | 
 |     /// Keypad / | 
 |     KEYPAD_SLASH = 0x00070054; | 
 |  | 
 |     /// Keypad * | 
 |     KEYPAD_ASTERISK = 0x00070055; | 
 |  | 
 |     /// Keypad - | 
 |     KEYPAD_MINUS = 0x00070056; | 
 |  | 
 |     /// Keypad + | 
 |     KEYPAD_PLUS = 0x00070057; | 
 |  | 
 |     /// Keypad ENTER | 
 |     KEYPAD_ENTER = 0x00070058; | 
 |  | 
 |     /// Keypad 1 and End | 
 |     KEYPAD_1 = 0x00070059; | 
 |  | 
 |     /// Keypad 2 and Down Arrow | 
 |     KEYPAD_2 = 0x0007005a; | 
 |  | 
 |     /// Keypad 3 and Page Down | 
 |     KEYPAD_3 = 0x0007005b; | 
 |  | 
 |     /// Keypad 4 and Left Arrow | 
 |     KEYPAD_4 = 0x0007005c; | 
 |  | 
 |     /// Keypad 5 | 
 |     KEYPAD_5 = 0x0007005d; | 
 |  | 
 |     /// Keypad 6 and Right Arrow | 
 |     KEYPAD_6 = 0x0007005e; | 
 |  | 
 |     /// Keypad 7 and Home | 
 |     KEYPAD_7 = 0x0007005f; | 
 |  | 
 |     /// Keypad 8 and Up Arrow | 
 |     KEYPAD_8 = 0x00070060; | 
 |  | 
 |     /// Keypad 9 and Page Up | 
 |     KEYPAD_9 = 0x00070061; | 
 |  | 
 |     /// Keypad 0 and Insert | 
 |     KEYPAD_0 = 0x00070062; | 
 |  | 
 |     /// Keypad . and Delete | 
 |     KEYPAD_DOT = 0x00070063; | 
 |  | 
 |     /// Keypad = | 
 |     KEYPAD_EQUALS = 0x00070067; | 
 |  | 
 |     /// Mute | 
 |     MEDIA_MUTE = 0x000c00e2; | 
 |  | 
 |     /// Volume Increment | 
 |     MEDIA_VOLUME_INCREMENT = 0x000c00e9; | 
 |  | 
 |     /// Volume Decrement | 
 |     MEDIA_VOLUME_DECREMENT = 0x000c00ea; | 
 | }; |