| --- |
| layout: doc |
| title: "Starboard Module Reference: input.h" |
| --- |
| |
| Defines input events and associated data types. |
| |
| ## Enums ## |
| |
| ### SbInputDeviceType ### |
| |
| Identifies possible input subsystem types. The types of events that each device |
| type produces correspond to `SbInputEventType` values. |
| |
| #### 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. [ [https://www.w3.org/TR/gamepad/](https://www.w3.org/TR/gamepad/) ] |
| |
| 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. |
| |
| ### SbInputEventType ### |
| |
| The action that an input event represents. |
| |
| #### Values #### |
| |
| * `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` |
| |
| [https://w3c.github.io/uievents/#event-type-input](https://w3c.github.io/uievents/#event-type-input) |
| |
| ## Structs ## |
| |
| ### SbInputData ### |
| |
| Event data for `kSbEventTypeInput` events. |
| |
| #### Members #### |
| |
| * `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`. |
| |
| ### SbInputVector ### |
| |
| A 2-dimensional vector used to represent points and motion vectors. |
| |
| #### Members #### |
| |
| * `float x` |
| * `float y` |
| |