FPLBase
An open source project by FPL.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
Scan Codes

The keyboard scan codes used by FPLBase, which correspond to the physical location of a certain key on the keyboard. This is ideal for layout-specific controls, regardless of the operating system's mapping of the keys. More...

Detailed Description

The keyboard scan codes used by FPLBase, which correspond to the physical location of a certain key on the keyboard. This is ideal for layout-specific controls, regardless of the operating system's mapping of the keys.

For example, if a given key (a) is pressed, it will result in FPL_SCANCODE_A being generated, even if the a key is mapped to a different character – perhaps the German A-umlaut (รค). This would be perfect in the case of WASD (for secondary arrow-keys), where the location of those four keys is important, regardless of the keystoke they generate.

The values in this enumeration are based on the USB usage page standard: Universal Serial Bus HID Usage Tables

Modules

 Usage page 0x07
 These values are from usage page 0x07 (USB keyboard page).
 

Enumerations

enum  fplbase::FPL_SCANCODE {
  fplbase::FPL_SCANCODE_UNKNOWN = 0, fplbase::FPL_SCANCODE_A = 4, fplbase::FPL_SCANCODE_B = 5, fplbase::FPL_SCANCODE_C = 6,
  fplbase::FPL_SCANCODE_D = 7, fplbase::FPL_SCANCODE_E = 8, fplbase::FPL_SCANCODE_F = 9, fplbase::FPL_SCANCODE_G = 10,
  fplbase::FPL_SCANCODE_H = 11, fplbase::FPL_SCANCODE_I = 12, fplbase::FPL_SCANCODE_J = 13, fplbase::FPL_SCANCODE_K = 14,
  fplbase::FPL_SCANCODE_L = 15, fplbase::FPL_SCANCODE_M = 16, fplbase::FPL_SCANCODE_N = 17, fplbase::FPL_SCANCODE_O = 18,
  fplbase::FPL_SCANCODE_P = 19, fplbase::FPL_SCANCODE_Q = 20, fplbase::FPL_SCANCODE_R = 21, fplbase::FPL_SCANCODE_S = 22,
  fplbase::FPL_SCANCODE_T = 23, fplbase::FPL_SCANCODE_U = 24, fplbase::FPL_SCANCODE_V = 25, fplbase::FPL_SCANCODE_W = 26,
  fplbase::FPL_SCANCODE_X = 27, fplbase::FPL_SCANCODE_Y = 28, fplbase::FPL_SCANCODE_Z = 29, fplbase::FPL_SCANCODE_1 = 30,
  fplbase::FPL_SCANCODE_2 = 31, fplbase::FPL_SCANCODE_3 = 32, fplbase::FPL_SCANCODE_4 = 33, fplbase::FPL_SCANCODE_5 = 34,
  fplbase::FPL_SCANCODE_6 = 35, fplbase::FPL_SCANCODE_7 = 36, fplbase::FPL_SCANCODE_8 = 37, fplbase::FPL_SCANCODE_9 = 38,
  fplbase::FPL_SCANCODE_0 = 39, fplbase::FPL_SCANCODE_RETURN = 40, fplbase::FPL_SCANCODE_ESCAPE = 41, fplbase::FPL_SCANCODE_BACKSPACE = 42,
  fplbase::FPL_SCANCODE_TAB = 43, fplbase::FPL_SCANCODE_SPACE = 44, fplbase::FPL_SCANCODE_MINUS = 45, fplbase::FPL_SCANCODE_EQUALS = 46,
  fplbase::FPL_SCANCODE_LEFTBRACKET = 47, fplbase::FPL_SCANCODE_RIGHTBRACKET = 48, fplbase::FPL_SCANCODE_BACKSLASH = 49, fplbase::FPL_SCANCODE_NONUSHASH = 50,
  fplbase::FPL_SCANCODE_SEMICOLON = 51, fplbase::FPL_SCANCODE_APOSTROPHE = 52, fplbase::FPL_SCANCODE_GRAVE = 53, fplbase::FPL_SCANCODE_COMMA = 54,
  fplbase::FPL_SCANCODE_PERIOD = 55, fplbase::FPL_SCANCODE_SLASH = 56, fplbase::FPL_SCANCODE_CAPSLOCK = 57, fplbase::FPL_SCANCODE_F1 = 58,
  fplbase::FPL_SCANCODE_F2 = 59, fplbase::FPL_SCANCODE_F3 = 60, fplbase::FPL_SCANCODE_F4 = 61, fplbase::FPL_SCANCODE_F5 = 62,
  fplbase::FPL_SCANCODE_F6 = 63, fplbase::FPL_SCANCODE_F7 = 64, fplbase::FPL_SCANCODE_F8 = 65, fplbase::FPL_SCANCODE_F9 = 66,
  fplbase::FPL_SCANCODE_F10 = 67, fplbase::FPL_SCANCODE_F11 = 68, fplbase::FPL_SCANCODE_F12 = 69, fplbase::FPL_SCANCODE_PRINTSCREEN = 70,
  fplbase::FPL_SCANCODE_SCROLLLOCK = 71, fplbase::FPL_SCANCODE_PAUSE = 72, fplbase::FPL_SCANCODE_INSERT = 73, fplbase::FPL_SCANCODE_HOME = 74,
  fplbase::FPL_SCANCODE_PAGEUP = 75, fplbase::FPL_SCANCODE_DELETE = 76, fplbase::FPL_SCANCODE_END = 77, fplbase::FPL_SCANCODE_PAGEDOWN = 78,
  fplbase::FPL_SCANCODE_RIGHT = 79, fplbase::FPL_SCANCODE_LEFT = 80, fplbase::FPL_SCANCODE_DOWN = 81, fplbase::FPL_SCANCODE_UP = 82,
  fplbase::FPL_SCANCODE_NUMLOCKCLEAR = 83, fplbase::FPL_SCANCODE_KP_DIVIDE = 84, fplbase::FPL_SCANCODE_KP_MULTIPLY = 85, fplbase::FPL_SCANCODE_KP_MINUS = 86,
  fplbase::FPL_SCANCODE_KP_PLUS = 87, fplbase::FPL_SCANCODE_KP_ENTER = 88, fplbase::FPL_SCANCODE_KP_1 = 89, fplbase::FPL_SCANCODE_KP_2 = 90,
  fplbase::FPL_SCANCODE_KP_3 = 91, fplbase::FPL_SCANCODE_KP_4 = 92, fplbase::FPL_SCANCODE_KP_5 = 93, fplbase::FPL_SCANCODE_KP_6 = 94,
  fplbase::FPL_SCANCODE_KP_7 = 95, fplbase::FPL_SCANCODE_KP_8 = 96, fplbase::FPL_SCANCODE_KP_9 = 97, fplbase::FPL_SCANCODE_KP_0 = 98,
  fplbase::FPL_SCANCODE_KP_PERIOD = 99, fplbase::FPL_SCANCODE_NONUSBACKSLASH = 100, fplbase::FPL_SCANCODE_APPLICATION = 101, fplbase::FPL_SCANCODE_POWER = 102,
  fplbase::FPL_SCANCODE_KP_EQUALS = 103, fplbase::FPL_SCANCODE_F13 = 104, fplbase::FPL_SCANCODE_F14 = 105, fplbase::FPL_SCANCODE_F15 = 106,
  fplbase::FPL_SCANCODE_F16 = 107, fplbase::FPL_SCANCODE_F17 = 108, fplbase::FPL_SCANCODE_F18 = 109, fplbase::FPL_SCANCODE_F19 = 110,
  fplbase::FPL_SCANCODE_F20 = 111, fplbase::FPL_SCANCODE_F21 = 112, fplbase::FPL_SCANCODE_F22 = 113, fplbase::FPL_SCANCODE_F23 = 114,
  fplbase::FPL_SCANCODE_F24 = 115, fplbase::FPL_SCANCODE_EXECUTE = 116, fplbase::FPL_SCANCODE_HELP = 117, fplbase::FPL_SCANCODE_MENU = 118,
  fplbase::FPL_SCANCODE_SELECT = 119, fplbase::FPL_SCANCODE_STOP = 120, fplbase::FPL_SCANCODE_AGAIN = 121, fplbase::FPL_SCANCODE_UNDO = 122,
  fplbase::FPL_SCANCODE_CUT = 123, fplbase::FPL_SCANCODE_COPY = 124, fplbase::FPL_SCANCODE_PASTE = 125, fplbase::FPL_SCANCODE_FIND = 126,
  fplbase::FPL_SCANCODE_MUTE = 127, fplbase::FPL_SCANCODE_VOLUMEUP = 128, fplbase::FPL_SCANCODE_VOLUMEDOWN = 129, fplbase::FPL_SCANCODE_KP_COMMA = 133,
  fplbase::FPL_SCANCODE_KP_EQUALSAS400 = 134, fplbase::FPL_SCANCODE_INTERNATIONAL1 = 135, FPL_SCANCODE_INTERNATIONAL2 = 136, fplbase::FPL_SCANCODE_INTERNATIONAL3 = 137,
  FPL_SCANCODE_INTERNATIONAL4 = 138, FPL_SCANCODE_INTERNATIONAL5 = 139, FPL_SCANCODE_INTERNATIONAL6 = 140, FPL_SCANCODE_INTERNATIONAL7 = 141,
  FPL_SCANCODE_INTERNATIONAL8 = 142, FPL_SCANCODE_INTERNATIONAL9 = 143, fplbase::FPL_SCANCODE_LANG1 = 144, fplbase::FPL_SCANCODE_LANG2 = 145,
  fplbase::FPL_SCANCODE_LANG3 = 146, fplbase::FPL_SCANCODE_LANG4 = 147, fplbase::FPL_SCANCODE_LANG5 = 148, fplbase::FPL_SCANCODE_LANG6 = 149,
  fplbase::FPL_SCANCODE_LANG7 = 150, fplbase::FPL_SCANCODE_LANG8 = 151, fplbase::FPL_SCANCODE_LANG9 = 152, fplbase::FPL_SCANCODE_ALTERASE = 153,
  FPL_SCANCODE_SYSREQ = 154, FPL_SCANCODE_CANCEL = 155, FPL_SCANCODE_CLEAR = 156, FPL_SCANCODE_PRIOR = 157,
  FPL_SCANCODE_RETURN2 = 158, FPL_SCANCODE_SEPARATOR = 159, FPL_SCANCODE_OUT = 160, FPL_SCANCODE_OPER = 161,
  FPL_SCANCODE_CLEARAGAIN = 162, FPL_SCANCODE_CRSEL = 163, FPL_SCANCODE_EXSEL = 164, FPL_SCANCODE_KP_00 = 176,
  FPL_SCANCODE_KP_000 = 177, FPL_SCANCODE_THOUSANDSSEPARATOR = 178, FPL_SCANCODE_DECIMALSEPARATOR = 179, FPL_SCANCODE_CURRENCYUNIT = 180,
  FPL_SCANCODE_CURRENCYSUBUNIT = 181, FPL_SCANCODE_KP_LEFTPAREN = 182, FPL_SCANCODE_KP_RIGHTPAREN = 183, FPL_SCANCODE_KP_LEFTBRACE = 184,
  FPL_SCANCODE_KP_RIGHTBRACE = 185, FPL_SCANCODE_KP_TAB = 186, FPL_SCANCODE_KP_BACKSPACE = 187, FPL_SCANCODE_KP_A = 188,
  FPL_SCANCODE_KP_B = 189, FPL_SCANCODE_KP_C = 190, FPL_SCANCODE_KP_D = 191, FPL_SCANCODE_KP_E = 192,
  FPL_SCANCODE_KP_F = 193, FPL_SCANCODE_KP_XOR = 194, FPL_SCANCODE_KP_POWER = 195, FPL_SCANCODE_KP_PERCENT = 196,
  FPL_SCANCODE_KP_LESS = 197, FPL_SCANCODE_KP_GREATER = 198, FPL_SCANCODE_KP_AMPERSAND = 199, FPL_SCANCODE_KP_DBLAMPERSAND = 200,
  FPL_SCANCODE_KP_VERTICALBAR = 201, FPL_SCANCODE_KP_DBLVERTICALBAR = 202, FPL_SCANCODE_KP_COLON = 203, FPL_SCANCODE_KP_HASH = 204,
  FPL_SCANCODE_KP_SPACE = 205, FPL_SCANCODE_KP_AT = 206, FPL_SCANCODE_KP_EXCLAM = 207, FPL_SCANCODE_KP_MEMSTORE = 208,
  FPL_SCANCODE_KP_MEMRECALL = 209, FPL_SCANCODE_KP_MEMCLEAR = 210, FPL_SCANCODE_KP_MEMADD = 211, FPL_SCANCODE_KP_MEMSUBTRACT = 212,
  FPL_SCANCODE_KP_MEMMULTIPLY = 213, FPL_SCANCODE_KP_MEMDIVIDE = 214, FPL_SCANCODE_KP_PLUSMINUS = 215, FPL_SCANCODE_KP_CLEAR = 216,
  FPL_SCANCODE_KP_CLEARENTRY = 217, FPL_SCANCODE_KP_BINARY = 218, FPL_SCANCODE_KP_OCTAL = 219, FPL_SCANCODE_KP_DECIMAL = 220,
  FPL_SCANCODE_KP_HEXADECIMAL = 221, FPL_SCANCODE_LCTRL = 224, FPL_SCANCODE_LSHIFT = 225, fplbase::FPL_SCANCODE_LALT = 226,
  fplbase::FPL_SCANCODE_LGUI = 227, FPL_SCANCODE_RCTRL = 228, FPL_SCANCODE_RSHIFT = 229, fplbase::FPL_SCANCODE_RALT = 230,
  fplbase::FPL_SCANCODE_RGUI = 231, FPL_SCANCODE_MODE = 257, fplbase::FPL_SCANCODE_AUDIONEXT = 258, fplbase::FPL_SCANCODE_AUDIOPREV = 259,
  fplbase::FPL_SCANCODE_AUDIOSTOP = 260, fplbase::FPL_SCANCODE_AUDIOPLAY = 261, fplbase::FPL_SCANCODE_AUDIOMUTE = 262, FPL_SCANCODE_MEDIASELECT = 263,
  FPL_SCANCODE_WWW = 264, FPL_SCANCODE_MAIL = 265, fplbase::FPL_SCANCODE_CALCULATOR = 266, FPL_SCANCODE_COMPUTER = 267,
  FPL_SCANCODE_AC_SEARCH = 268, FPL_SCANCODE_AC_HOME = 269, FPL_SCANCODE_AC_BACK = 270, FPL_SCANCODE_AC_FORWARD = 271,
  FPL_SCANCODE_AC_STOP = 272, FPL_SCANCODE_AC_REFRESH = 273, FPL_SCANCODE_AC_BOOKMARKS = 274, fplbase::FPL_SCANCODE_BRIGHTNESSDOWN = 275,
  fplbase::FPL_SCANCODE_BRIGHTNESSUP = 276, fplbase::FPL_SCANCODE_DISPLAYSWITCH = 277, FPL_SCANCODE_KBDILLUMTOGGLE = 278, FPL_SCANCODE_KBDILLUMDOWN = 279,
  FPL_SCANCODE_KBDILLUMUP = 280, fplbase::FPL_SCANCODE_EJECT = 281, fplbase::FPL_SCANCODE_SLEEP = 282, FPL_SCANCODE_APP1 = 283,
  FPL_SCANCODE_APP2 = 284, fplbase::FPL_NUM_SCANCODES = 512
}
 

