pub struct Info {Show 13 fields
pub token_id: Option<u64>,
pub device_type: Option<DeviceType>,
pub device_name: Option<String>,
pub manufacturer: Option<String>,
pub product: Option<String>,
pub unique_instance_id: Option<[u8; 16]>,
pub is_input: Option<bool>,
pub ring_buffer_format_sets: Option<Vec<ElementRingBufferFormatSet>>,
pub dai_format_sets: Option<Vec<ElementDaiFormatSet>>,
pub plug_detect_caps: Option<PlugDetectCapabilities>,
pub clock_domain: Option<u32>,
pub signal_processing_elements: Option<Vec<Element>>,
pub signal_processing_topologies: Option<Vec<Topology>>,
/* private fields */
}
Expand description
When a device is detected (or added via Provider/AddDevice
), it is
queried for its properties and capabilities. Once this enumeration process
completes, it is announced to clients that are watching for device arrivals
via Registry/WatchDevicesAdded
.
An Info
table is returned for each audio device that has been added.
Fields§
§token_id: Option<u64>
A device identifier that is guaranteed unique for this boot session, but may change across reboots.
Required.
device_type: Option<DeviceType>
The protocol used by the driver.
Required.
device_name: Option<String>
The device’s high-level name, as received from devfs or the Provider/AddDevice
caller.
This string must be non-empty.
Required.
manufacturer: Option<String>
The name of the device’s manufacturer. If present, this string must be non-empty.
Optional.
product: Option<String>
The device’s high-level product name. If present, this string must be non-empty.
Optional.
unique_instance_id: Option<[u8; 16]>
A 16-character ID provided by the driver that (if present) can be used to differentiate instances of the same device. This value should not change across system reboots.
Optional.
is_input: Option<bool>
Whether the device is a source (is_input TRUE) or destination (is_input FALSE) of audio.
Optional for Codec; absent for Composite.
ring_buffer_format_sets: Option<Vec<ElementRingBufferFormatSet>>
The union of all formats the device can support, across all combinations of device configuration settings. If the device exposes one or more RingBuffer ENDPOINT elements, this field must be present and its vector must contain exactly one entry for each relevant ENDPOINT element. If the device exposes NO RingBuffer ENDPOINT elements, this field must be omitted (entirely absent, rather than populated with an empty vector). If present, must contain at least one element.
Optional for Composite; absent for Codec.
dai_format_sets: Option<Vec<ElementDaiFormatSet>>
The union of all DAI formats the device can support, across all combinations of device configuration settings. If the device exposes one or more Dai ENDPOINT elements, this field must be present and its vector must contain exactly one entry for each relevant ENDPOINT element. If the device exposes NO Dai ENDPOINT elements, this field must be omitted (entirely absent, rather than populated with an empty vector). If present, must contain at least one element.
Required for Codec; optional for Composite.
plug_detect_caps: Option<PlugDetectCapabilities>
The device’s hot-plug capabilities.
Required for Codec; absent for Composite.
clock_domain: Option<u32>
An identifier for the clock domain in which the device’s clock hardware operates. Devices in the same clock domain remain perfectly synchronized. They may drift relative to some other clock domain, but all clocks in that domain will do so perfectly together. Although their clocks have the same rate, their positions may be offset by an arbitrary, fixed amount.
There are two special values for clock domain:
-
CLOCK_DOMAIN_MONOTONIC
means the hardware is driven by the system montonic clock and will always be synchronized with that timeline. -
CLOCK_DOMAIN_EXTERNAL
means the hardware is not synchronized with any other known clocks (even any other clocks inCLOCK_DOMAIN_EXTERNAL
).
Required for Composite; absent for Codec.
signal_processing_elements: Option<Vec<Element>>
The vector of supported signal-processing elements. If present, must contain at least one element.
Required for Composite; optional for Codec.
signal_processing_topologies: Option<Vec<Topology>>
The vector of supported signal-processing topologies. If present, must contain at least one element.
Required for Composite; optional for Codec.
Trait Implementations§
Source§impl<D: ResourceDialect> Decode<Info, D> for Info
impl<D: ResourceDialect> Decode<Info, D> for Info
Source§impl TypeMarker for Info
impl TypeMarker for Info
Source§fn inline_align(_context: Context) -> usize
fn inline_align(_context: Context) -> usize
Source§fn inline_size(_context: Context) -> usize
fn inline_size(_context: Context) -> usize
inline_align
.§fn encode_is_copy() -> bool
fn encode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and encoding requires no validation. When true, we can optimize
encoding arrays and vectors of Self::Owned
to a single memcpy. Read more§fn decode_is_copy() -> bool
fn decode_is_copy() -> bool
Self::Owned
matches the FIDL wire
format and decoding requires no validation. When true, we can optimize
decoding arrays and vectors of Self::Owned
to a single memcpy.