Starboard Module Reference: key.h
Stay organized with collections
Save and categorize content based on your preferences.
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
kSbKeyRecord
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
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-09-03 UTC.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-03 UTC."],[[["\u003cp\u003eDefines \u003ccode\u003eSbKey\u003c/code\u003e, a comprehensive set of key codes representing input keys across various devices, based on Windows virtual key codes.\u003c/p\u003e\n"],["\u003cp\u003eIncludes standard keyboard keys, gamepad buttons, mouse buttons, media controls, and browser navigation keys.\u003c/p\u003e\n"],["\u003cp\u003e\u003ccode\u003eSbKeyModifiers\u003c/code\u003e is a bit-mask used to represent key modifier states like Alt, Ctrl, Shift, and mouse button presses.\u003c/p\u003e\n"],["\u003cp\u003eFollows semi-standard Windows virtual key codes for wider compatibility and understanding.\u003c/p\u003e\n"],["\u003cp\u003eOffers specialized keys for functionalities like brightness control, voice input, and application launching.\u003c/p\u003e\n"]]],["The content defines `SbKey`, a canonical set of key codes for various input devices, using semi-standard Windows virtual key codes. It lists specific key values, such as `kSbKeyUnknown`, `kSbKeyCancel`, letters, numbers, function keys, media controls, and gamepad inputs. Also defined is `SbKeyModifiers`, which represents a bit-mask of key modifiers including `Alt`, `Ctrl`, `Shift`, and various pointer buttons.\n"],null,["Defines the canonical set of Starboard key codes.\n\nEnums\n\nSbKey\n\nA standard set of key codes, ordered by value, that represent each possible\ninput key across all kinds of devices. Starboard uses the semi-standard Windows\nvirtual key codes documented at: \u003chttps://msdn.microsoft.com/en-us/library/windows/desktop/dd375731%28v=vs.85%29.aspx\u003e\n\nValues\n\n- `kSbKeyUnknown`\n- `kSbKeyCancel`\n- `kSbKeyBackspace`\n- `kSbKeyBack`\n- `kSbKeyTab`\n\n semantic \"back\".\n- `kSbKeyBacktab`\n\n- `kSbKeyClear`\n\n- `kSbKeyReturn`\n\n- `kSbKeyShift`\n\n- `kSbKeyControl`\n\n- `kSbKeyMenu`\n\n- `kSbKeyPause`\n\n- `kSbKeyCapital`\n\n- `kSbKeyKana`\n\n- `kSbKeyHangul`\n\n- `kSbKeyJunja`\n\n- `kSbKeyFinal`\n\n- `kSbKeyHanja`\n\n- `kSbKeyKanji`\n\n- `kSbKeyEscape`\n\n- `kSbKeyConvert`\n\n- `kSbKeyNonconvert`\n\n- `kSbKeyAccept`\n\n- `kSbKeyModechange`\n\n- `kSbKeySpace`\n\n- `kSbKeyPrior`\n\n- `kSbKeyNext`\n\n- `kSbKeyEnd`\n\n- `kSbKeyHome`\n\n- `kSbKeyLeft`\n\n- `kSbKeyUp`\n\n- `kSbKeyRight`\n\n- `kSbKeyDown`\n\n- `kSbKeySelect`\n\n- `kSbKeyPrint`\n\n- `kSbKeyExecute`\n\n- `kSbKeySnapshot`\n\n- `kSbKeyInsert`\n\n- `kSbKeyDelete`\n\n- `kSbKeyHelp`\n\n- `kSbKey0`\n\n- `kSbKey1`\n\n- `kSbKey2`\n\n- `kSbKey3`\n\n- `kSbKey4`\n\n- `kSbKey5`\n\n- `kSbKey6`\n\n- `kSbKey7`\n\n- `kSbKey8`\n\n- `kSbKey9`\n\n- `kSbKeyA`\n\n- `kSbKeyB`\n\n- `kSbKeyC`\n\n- `kSbKeyD`\n\n- `kSbKeyE`\n\n- `kSbKeyF`\n\n- `kSbKeyG`\n\n- `kSbKeyH`\n\n- `kSbKeyI`\n\n- `kSbKeyJ`\n\n- `kSbKeyK`\n\n- `kSbKeyL`\n\n- `kSbKeyM`\n\n- `kSbKeyN`\n\n- `kSbKeyO`\n\n- `kSbKeyP`\n\n- `kSbKeyQ`\n\n- `kSbKeyR`\n\n- `kSbKeyS`\n\n- `kSbKeyT`\n\n- `kSbKeyU`\n\n- `kSbKeyV`\n\n- `kSbKeyW`\n\n- `kSbKeyX`\n\n- `kSbKeyY`\n\n- `kSbKeyZ`\n\n- `kSbKeyLwin`\n\n- `kSbKeyCommand`\n\n- `kSbKeyRwin`\n\n- `kSbKeyApps`\n\n- `kSbKeySleep`\n\n- `kSbKeyNumpad0`\n\n- `kSbKeyNumpad1`\n\n- `kSbKeyNumpad2`\n\n- `kSbKeyNumpad3`\n\n- `kSbKeyNumpad4`\n\n- `kSbKeyNumpad5`\n\n- `kSbKeyNumpad6`\n\n- `kSbKeyNumpad7`\n\n- `kSbKeyNumpad8`\n\n- `kSbKeyNumpad9`\n\n- `kSbKeyMultiply`\n\n- `kSbKeyAdd`\n\n- `kSbKeySeparator`\n\n- `kSbKeySubtract`\n\n- `kSbKeyDecimal`\n\n- `kSbKeyDivide`\n\n- `kSbKeyF1`\n\n- `kSbKeyF2`\n\n- `kSbKeyF3`\n\n- `kSbKeyF4`\n\n- `kSbKeyF5`\n\n- `kSbKeyF6`\n\n- `kSbKeyF7`\n\n- `kSbKeyF8`\n\n- `kSbKeyF9`\n\n- `kSbKeyF10`\n\n- `kSbKeyF11`\n\n- `kSbKeyF12`\n\n- `kSbKeyF13`\n\n- `kSbKeyF14`\n\n- `kSbKeyF15`\n\n- `kSbKeyF16`\n\n- `kSbKeyF17`\n\n- `kSbKeyF18`\n\n- `kSbKeyF19`\n\n- `kSbKeyF20`\n\n- `kSbKeyF21`\n\n- `kSbKeyF22`\n\n- `kSbKeyF23`\n\n- `kSbKeyF24`\n\n- `kSbKeyNumlock`\n\n- `kSbKeyScroll`\n\n- `kSbKeyWlan`\n\n- `kSbKeyPower`\n\n- `kSbKeyLshift`\n\n- `kSbKeyRshift`\n\n- `kSbKeyLcontrol`\n\n- `kSbKeyRcontrol`\n\n- `kSbKeyLmenu`\n\n- `kSbKeyRmenu`\n\n- `kSbKeyBrowserBack`\n\n- `kSbKeyBrowserForward`\n\n- `kSbKeyBrowserRefresh`\n\n- `kSbKeyBrowserStop`\n\n- `kSbKeyBrowserSearch`\n\n- `kSbKeyBrowserFavorites`\n\n- `kSbKeyBrowserHome`\n\n- `kSbKeyVolumeMute`\n\n- `kSbKeyVolumeDown`\n\n- `kSbKeyVolumeUp`\n\n- `kSbKeyMediaNextTrack`\n\n- `kSbKeyMediaPrevTrack`\n\n- `kSbKeyMediaStop`\n\n- `kSbKeyMediaPlayPause`\n\n- `kSbKeyMediaLaunchMail`\n\n- `kSbKeyMediaLaunchMediaSelect`\n\n- `kSbKeyMediaLaunchApp1`\n\n- `kSbKeyMediaLaunchApp2`\n\n- `kSbKeyOem1`\n\n- `kSbKeyOemPlus`\n\n- `kSbKeyOemComma`\n\n- `kSbKeyOemMinus`\n\n- `kSbKeyOemPeriod`\n\n- `kSbKeyOem2`\n\n- `kSbKeyOem3`\n\n- `kSbKeyBrightnessDown`\n\n- `kSbKeyBrightnessUp`\n\n- `kSbKeyKbdBrightnessDown`\n\n- `kSbKeyOem4`\n\n- `kSbKeyOem5`\n\n- `kSbKeyOem6`\n\n- `kSbKeyOem7`\n\n- `kSbKeyOem8`\n\n- `kSbKeyOem102`\n\n- `kSbKeyKbdBrightnessUp`\n\n- `kSbKeyDbeSbcschar`\n\n- `kSbKeyDbeDbcschar`\n\n- `kSbKeyPlay`\n\n- `kSbKeyMediaRewind`\n\n Other supported CEA 2014 keys.\n- `kSbKeyMediaFastForward`\n\n- `kSbKeyRed`\n\n Key codes from the DTV Application Software Environment, \u003chttp://www.atsc.org/wp-content/uploads/2015/03/a_100_4.pdf\u003e\n- `kSbKeyGreen`\n\n- `kSbKeyYellow`\n\n- `kSbKeyBlue`\n\n- `kSbKeyRecord`\n\n- `kSbKeyChannelUp`\n\n- `kSbKeyChannelDown`\n\n- `kSbKeySubtitle`\n\n- `kSbKeyClosedCaption`\n\n- `kSbKeyInfo`\n\n- `kSbKeyGuide`\n\n- `kSbKeyLast`\n\n Key codes from OCAP, \u003chttps://apps.cablelabs.com/specification/opencable-application-platform-ocap/\u003e\n- `kSbKeyPreviousChannel`\n\n- `kSbKeyInstantReplay`\n\n Also from OCAP\n- `kSbKeyLaunchThisApplication`\n\n A button that will directly launch the current application.\n- `kSbKeyMediaAudioTrack`\n\n A button that will switch between different available audio tracks.\n- `kSbKeyMicrophone`\n\n A button that will trigger voice input.\n- `kSbKeyMouse1`\n\n Mouse buttons, starting with the left mouse button.\n- `kSbKeyMouse2`\n\n- `kSbKeyMouse3`\n\n- `kSbKeyMouse4`\n\n- `kSbKeyMouse5`\n\n- `kSbKeyGamepad1`\n\n Xbox A, PS O or X (depending on region), Switch A\n- `kSbKeyGamepad2`\n\n Xbox B, PS X or O (depending on region), Switch B\n- `kSbKeyGamepad3`\n\n Xbox X, PS square, Switch X\n- `kSbKeyGamepad4`\n\n Xbox Y, PS triangle, Switch Y\n- `kSbKeyGamepadLeftBumper`\n\n Pretty much every gamepad has bumpers at the top front of the controller,\n and triggers at the bottom front of the controller.\n- `kSbKeyGamepadRightBumper`\n\n- `kSbKeyGamepadLeftTrigger`\n\n- `kSbKeyGamepadRightTrigger`\n\n- `kSbKeyGamepad5`\n\n Xbox 360 Back, XB1 minimize, PS and WiiU Select\n- `kSbKeyGamepad6`\n\n Xbox 360 Play, XB1 Menu, PS and WiiU Start\n- `kSbKeyGamepadLeftStick`\n\n This refers to pressing the left stick like a button.\n- `kSbKeyGamepadRightStick`\n\n This refers to pressing the right stick like a button.\n- `kSbKeyGamepadDPadUp`\n\n- `kSbKeyGamepadDPadDown`\n\n- `kSbKeyGamepadDPadLeft`\n\n- `kSbKeyGamepadDPadRight`\n\n- `kSbKeyGamepadSystem`\n\n The system key in the middle of the gamepad, if it exists.\n- `kSbKeyGamepadLeftStickUp`\n\n Codes for thumbstick to virtual dpad conversions.\n- `kSbKeyGamepadLeftStickDown`\n\n- `kSbKeyGamepadLeftStickLeft`\n\n- `kSbKeyGamepadLeftStickRight`\n\n- `kSbKeyGamepadRightStickUp`\n\n- `kSbKeyGamepadRightStickDown`\n\n- `kSbKeyGamepadRightStickLeft`\n\n- `kSbKeyGamepadRightStickRight`\n\nSbKeyModifiers\n\nBit-mask of key modifiers.\n\nValues\n\n- `kSbKeyModifiersNone`\n- `kSbKeyModifiersAlt`\n- `kSbKeyModifiersCtrl`\n- `kSbKeyModifiersMeta`\n- `kSbKeyModifiersShift`\n- `kSbKeyModifiersPointerButtonLeft`\n- `kSbKeyModifiersPointerButtonRight`\n- `kSbKeyModifiersPointerButtonMiddle`\n- `kSbKeyModifiersPointerButtonBack`\n- `kSbKeyModifiersPointerButtonForward`"]]