blob: 84d3094aba3b323beaeb6662c3be25c042a07411 [file] [log] [blame] [view]
# Input Pipeline
This directory contains source for the input-pipeline component for astro and
sherlock (`//src/ui/bin/input-pipeline:component`).
This component is being repurposed for use on headless devices and replaced by
the [Scene Manager component](../scene_manager/README.md) for devices that can
be used with a screen.
Please reach out to the OWNERS to coordinate any intended work related to this
component and its current or future responsibilities.
# Usage
This component registers the following Input Handlers:
- `TouchInjectorHandler` for touchscreen input
- `MediaButtonsHandler` for button input (e.g. volume up and volume down)
- `FactoryResetHandler` for factory resetting the device
# Structured configuration
This component can be configured during product assembly via the following
configuration schema to define a specific idleness threshold for
[activity recency detection](../../lib/input_pipeline/docs/activity.md):
```
product_assembly_configuration("my_product") {
platform = {
input = {
idle_threshold_minutes = 15
}
}
}
```
The `component-for-test` target also sets a default value for testing:
```
fuchsia_structured_config_values("test_config") {
cm_label = ":manifest"
values = {
idle_threshold_minutes = 2
}
}
```
# Domain package configuration
This component is also configured to support light sensor devices. Products may
want to provide calibration information to make use of light sensing features.
By default we provide empty calibration information, which disables light sensor
processing.
## CML file and integration tests
The production package `//src/ui/bin/input-pipeline:input-pipeline` includes
`meta/input-pipeline.cml`, which exists to serves routes related to input
through human interface devices.
Generally, test packages should include their own copy of a component to ensure
hermeticity with respect to package loading semantics, and can do so by
including `//src/ui/bin/input-pipeline:component-for-test`.