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 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:

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.