Enumeration Type Documentation

Enumerator
FPL_SCANCODE_UNKNOWN 

Sentinel value for unknown keypress.

FPL_SCANCODE_A 

Keyboard a and A.

FPL_SCANCODE_B 

Keyboard b and B.

FPL_SCANCODE_C 

Keyboard c and C.

FPL_SCANCODE_D 

Keyboard d and D.

FPL_SCANCODE_E 

Keyboard e and E.

FPL_SCANCODE_F 

Keyboard f and F.

FPL_SCANCODE_G 

Keyboard g and G.

FPL_SCANCODE_H 

Keyboard h and H.

FPL_SCANCODE_I 

Keyboard i and I.

FPL_SCANCODE_J 

Keyboard j and J.

FPL_SCANCODE_K 

Keyboard k and K.

FPL_SCANCODE_L 

Keyboard l and L.

FPL_SCANCODE_M 

Keyboard m and M.

FPL_SCANCODE_N 

Keyboard n and N.

FPL_SCANCODE_O 

Keyboard o and O.

FPL_SCANCODE_P 

Keyboard p and p.

FPL_SCANCODE_Q 

Keyboard q and Q.

FPL_SCANCODE_R 

Keyboard r and R.

FPL_SCANCODE_S 

Keyboard s and S.

FPL_SCANCODE_T 

