| // 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 zx; |
| |
| /// `InputReport` is a single report that is created by an input device. |
| table InputReport { |
| /// `event_time` is in nanoseconds when the event was recorded. |
| 1: zx.time event_time; |
| /// `mouse` is the report generated if the device contains a mouse. |
| 2: MouseInputReport mouse; |
| /// `sensor` is the report generated if the device contains a sensor. |
| 4: SensorInputReport sensor; |
| /// `touch` is the report generated if the device contains a touch device. |
| 5: TouchInputReport touch; |
| /// `keyboard` is the report generated if the device contains a keyboard. |
| 6: KeyboardInputReport keyboard; |
| /// `consumer_controls` is the report generated if the device contains a |
| /// ConsumerControl device. |
| 7: ConsumerControlInputReport consumer_control; |
| |
| /// Unique ID to connect trace async begin/end events. |
| 3: uint64 trace_id; |
| }; |
| |
| /// A single report containing output information for an input device. |
| /// Output information typically represents device output to the user |
| /// (E.g: LEDs, tactile feedback, etc). |
| table OutputReport { |
| 1: KeyboardOutputReport keyboard; |
| }; |