Defines the canonical set of Starboard key codes.

## Enums

### SbKey

A standard set of key codes, ordered by value, that represent each possible
input key across all kinds of devices. Starboard uses the semi-standard Windows
virtual key codes documented at: <https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx>

#### Values

- `kSbKeyUnknown`
- `kSbKeyCancel`
- `kSbKeyBackspace`
- `kSbKeyBack`
- `kSbKeyTab`

  semantic "back".
- `kSbKeyBacktab`

- `kSbKeyClear`

- `kSbKeyReturn`

- `kSbKeyShift`

- `kSbKeyControl`

- `kSbKeyMenu`

- `kSbKeyPause`

- `kSbKeyCapital`

- `kSbKeyKana`

- `kSbKeyHangul`

- `kSbKeyJunja`

- `kSbKeyFinal`

- `kSbKeyHanja`

- `kSbKeyKanji`

- `kSbKeyEscape`

- `kSbKeyConvert`

- `kSbKeyNonconvert`

- `kSbKeyAccept`

- `kSbKeyModechange`

- `kSbKeySpace`

- `kSbKeyPrior`

- `kSbKeyNext`

- `kSbKeyEnd`

- `kSbKeyHome`

- `kSbKeyLeft`

- `kSbKeyUp`

- `kSbKeyRight`

- `kSbKeyDown`

- `kSbKeySelect`

- `kSbKeyPrint`

- `kSbKeyExecute`

- `kSbKeySnapshot`

- `kSbKeyInsert`

- `kSbKeyDelete`

- `kSbKeyHelp`

- `kSbKey0`

- `kSbKey1`

- `kSbKey2`

- `kSbKey3`

- `kSbKey4`

- `kSbKey5`

- `kSbKey6`

- `kSbKey7`

- `kSbKey8`

- `kSbKey9`

- `kSbKeyA`

- `kSbKeyB`

- `kSbKeyC`

- `kSbKeyD`

- `kSbKeyE`

- `kSbKeyF`

- `kSbKeyG`

- `kSbKeyH`

- `kSbKeyI`

- `kSbKeyJ`

- `kSbKeyK`

- `kSbKeyL`

- `kSbKeyM`

- `kSbKeyN`

- `kSbKeyO`

- `kSbKeyP`

- `kSbKeyQ`

- `kSbKeyR`

- `kSbKeyS`

- `kSbKeyT`

- `kSbKeyU`

- `kSbKeyV`

- `kSbKeyW`

- `kSbKeyX`

- `kSbKeyY`

- `kSbKeyZ`

- `kSbKeyLwin`

- `kSbKeyCommand`

- `kSbKeyRwin`

- `kSbKeyApps`

- `kSbKeySleep`

- `kSbKeyNumpad0`

- `kSbKeyNumpad1`

- `kSbKeyNumpad2`

- `kSbKeyNumpad3`

- `kSbKeyNumpad4`

- `kSbKeyNumpad5`

- `kSbKeyNumpad6`

- `kSbKeyNumpad7`

- `kSbKeyNumpad8`

- `kSbKeyNumpad9`

- `kSbKeyMultiply`

- `kSbKeyAdd`

- `kSbKeySeparator`

- `kSbKeySubtract`

- `kSbKeyDecimal`

- `kSbKeyDivide`

- `kSbKeyF1`

- `kSbKeyF2`

- `kSbKeyF3`

- `kSbKeyF4`

- `kSbKeyF5`

- `kSbKeyF6`

- `kSbKeyF7`

- `kSbKeyF8`

- `kSbKeyF9`

- `kSbKeyF10`

- `kSbKeyF11`

- `kSbKeyF12`

- `kSbKeyF13`

- `kSbKeyF14`

- `kSbKeyF15`

- `kSbKeyF16`

- `kSbKeyF17`

- `kSbKeyF18`

- `kSbKeyF19`

- `kSbKeyF20`

- `kSbKeyF21`

- `kSbKeyF22`

- `kSbKeyF23`

- `kSbKeyF24`

- `kSbKeyNumlock`

- `kSbKeyScroll`

- `kSbKeyWlan`

- `kSbKeyPower`

- `kSbKeyLshift`

- `kSbKeyRshift`

- `kSbKeyLcontrol`

- `kSbKeyRcontrol`

- `kSbKeyLmenu`

- `kSbKeyRmenu`

- `kSbKeyBrowserBack`

- `kSbKeyBrowserForward`

- `kSbKeyBrowserRefresh`

- `kSbKeyBrowserStop`

- `kSbKeyBrowserSearch`

- `kSbKeyBrowserFavorites`

- `kSbKeyBrowserHome`

- `kSbKeyVolumeMute`

- `kSbKeyVolumeDown`

- `kSbKeyVolumeUp`

- `kSbKeyMediaNextTrack`

