This program cannot be run directly. It exists in the system as a library used by the Input Stack.
This program has the following test command:
fx test input-report-reader-test
InputReader is the top-level class that is created and holds all other classes.
InputReader is responsible for creating the device watchers for the system. At the moment we only have one type of
FdioDeviceWatcher watches for new InputReport devices. These devices appear as files in the
FdioDeviceWatcher discovers a new device, it creates a channel to the device. This channel is then passed through a callback up to
InputReader creates an
InputInterpreter with the new channel.
InputInterpreter class is the class that drives the sending and receiving of reports from the Driver.
InputInterpreter gets a Report Descriptor and parses the data into the form necessary for RootPresenter. If the Report Descriptor contains a Touch device, ConsumerControl device, or Mouse device, then the correct
fuchsa.ui.input:InputDevicePtr will be allocated to send reports and descriptors to RootPresenter.
InputReaderhas exactly one
InputReadermay have one or more
InputInterpreterhas exactly one
zx::channelrepresenting a driver.