| // Copyright 2019 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| library fuchsia.input.report; |
| |
| using fuchsia.input; |
| |
| /// Hardcoded max sizes for keyboard vectors. These sizes should be increased |
| /// if we ever see keyboards with more objects than can be represented. |
| const KEYBOARD_MAX_NUM_KEYS uint32 = 256; |
| const KEYBOARD_MAX_NUM_LEDS uint32 = 256; |
| const KEYBOARD_MAX_PRESSED_KEYS uint32 = 256; |
| |
| /// Describes the format of the input report that will be sent from the keyboard |
| /// to the device. |
| type KeyboardInputDescriptor = table { |
| // Was used for input2 keys. |
| 1: reserved; |
| |
| /// The list of keys that this keyboard contains. |
| 2: keys3 vector<fuchsia.input.Key>:KEYBOARD_MAX_NUM_KEYS; |
| }; |
| |
| /// Describes the format of the output report that can be sent to the keyboard.. |
| type KeyboardOutputDescriptor = table { |
| /// The list of keyboard LEDs that can be toggled. |
| 1: leds vector<LedType>:KEYBOARD_MAX_NUM_LEDS; |
| }; |
| |
| /// The capabilities of a keyboard device. |
| type KeyboardDescriptor = table { |
| 1: input KeyboardInputDescriptor; |
| 2: output KeyboardOutputDescriptor; |
| }; |
| |
| /// A single report created by a keyboard device. |
| type KeyboardInputReport = table { |
| // Was used for input2 pressed_keys. |
| 1: reserved; |
| |
| /// The list of keys that are currently pressed down. |
| 2: pressed_keys3 vector<fuchsia.input.Key>:KEYBOARD_MAX_PRESSED_KEYS; |
| }; |
| |
| /// A single report containing output information for a keyboard. |
| type KeyboardOutputReport = table { |
| /// Each LED in this list will be turned on. Any LED not in this list will be |
| /// turned off. |
| 1: enabled_leds vector<LedType>:KEYBOARD_MAX_NUM_LEDS; |
| }; |