Keyboard t and T.

FPL_SCANCODE_U 

Keyboard u and U.

FPL_SCANCODE_V 

Keyboard v and V.

FPL_SCANCODE_W 

Keyboard w and W.

FPL_SCANCODE_X 

Keyboard x and X.

FPL_SCANCODE_Y 

Keyboard y and Y.

FPL_SCANCODE_Z 

Keyboard z and Z.

FPL_SCANCODE_1 

Keyboard 1 and !.

FPL_SCANCODE_2 

Keyboard 2 and @.

FPL_SCANCODE_3 

Keyboard 3 and #.

FPL_SCANCODE_4 

Keyboard 4 and $.

FPL_SCANCODE_5 

Keyboard 5 and %.

FPL_SCANCODE_6 

Keyboard 6 and ^.

FPL_SCANCODE_7 

Keyboard 7 and &.

FPL_SCANCODE_8 

Keyboard 8 and *.

FPL_SCANCODE_9 

Keyboard 9 and (.

FPL_SCANCODE_0 

Keyboard 0 and ).

FPL_SCANCODE_RETURN 

Keyboard Return/ENTER.

FPL_SCANCODE_ESCAPE 

Keyboard ESCAPE.

FPL_SCANCODE_BACKSPACE 

Keyboard DELETE/Backspace.

