// 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.
type Key = flexible enum : uint32 {
    /// Used when the value of Key is not known.
    @unknown
    UNKNOWN = 0;

    /// 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;

    /// 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;

    /// Keyboard Non-US \ and |
    NON_US_BACKSLASH = 0x00070064;

    /// Keypad =
    KEYPAD_EQUALS = 0x00070067;

    /// Keyboard Menu
    MENU = 0x00070076;

    /// 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;

    /// Mute
    ///
    /// Silences played sounds.
    @available(added=9)
    MUTE = 0x0007007f;

    /// Turn volume down
    @available(added=9)
    VOLUME_DOWN = 0x00070081;

    /// Turn volume up
    @available(added=9)
    VOLUME_UP = 0x00070080;

    // Consumer usage page (0x000c)
    //
    // E.g. Action keys appearing on Chromebook keyboards.  Although these
    // appear on Chromebook keyboards, their codes come from the "consumer"
    // usage page in HID.

    /// Play media, or pause media if playing
    @available(added=9)
    PLAY_PAUSE = 0x000c00cd;

    /// Media mute
    ///
    /// Silences media playback. Other sounds may still be heard, e.g. system
    /// notification sounds.
    MEDIA_MUTE = 0x000c00e2;

    /// Volume Increment
    MEDIA_VOLUME_INCREMENT = 0x000c00e9;

    /// Volume Decrement
    MEDIA_VOLUME_DECREMENT = 0x000c00ea;

    /// Back
    ///
    /// Go back to the previous page in the browser.
    /// This, and other action keys are [defined in Chromium][1].
    ///
    /// [1]: https://source.chromium.org/chromium/chromium/src/+/main:ui/events/keycodes/dom/dom_code_data.inc
    @available(added=9)
    AC_BACK = 0x000c0224;

    /// Refresh
    ///
    /// Refresh the current page in the browser.
    @available(added=9)
    AC_REFRESH = 0x000c0227;

    /// Full screen view
    ///
    /// Zooms the focused window to full screen.
    @available(added=9)
    AC_FULL_SCREEN_VIEW = 0x000c0230;

    /// Select task/application
    ///
    /// Shows the task selection window
    @available(added=9)
    AC_SELECT_TASK_APPLICATION = 0x000c01a2;

    /// Reduce screen brightness
    @available(added=9)
    BRIGHTNESS_DOWN = 0x000c006f;

    /// Increase screen brightness
    @available(added=9)
    BRIGHTNESS_UP = 0x000c0070;

    // Self-defined (0xffff)

    /// NOTE: the following are self-defined and do not have to follow the HID usage pages.
    /// We use HID-Vendor-Specific page 0xFFFF to represent Fuchsia defined keys.
    /// Assistant Key.
    @available(added=9)
    ASSISTANT = 0xffff0001;

    /// Power Button.
    @available(added=9)
    POWER = 0xffff0002;

    /// Warning: following keycodes maybe changed in the future, please don't use!!!
    /// We use following keycodes in starnix tests. Most of them are keycodes in non-US keyboard
    /// layouts, we may move them to meaning enum once we support those keyboard layouts.
    /// See b/311425670 for details.
    @available(added=16)
    UNKNOWN_0055 = 0xffff0055;

    @available(added=16)
    UNKNOWN_0056 = 0xffff0056;

    @available(added=16)
    UNKNOWN_0059 = 0xffff0059;

    @available(added=16)
    UNKNOWN_005C = 0xffff005c;

    @available(added=16)
    UNKNOWN_005D = 0xffff005d;

    @available(added=16)
    UNKNOWN_005E = 0xffff005e;

    @available(added=16)
    UNKNOWN_0079 = 0xffff0079;

    @available(added=16)
    UNKNOWN_007A = 0xffff007a;

    @available(added=16)
    UNKNOWN_007B = 0xffff007b;

    @available(added=16)
    UNKNOWN_007C = 0xffff007c;

    @available(added=16)
    UNKNOWN_0085 = 0xffff0085;

    @available(added=16)
    UNKNOWN_0087 = 0xffff0087;

    @available(added=16)
    UNKNOWN_0089 = 0xffff0089;

    @available(added=16)
    UNKNOWN_009C = 0xffff009c;

    @available(added=16)
    UNKNOWN_009F = 0xffff009f;

    @available(added=16)
    UNKNOWN_00A0 = 0xffff00a0;

    @available(added=16)
    UNKNOWN_00A2 = 0xffff00a2;

    @available(added=16)
    UNKNOWN_00A3 = 0xffff00a3;

    @available(added=16)
    UNKNOWN_00A5 = 0xffff00a5;

    @available(added=16)
    UNKNOWN_00A6 = 0xffff00a6;

    @available(added=16)
    UNKNOWN_00A7 = 0xffff00a7;

    @available(added=16)
    UNKNOWN_00A8 = 0xffff00a8;

    @available(added=16)
    UNKNOWN_00A9 = 0xffff00a9;

    @available(added=16)
    UNKNOWN_00AD = 0xffff00ad;

    @available(added=16)
    UNKNOWN_00B1 = 0xffff00b1;

    @available(added=16)
    UNKNOWN_00B2 = 0xffff00b2;

    @available(added=16)
    UNKNOWN_00B3 = 0xffff00b3;

    @available(added=16)
    UNKNOWN_00B4 = 0xffff00b4;

    @available(added=16)
    UNKNOWN_00C9 = 0xffff00c9;

    @available(added=16)
    UNKNOWN_00CF = 0xffff00cf;

    @available(added=16)
    UNKNOWN_00D0 = 0xffff00d0;

    @available(added=16)
    UNKNOWN_00D4 = 0xffff00d4;

    @available(added=16)
    UNKNOWN_00E2 = 0xffff00e2;

    @available(added=16)
    UNKNOWN_0120 = 0xffff0120;

    @available(added=16)
    UNKNOWN_0121 = 0xffff0121;

    @available(added=16)
    UNKNOWN_0122 = 0xffff0122;

    @available(added=16)
    UNKNOWN_0123 = 0xffff0123;

    @available(added=16)
    UNKNOWN_0124 = 0xffff0124;

    @available(added=16)
    UNKNOWN_0125 = 0xffff0125;

    @available(added=16)
    UNKNOWN_0126 = 0xffff0126;

    @available(added=16)
    UNKNOWN_0127 = 0xffff0127;

    @available(added=16)
    UNKNOWN_0128 = 0xffff0128;

    @available(added=16)
    UNKNOWN_0129 = 0xffff0129;

    @available(added=16)
    UNKNOWN_012A = 0xffff012a;

    @available(added=16)
    UNKNOWN_012B = 0xffff012b;

    @available(added=16)
    UNKNOWN_012C = 0xffff012c;

    @available(added=16)
    UNKNOWN_012D = 0xffff012d;

    @available(added=16)
    UNKNOWN_012E = 0xffff012e;

    @available(added=16)
    UNKNOWN_012F = 0xffff012f;

    @available(added=16)
    UNKNOWN_0130 = 0xffff0130;

    @available(added=16)
    UNKNOWN_0131 = 0xffff0131;

    @available(added=16)
    UNKNOWN_0132 = 0xffff0132;

    @available(added=16)
    UNKNOWN_0133 = 0xffff0133;

    @available(added=16)
    UNKNOWN_0134 = 0xffff0134;

    @available(added=16)
    UNKNOWN_0135 = 0xffff0135;

    @available(added=16)
    UNKNOWN_0136 = 0xffff0136;

    @available(added=16)
    UNKNOWN_0137 = 0xffff0137;

    @available(added=16)
    UNKNOWN_0138 = 0xffff0138;

    @available(added=16)
    UNKNOWN_0139 = 0xffff0139;

    @available(added=16)
    UNKNOWN_013A = 0xffff013a;

    @available(added=16)
    UNKNOWN_013B = 0xffff013b;

    @available(added=16)
    UNKNOWN_013C = 0xffff013c;

    @available(added=16)
    UNKNOWN_013D = 0xffff013d;

    @available(added=16)
    UNKNOWN_013E = 0xffff013e;

    @available(added=16)
    UNKNOWN_0161 = 0xffff0161;

    @available(added=16)
    UNKNOWN_016A = 0xffff016a;

    @available(added=16)
    UNKNOWN_016E = 0xffff016e;

    @available(added=16)
    UNKNOWN_0172 = 0xffff0172;

    @available(added=16)
    UNKNOWN_0179 = 0xffff0179;

    @available(added=16)
    UNKNOWN_018E = 0xffff018e;

    @available(added=16)
    UNKNOWN_018F = 0xffff018f;

    @available(added=16)
    UNKNOWN_0190 = 0xffff0190;

    @available(added=16)
    UNKNOWN_0191 = 0xffff0191;

    @available(added=16)
    UNKNOWN_0192 = 0xffff0192;

    @available(added=16)
    UNKNOWN_0193 = 0xffff0193;

    @available(added=16)
    UNKNOWN_0195 = 0xffff0195;

    @available(added=16)
    UNKNOWN_01D0 = 0xffff01d0;

    @available(added=16)
    UNKNOWN_020A = 0xffff020a;

    @available(added=16)
    UNKNOWN_020B = 0xffff020b;
};