- `kSbKeyMediaPrevTrack`

- `kSbKeyMediaStop`

- `kSbKeyMediaPlayPause`

- `kSbKeyMediaLaunchMail`

- `kSbKeyMediaLaunchMediaSelect`

- `kSbKeyMediaLaunchApp1`

- `kSbKeyMediaLaunchApp2`

- `kSbKeyOem1`

- `kSbKeyOemPlus`

- `kSbKeyOemComma`

- `kSbKeyOemMinus`

- `kSbKeyOemPeriod`

- `kSbKeyOem2`

- `kSbKeyOem3`

- `kSbKeyBrightnessDown`

- `kSbKeyBrightnessUp`

- `kSbKeyKbdBrightnessDown`

- `kSbKeyOem4`

- `kSbKeyOem5`

- `kSbKeyOem6`

- `kSbKeyOem7`

- `kSbKeyOem8`

- `kSbKeyOem102`

- `kSbKeyKbdBrightnessUp`

- `kSbKeyDbeSbcschar`

- `kSbKeyDbeDbcschar`

- `kSbKeyPlay`

- `kSbKeyMediaRewind`

  Other supported CEA 2014 keys.
- `kSbKeyMediaFastForward`

- `kSbKeyRed`

  Key codes from the DTV Application Software Environment, <http://www.atsc.org/wp-content/uploads/2015/03/a_100_4.pdf>
- `kSbKeyGreen`

- `kSbKeyYellow`

- `kSbKeyBlue`

- `kSbKeyChannelUp`

- `kSbKeyChannelDown`

- `kSbKeySubtitle`

- `kSbKeyClosedCaption`

- `kSbKeyInfo`

- `kSbKeyGuide`

- `kSbKeyLast`

  Key codes from OCAP, <https://apps.cablelabs.com/specification/opencable-application-platform-ocap/>
- `kSbKeyPreviousChannel`

- `kSbKeyInstantReplay`

  Also from OCAP
- `kSbKeyLaunchThisApplication`

  A button that will directly launch the current application.
- `kSbKeyMediaAudioTrack`

  A button that will switch between different available audio tracks.
- `kSbKeyMicrophone`

  A button that will trigger voice input.
- `kSbKeyMouse1`

  Mouse buttons, starting with the left mouse button.
- `kSbKeyMouse2`

- `kSbKeyMouse3`

- `kSbKeyMouse4`

- `kSbKeyMouse5`

- `kSbKeyGamepad1`

  Xbox A, PS O or X (depending on region), Switch A
- `kSbKeyGamepad2`

  Xbox B, PS X or O (depending on region), Switch B
- `kSbKeyGamepad3`

  Xbox X, PS square, Switch X
- `kSbKeyGamepad4`

  Xbox Y, PS triangle, Switch Y
- `kSbKeyGamepadLeftBumper`

  Pretty much every gamepad has bumpers at the top front of the controller,
  and triggers at the bottom front of the controller.
- `kSbKeyGamepadRightBumper`

- `kSbKeyGamepadLeftTrigger`

- `kSbKeyGamepadRightTrigger`

- `kSbKeyGamepad5`

  Xbox 360 Back, XB1 minimize, PS and WiiU Select
- `kSbKeyGamepad6`

  Xbox 360 Play, XB1 Menu, PS and WiiU Start
- `kSbKeyGamepadLeftStick`

  This refers to pressing the left stick like a button.
- `kSbKeyGamepadRightStick`

  This refers to pressing the right stick like a button.
- `kSbKeyGamepadDPadUp`

- `kSbKeyGamepadDPadDown`

- `kSbKeyGamepadDPadLeft`

- `kSbKeyGamepadDPadRight`

- `kSbKeyGamepadSystem`

  The system key in the middle of the gamepad, if it exists.
- `kSbKeyGamepadLeftStickUp`

  Codes for thumbstick to virtual dpad conversions.
- `kSbKeyGamepadLeftStickDown`

- `kSbKeyGamepadLeftStickLeft`

- `kSbKeyGamepadLeftStickRight`

- `kSbKeyGamepadRightStickUp`

- `kSbKeyGamepadRightStickDown`

- `kSbKeyGamepadRightStickLeft`

- `kSbKeyGamepadRightStickRight`

### SbKeyModifiers

Bit-mask of key modifiers.

#### Values

- `kSbKeyModifiersNone`
- `kSbKeyModifiersAlt`
- `kSbKeyModifiersCtrl`
- `kSbKeyModifiersMeta`
- `kSbKeyModifiersShift`
- `kSbKeyModifiersPointerButtonLeft`
- `kSbKeyModifiersPointerButtonRight`
- `kSbKeyModifiersPointerButtonMiddle`
- `kSbKeyModifiersPointerButtonBack`
- `kSbKeyModifiersPointerButtonForward`