FPL_SCANCODE_TAB 

Keyboard Tab.

FPL_SCANCODE_SPACE 

Keyboard Spacebar.

FPL_SCANCODE_MINUS 

Keyboard - and _.

FPL_SCANCODE_EQUALS 

Keyboard = and +.

FPL_SCANCODE_LEFTBRACKET 

Keyboard [ and {.

FPL_SCANCODE_RIGHTBRACKET 

Keyboard ] and }.

FPL_SCANCODE_BACKSLASH 

Located at the lower left of the return key on ISO keyboards and at the right end of the QWERTY row on ANSI keyboards. Produces REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US layout, REVERSE SOLIDUS and VERTICAL LINE in a UK Mac layout, NUMBER SIGN and TILDE in a UK Windows layout, DOLLAR SIGN and POUND SIGN in a Swiss German layout, NUMBER SIGN and APOSTROPHE in a German layout, GRAVE ACCENT and POUND SIGN in a French Mac layout, and ASTERISK and MICRO SIGN in a French Windows layout.

FPL_SCANCODE_NONUSHASH 

ISO USB keyboards actually use this code instead of 49 for the same key, but all OSes I've seen treat the two codes identically. So, as an implementor, unless your keyboard generates both of those codes and your OS treats them differently, you should generate FPL_SCANCODE_BACKSLASH instead of this code.

