layout: doc title: “Starboard Module Reference: input.h”

Defines input events and associated data types.



Identifies possible input subsystem types. The types of events that each device type produces correspond to SbInputEventType values.


  • kSbInputDeviceTypeGesture

    Input from a gesture-detection mechanism. Examples include Kinect, Wiimotes, etc...

    Produces Move, Press and Unpress events.

  • kSbInputDeviceTypeGamepad

    Input from a gamepad, following the layout provided in the W3C Web Gamepad API. [ ]

    Produces Move, Press and Unpress events.

  • kSbInputDeviceTypeKeyboard

    Keyboard input from a traditional keyboard or game controller chatpad.

    Produces Press and Unpress events.

  • kSbInputDeviceTypeMicrophone

    Input from a microphone that would provide audio data to the caller, who may then find some way to detect speech or other sounds within it. It may have processed or filtered the audio in some way before it arrives.

    Produces Audio events.

  • kSbInputDeviceTypeMouse

    Input from a traditional mouse.

    Produces Move, Press, and Unpress events.

  • kSbInputDeviceTypeRemote

    Input from a TV remote-control-style device.

    Produces Press and Unpress events.

  • kSbInputDeviceTypeSpeechCommand

    Input from a speech command analyzer, which is some hardware or software that, given a set of known phrases, activates when one of the registered phrases is heard.

    Produces Command events.

  • kSbInputDeviceTypeTouchScreen

    Input from a single- or multi-touchscreen.

    Produces Move, Press, and Unpress events.

  • kSbInputDeviceTypeTouchPad

    Input from a touchpad that is not masquerading as a mouse.

    Produces Move, Press, and Unpress events.

  • kSbInputDeviceTypeOnScreenKeyboard

    Keyboard input from an on screen keyboard.

    Produces Input events.


The action that an input event represents.


  • kSbInputEventTypeAudio

    Receipt of Audio. Some audio data was received by the input microphone.

  • kSbInputEventTypeCommand

    Receipt of a command. A command was received from some semantic source, like a speech recognizer.

  • kSbInputEventTypeGrab

    Grab activation. This event type is deprecated.

  • kSbInputEventTypeMove

    Device Movement. In the case of Mouse, and perhaps Gesture, the movement tracks an absolute cursor position. In the case of TouchPad, only relative movements are provided.

  • kSbInputEventTypePress

    Key or button press activation. This could be a key on a keyboard, a button on a mouse or game controller, a push from a touch screen, or a gesture. An Unpress event is subsequently delivered when the Press event terminates, such as when the key/button/finger is raised. Injecting repeat presses is up to the client.

  • kSbInputEventTypeUngrab

    Grab deactivation. This event type is deprecated.

  • kSbInputEventTypeUnpress

    Key or button deactivation. The counterpart to the Press event, this event is sent when the key or button being pressed is released.

  • kSbInputEventTypeInput



Event data for kSbEventTypeInput events.


  • SbWindow window

    The window in which the input was generated.

  • SbInputEventType type

    The type of input event that this represents.

  • SbInputDeviceType device_type

    The type of device that generated this input event.

  • int device_id

    An identifier that is unique among all connected devices.

  • SbKey key

    An identifier that indicates which keyboard key or mouse button was involved in this event, if any. All known keys for all devices are mapped to a single ID space, defined by the SbKey enum in key.h.

  • wchar_t character

    The character that corresponds to the key. For an external keyboard, this character also depends on the keyboard language. The value is 0 if there is no corresponding character.

  • SbKeyLocation key_location

    The location of the specified key, in cases where there are multiple instances of the button on the keyboard. For example, some keyboards have more than one “shift” key.

  • unsigned int key_modifiers

    Key modifiers (e.g. Ctrl, Shift) held down during this input event.

  • SbInputVector position

    The (x, y) coordinates of the persistent cursor controlled by this device. The value is 0 if this data is not applicable. For events with type kSbInputEventTypeMove and device_type kSbInputDeviceTypeGamepad, this field is interpreted as a stick position with the range [-1, 1], with positive values for the down and right direction.

  • SbInputVector delta

    The relative motion vector of this input. The value is 0 if this data is not applicable.

  • const char * input_text

    The text to input for events of type Input.


A 2-dimensional vector used to represent points and motion vectors.


  • float x
  • float y