An Axis
is defined as a range
and a unit
.
A Fuchsia ConsumerControl represents a device thats purpose is to change
values on the host. Typical controls are Volume, Power, Media Playback.
(Consider a TV remote to be a typical ConsumerControl).
Describes the format of the input report that will be sent from the
ConsumerControl device to the host.
A single report created by a ConsumerControl device.
ContactInputDescriptor
describes the fields associated with a touch on a touch device.
ContactInputReport
describes one touch on a touch device.
DeviceDescriptor
describes a physical input device. Some physical devices may
send multiple types of reports (E.g: a physical touchscreen can send touch and
stylus reports, so it will have both a TouchDescriptor and a StylusDescriptor).
DeviceInfo provides more information about the device and lets a client
distinguish between devices (e.g between two touchscreens that come from
different vendors). If the device is a HID device, then the id information
will come from the device itself. Other, non-HID devices may assign the
ids in the driver, so it will be the driver author’s responsibility to
assign sensible ids.
DeviceInformation provides more information about the device and lets a
client distinguish between devices (e.g between two touchscreens that come
from different vendors). If the device is a HID device, then the id
information will come from the device itself. Other, non-HID devices may
assign the ids in the driver, so it will be the driver author’s
responsibility to assign sensible ids.
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.
A Stream of incoming requests for fuchsia.input.report/InputDevice.
InputReport
is a single report that is created by an input device.
A Stream of incoming requests for fuchsia.input.report/InputReportsReader.
The capabilities of a keyboard device.
Describes the format of the input report that will be sent from the keyboard
to the device.
A single report created by a keyboard device.
Describes the format of the output report that can be sent to the keyboard..
A single report containing output information for a keyboard.
The capabilities of a mouse device.
Describes the format of the input report that will be sent from the mouse
to the device.
MouseReport
gives the relative movement of the mouse and currently
pressed buttons. Relative means the movement seen between the previous
report and this report. The client is responsible for tracking this and
converting it to absolute movement.
Describes the output reports that a physical input device will accept.
Output information typically represents device output to the user
(E.g: LEDs, tactile feedback, etc).
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).
Describe a Range
of values.
Selective Reporting Feature Report indicating which types of input are reported.
A SensorAxis
is a normal Axis
with an additional SensorType
to describe what the
axis is measuring.
The capabilities of a sensor device.
Describes the format of the sensor’s feature report. Feature reports can be
requested from the sensor, or sent to the sensor.
A SensorFeatureReport describes the features of a given sensor. If a
FeatureReport is sent to the Input Device it sets the configuration of the device.
If a FeatureReport is requested from the Input Device it shows the device’s
current configuration.
Describes the format of the input report that will be sent from the sensor
to the device.
SensorReport
gives the values measured by a sensor at a given point in time.
The capabilities of a touch device.
Describes the format of the touchpad configuration’s feature report. Feature reports
can be requested from the touchpad, or sent to the touchpad.
A TouchFeatureReport describes the features of a given touch device. If a
FeatureReport is sent to the Input Device it sets the configuration of the device.
If a FeatureReport is requested from the Input Device it shows the device’s
current configuration.
Describes the format of the input report that will be sent from the keyboard
to the device.
TouchInputReport
describes the current contacts recorded by the touchscreen.
Describes a given unit by giving the unit and the unit’s exponent.
E.g: Nanometers would have type METERS and exponent -9.
These ControlButtons represent on/off buttons whose purpose is to change
the host’s configuration.
The InputReport field to be populated by InputDevice.GetInputReport.
An InputDevice
driver represents a single physical input device.
The InputDevice maintains an internal FIFO of MAX_DEVICE_REPORT_COUNT
reports for each client that connects. Reports are removed from the FIFO
once they are read by the client. If the FIFO is full, it will drop the
oldest report to make room for an incoming report.
Each InputReportsReader
has its own FIFO of InputReports that it maintains.
When ReadInputReports is called it drains the InputReports FIFO.
If too many InputReports are created before the FIFO is drained, then
the oldest InputReport will be silently discarded.
An LedType represents an LED on a device that can be turned on or off.
When applicable, the definition of each LED is derived from one of the
following sources albeit with a Fuchsia-specific numeric value:
SensorReportingState
determines when a sensor will send reports.
Each sensor value has a corresponding SensorType, which explains what the
value is measuring in the world.
Input mode indicating which top-level collection should be used for input reporting.
These values must correspond to the input modes defined in 16.7 of the HID Usage Tables
for Universal Serial Bus (USB) Spec (https://usb.org/sites/default/files/hut1_22.pdf).
The device type from which the touch originated.
This provides an easy, standardized way to specify units. New units can
be added as needed. Each UnitType should be named after a specific unit that
should be fully distinguished by the name (E.g: Use METERS instead of
DISTANCE). More complicated units that need to be differentiated should
begin with SI_ (for Internation System of Units) or ENGLISH_ (for English
System of Units).
Below are ProductIds which represents which product this Input device represents. If the
Input device is a HID device, the ProductId maps directly to the HID
ProductId. If the Input device is not a HID device, then the ProductId
will be greater than 0xFFFF, which is the max HID ProductId.
The VendorId represents the vendor that created this Input device. If the
Input device is a HID device, the VendorId maps directly to the HID
VendorId. If the Input device is not a HID device, then the VendorId
will be greater than 0xFFFF, which is the max HID VendorId.