FPL_SCANCODE_SEMICOLON 

Keyboard ; and :.

FPL_SCANCODE_APOSTROPHE 

Keyboard ' and ".

FPL_SCANCODE_GRAVE 

Located in the top left corner (on both ANSI and ISO keyboards). Produces GRAVE ACCENT and TILDE in a US Windows layout and in US and UK Mac layouts on ANSI keyboards, GRAVE ACCENT and NOT SIGN in a UK Windows layout, SECTION SIGN and PLUS-MINUS SIGN in US and UK Mac layouts on ISO keyboards, SECTION SIGN and DEGREE SIGN in a Swiss German layout (Mac: only on ISO keyboards), CIRCUMFLEX ACCENT and DEGREE SIGN in a German layout (Mac: only on ISO keyboards), SUPERSCRIPT TWO and TILDE in a French Windows layout, COMMERCIAL AT and NUMBER SIGN in a French Mac layout on ISO keyboards, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French Mac layout on ANSI keyboards.

FPL_SCANCODE_COMMA 

Keyboard , and <.

FPL_SCANCODE_PERIOD 

Keyboard . and >.

FPL_SCANCODE_SLASH 

Keyboard \ and |.

FPL_SCANCODE_CAPSLOCK 

Keyboard Caps Lock.

FPL_SCANCODE_F1 

