The Composite
interface is a FIDL protocol exposed by audio drivers. The Composite
interface
is generic and allows the configuration of various audio hardware types including those supported
by the StreamConfig
, Dai
and Codec
FIDL interfaces. The Composite
interface is more
generic and provides more flexible routing within audio subsystems.
In this protocol, ring buffer and DAI endpoints are configured based on the topology exposed via
the Audio Signal Processing APIs. In particular, endpoints represent the
hardware that is abstracted, specifically the number of ring buffers and DAI interconnects. Audio
hardware that can be represented by other audio driver types (StreamConfig
, Dai
, Codec
) can
instead be represented with a Composite
driver. For example, a Composite
driver can represent
a Codec
with a topology that has zero RingBuffer endpoints and one DAI interconnect endpoint.
When an audio driver provides the Composite
interface, its client is responsible for configuring
the hardware, including data topology. Driver responsibilities include using the
SignalProcessing
protocol to enumerate the topologies and capabilities supported by the hardware
it abstracts.
The Composite
FIDL protocol is defined at
composite.fidl.