Skip to content

FiniteKey

A FiniteKey refers to specific keyboard input

typedef enum {
// Letters
FINITE_KEY_A,
FINITE_KEY_B,
FINITE_KEY_C,
FINITE_KEY_D,
FINITE_KEY_E,
FINITE_KEY_F,
FINITE_KEY_G,
FINITE_KEY_H,
FINITE_KEY_I,
FINITE_KEY_J,
FINITE_KEY_K,
FINITE_KEY_L,
FINITE_KEY_M,
FINITE_KEY_N,
FINITE_KEY_O,
FINITE_KEY_P,
FINITE_KEY_Q,
FINITE_KEY_R,
FINITE_KEY_S,
FINITE_KEY_T,
FINITE_KEY_U,
FINITE_KEY_V,
FINITE_KEY_W,
FINITE_KEY_X,
FINITE_KEY_Y,
FINITE_KEY_Z,
// Numbers
FINITE_KEY_0,
FINITE_KEY_1,
FINITE_KEY_2,
FINITE_KEY_3,
FINITE_KEY_4,
FINITE_KEY_5,
FINITE_KEY_6,
FINITE_KEY_7,
FINITE_KEY_8,
FINITE_KEY_9,
// Modifiers
FINITE_KEY_LEFT_SHIFT,
FINITE_KEY_RIGHT_SHIFT,
FINITE_KEY_LEFT_CTRL,
FINITE_KEY_RIGHT_CTRL,
FINITE_KEY_LEFT_ALT,
FINITE_KEY_RIGHT_ALT,
FINITE_KEY_LEFT_META,
FINITE_KEY_RIGHT_META,
// Function Keys
FINITE_KEY_F1,
FINITE_KEY_F2,
FINITE_KEY_F3,
FINITE_KEY_F4,
FINITE_KEY_F5,
FINITE_KEY_F6,
FINITE_KEY_F7,
FINITE_KEY_F8,
FINITE_KEY_F9,
FINITE_KEY_F10,
FINITE_KEY_F11,
FINITE_KEY_F12,
// Arrows
FINITE_KEY_UP,
FINITE_KEY_DOWN,
FINITE_KEY_LEFT,
FINITE_KEY_RIGHT,
// Other Keys
FINITE_KEY_SPACE,
FINITE_KEY_ENTER,
FINITE_KEY_ESCAPE,
FINITE_KEY_TAB,
FINITE_KEY_BACKSPACE,
FINITE_KEY_CAPS_LOCK,
// Symbols and Punctuation
FINITE_KEY_MINUS,
FINITE_KEY_EQUALS,
FINITE_KEY_LEFT_BRACKET,
FINITE_KEY_RIGHT_BRACKET,
FINITE_KEY_BACKSLASH,
FINITE_KEY_SEMICOLON,
FINITE_KEY_APOSTROPHE,
FINITE_KEY_GRAVE, // `
FINITE_KEY_COMMA,
FINITE_KEY_PERIOD,
FINITE_KEY_SLASH,
// Meta
FINITE_KEY_PRINT_SCREEN,
FINITE_KEY_SCROLL_LOCK,
FINITE_KEY_PAUSE,
FINITE_KEY_INSERT,
FINITE_KEY_DELETE,
FINITE_KEY_HOME,
FINITE_KEY_END,
FINITE_KEY_PAGE_UP,
FINITE_KEY_PAGE_DOWN,
// NumPad
FINITE_KEY_NUM_LOCK,
FINITE_KEY_KP_DIVIDE,
FINITE_KEY_KP_MULTIPLY,
FINITE_KEY_KP_MINUS,
FINITE_KEY_KP_PLUS,
FINITE_KEY_KP_ENTER,
FINITE_KEY_KP_0,
FINITE_KEY_KP_1,
FINITE_KEY_KP_2,
FINITE_KEY_KP_3,
FINITE_KEY_KP_4,
FINITE_KEY_KP_5,
FINITE_KEY_KP_6,
FINITE_KEY_KP_7,
FINITE_KEY_KP_8,
FINITE_KEY_KP_9,
FINITE_KEY_KP_PERIOD,
// Sentinel
FINITE_KEY_INVALID,
FINITE_KEY_COUNT
} FiniteKey;
NameValue
FINITE_KEY_AA
FINITE_KEY_BB
FINITE_KEY_CC
FINITE_KEY_DD
FINITE_KEY_EE
FINITE_KEY_FF
FINITE_KEY_GG
FINITE_KEY_HH
FINITE_KEY_II
FINITE_KEY_JJ
FINITE_KEY_KK
FINITE_KEY_LL
FINITE_KEY_MM
FINITE_KEY_NN
FINITE_KEY_OO
FINITE_KEY_PP
FINITE_KEY_QQ
FINITE_KEY_RR
FINITE_KEY_SS
FINITE_KEY_TT
FINITE_KEY_UU
FINITE_KEY_VV
FINITE_KEY_WW
FINITE_KEY_XX
FINITE_KEY_YY
FINITE_KEY_ZZ
FINITE_KEY_00
FINITE_KEY_11
FINITE_KEY_02
FINITE_KEY_33
FINITE_KEY_44
FINITE_KEY_55
FINITE_KEY_66
FINITE_KEY_77
FINITE_KEY_88
FINITE_KEY_99
FINITE_KEY_LEFT_SHIFTLeftShift
FINITE_KEY_RIGHT_SHIFTRightShift
FINITE_KEY_LEFT_CTRLLeftCtrl (Control)
FINITE_KEY_RIGHT_CTRLRightCtrl (Control)
FINITE_KEY_LEFT_ALTLeftAlt
FINITE_KEY_RIGHT_ALTRightAlt
FINITE_KEY_LEFT_METALeft “meta”. The windows key on most keyboards.
FINITE_KEY_RIGHT_METARight “meta”. The windows key on most keyboards.
FINITE_KEY_F1F1
FINITE_KEY_F2F2
FINITE_KEY_F3F3
FINITE_KEY_F4F4
FINITE_KEY_F5F5
FINITE_KEY_F6F6
FINITE_KEY_F7F7
FINITE_KEY_F8F8
FINITE_KEY_F9F9
FINITE_KEY_F10F10
FINITE_KEY_F11F11
FINITE_KEY_F12F12
FINITE_KEY_UPUp Arrow Key
FINITE_KEY_DOWNDown Arrow Key
FINITE_KEY_LEFTLeft Arrow Key
FINITE_KEY_RIGHTRight Arrow Key
FINITE_KEY_SPACESpacebar
FINITE_KEY_ENTEREnter
FINITE_KEY_ESCAPEEsc (Escape)
FINITE_KEY_TABTab
FINITE_KEY_BACKSPACEBackspace
FINITE_KEY_CAPS_LOCKCaps Lock
FINITE_KEY_MINUSMinus (-)
FINITE_KEY_EQUALSEqual Sign
FINITE_KEY_LEFT_BRACKETLeftBracket
FINITE_KEY_RIGHT_BRACKETRightBracket
FINITE_KEY_BACKSLASHBacklash ( \ )
FINITE_KEY_SEMICOLONSemicolon ( ; )
FINITE_KEY_APOSTROPHEApostrophe ‘
FINITE_KEY_GRAVEAlso called a backtick. ( ` )
FINITE_KEY_COMMAComma ( , )
FINITE_KEY_PERIODPeriod.
FINITE_KEY_SLASHSlash ( / )
FINITE_KEY_PRINT_SCREENThe PrintScreen key on some keyboards.
FINITE_KEY_SCROLL_LOCKThe Scrollock key on some keyboards.
FINITE_KEY_PAUSEThe Pause key on some keyboards
FINITE_KEY_INSERTThe Insert Key on most keyboards
FINITE_KEY_DELETEThe Delete Key on most keyboards
FINITE_KEY_HOMEThe Home Key on some keyboard. Not to be confused with FINITE_KEY_LEFT_META or FINITE_KEY_RIGHT_META
FINITE_KEY_ENDThe End Key on some keyboards
FINITE_KEY_PAGE_UPThe PageUp key on some keyboards
FINITE_KEY_PAGE_DOWNThe PageDown key on some keyboards
FINITE_KEY_NUM_LOCKThe Keypad/NumberPad lock key on some keyboards
FINITE_KEY_KP_DIVIDEThe / key on Keypads
FINITE_KEY_KP_MULTIPLYThe * key on keypads
FINITE_KEY_KP_MINUSThe - key on keypads
FINITE_KEY_KP_PLUSThe + key on keypads
FINITE_KEY_KP_ENTERThe Enter key on keypads
FINITE_KEY_KP_0Keypad 0
FINITE_KEY_KP_1Keypad 1
FINITE_KEY_KP_2Keypad 2
FINITE_KEY_KP_3Keypad 3
FINITE_KEY_KP_4Keypad 4
FINITE_KEY_KP_5Keypad 5
FINITE_KEY_KP_6Keypad 6
FINITE_KEY_KP_7Keypad 7
FINITE_KEY_KP_8Keypad 8
FINITE_KEY_KP_9Keypad 9
FINITE_KEY_KP_PERIODThe . Key on keypads

FINITE_KEY_LEFT_BRACKET/FINITE_KEY_RIGHT_BRACKET is () on some keyboards and {} on others. We are slightly unsure why this can map to both.