blob: f8e3547f8134dd96aa9b43b35a0904e00a14c63a [file] [log] [blame]
// 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;
};
/// A single report containing the feature information for an input device.
/// Feature reports obtained from the device show the current state of the
/// device. Sending a feature report to the device sets the device in that
/// state.
table FeatureReport {
1: SensorFeatureReport sensor;
};