Keyboard F1.

FPL_SCANCODE_F2 

Keyboard F2.

FPL_SCANCODE_F3 

Keyboard F3.

FPL_SCANCODE_F4 

Keyboard F4.

FPL_SCANCODE_F5 

Keyboard F5.

FPL_SCANCODE_F6 

Keyboard F6.

FPL_SCANCODE_F7 

Keyboard F7.

FPL_SCANCODE_F8 

Keyboard F8.

FPL_SCANCODE_F9 

Keyboard F9.

FPL_SCANCODE_F10 

Keyboard F10.

FPL_SCANCODE_F11 

Keyboard F11.

FPL_SCANCODE_F12 

Keyboard F12.

FPL_SCANCODE_PRINTSCREEN 

Keyboard PrintScreen.

FPL_SCANCODE_SCROLLLOCK 

Keyboard Scroll Lock.

FPL_SCANCODE_PAUSE 

Keyboard Pause.

FPL_SCANCODE_INSERT 

insert on PC, help on some Mac keyboards (but does send code 73, not 117)

FPL_SCANCODE_HOME 

Keyboard Home.

FPL_SCANCODE_PAGEUP 

Keyboard PageUp.

FPL_SCANCODE_DELETE 

Keyboard Delete Forward.

FPL_SCANCODE_END 

Keyboard End.

FPL_SCANCODE_PAGEDOWN 

Keyboard PageDown.

FPL_SCANCODE_RIGHT 

Keyboard RightArrow.

FPL_SCANCODE_LEFT 

Keyboard LeftArrow.

FPL_SCANCODE_DOWN 

Keyboard DownArrow.

FPL_SCANCODE_UP 

Keyboard F1.

FPL_SCANCODE_NUMLOCKCLEAR 

num lock on PC, clear on Mac keyboards

FPL_SCANCODE_KP_DIVIDE 

Keyboard Keypad \.

FPL_SCANCODE_KP_MULTIPLY 

Keyboard Keypad *.

FPL_SCANCODE_KP_MINUS 

Keyboard Keypad -.

FPL_SCANCODE_KP_PLUS 

Keyboard Keypad +.

FPL_SCANCODE_KP_ENTER 

Keyboard Keypad ENTER.

FPL_SCANCODE_KP_1 

Keyboard Keypad 1 and Keypad End.

FPL_SCANCODE_KP_2 

Keyboard Keypad 2 and Keypad DownArrow.

FPL_SCANCODE_KP_3 

Keyboard Keypad 3 and Keypad PageDown.

FPL_SCANCODE_KP_4 

Keyboard Keypad 4 and Keypad LeftArrow.

FPL_SCANCODE_KP_5 

Keyboard Keypad 5.

FPL_SCANCODE_KP_6 

Keyboard Keypad 6 and Keypad RightArrow.

FPL_SCANCODE_KP_7 

Keyboard Keypad 7 and Keypad Home.

FPL_SCANCODE_KP_8 

Keyboard Keypad 8 and Keypad UpArrow.

FPL_SCANCODE_KP_9 

Keyboard Keypad 9 and Keypad PageUp.

FPL_SCANCODE_KP_0 

Keyboard Keypad 0 and Keypad Insert.

FPL_SCANCODE_KP_PERIOD 

Keyboard Keypad . and Keypad Delete.

FPL_SCANCODE_NONUSBACKSLASH 

This is the additional key that ISO keyboards have over ANSI ones, located between left shift and Y. Produces GRAVE ACCENT and TILDE in a US or UK Mac layout, REVERSE SOLIDUS (backslash) and VERTICAL LINE in a US or UK Windows layout, and LESS-THAN SIGN and GREATER-THAN SIGN in a Swiss German, German, or French layout.

FPL_SCANCODE_APPLICATION 

windows contextual menu, compose

FPL_SCANCODE_POWER 

The USB document says this is a status flag, not a physical key - but some Mac keyboards do have a power key.

FPL_SCANCODE_KP_EQUALS 

Keyboard Keypad =.

FPL_SCANCODE_F13 

Keyboard F13.

FPL_SCANCODE_F14 

Keyboard F14.

FPL_SCANCODE_F15 

Keyboard F15.

FPL_SCANCODE_F16 

Keyboard F16.

FPL_SCANCODE_F17 

Keyboard F17.

FPL_SCANCODE_F18 

Keyboard F18.

FPL_SCANCODE_F19 

Keyboard F19.

FPL_SCANCODE_F20 

Keyboard F20.

FPL_SCANCODE_F21 

Keyboard F21.

FPL_SCANCODE_F22 

Keyboard F22.

FPL_SCANCODE_F23 

Keyboard F23.

FPL_SCANCODE_F24 

Keyboard F24.

FPL_SCANCODE_EXECUTE 

Keyboard Execute.

FPL_SCANCODE_HELP 

Keyboard Help.

FPL_SCANCODE_MENU 

Keyboard Menu.

FPL_SCANCODE_SELECT 

Keyboard Select.

FPL_SCANCODE_STOP 

Keyboard Stop.

FPL_SCANCODE_AGAIN 

Keyboard Again.

FPL_SCANCODE_UNDO 

Keyboard Undo.

FPL_SCANCODE_CUT 

Keyboard Cut.

FPL_SCANCODE_COPY 

Keyboard Copy.

FPL_SCANCODE_PASTE 

Keyboard Paste.

FPL_SCANCODE_FIND 

Keyboard Find.

FPL_SCANCODE_MUTE 

Keyboard Mute.

FPL_SCANCODE_VOLUMEUP 

Keyboard Volume Up.

FPL_SCANCODE_VOLUMEDOWN 

Keyboard Volume Down.

FPL_SCANCODE_KP_COMMA 

Keyboard ,.

FPL_SCANCODE_KP_EQUALSAS400 

Keyboard Equal Sign.

FPL_SCANCODE_INTERNATIONAL1 

used on Asian keyboards, see footnotes in USB doc

FPL_SCANCODE_INTERNATIONAL3 

Yen

FPL_SCANCODE_LANG1 

Hangul/English toggle

FPL_SCANCODE_LANG2 

Hanja conversion

FPL_SCANCODE_LANG3 

Katakana

FPL_SCANCODE_LANG4 

Hiragana

FPL_SCANCODE_LANG5 

Zenkaku/Hankaku

FPL_SCANCODE_LANG6 

reserved

FPL_SCANCODE_LANG7 

reserved

FPL_SCANCODE_LANG8 

reserved

FPL_SCANCODE_LANG9 

reserved

FPL_SCANCODE_ALTERASE 

Erase-Eaze

FPL_SCANCODE_LALT 

alt, option

FPL_SCANCODE_LGUI 

windows, command (apple), meta

FPL_SCANCODE_RALT 

alt gr, option

FPL_SCANCODE_RGUI 

windows, command (apple), meta

FPL_SCANCODE_AUDIONEXT 

Keyboard Next audio track button.

FPL_SCANCODE_AUDIOPREV 

Keyboard Previous audio track button.

FPL_SCANCODE_AUDIOSTOP 

Keyboard Stop audio button.

FPL_SCANCODE_AUDIOPLAY 

Keyboard Play audio button.

FPL_SCANCODE_AUDIOMUTE 

Keyboard Mute button.

FPL_SCANCODE_CALCULATOR 

Keyboard Calculator button.

FPL_SCANCODE_BRIGHTNESSDOWN 

Keyboard Brightness Down.

FPL_SCANCODE_BRIGHTNESSUP 

Keyboard Brightness Up.

FPL_SCANCODE_DISPLAYSWITCH 

display mirroring/dual display switch, video mode switch

FPL_SCANCODE_EJECT 

Keyboard Eject.

FPL_SCANCODE_SLEEP 

Keyboard Sleep.

FPL_NUM_SCANCODES 

not a key, just marks the number of scancodes for array bounds