pub struct ElementState {
pub type_specific: Option<TypeSpecificElementState>,
pub enabled: Option<bool>,
pub latency: Option<Latency>,
pub vendor_specific_data: Option<Vec<u8>>,
pub started: Option<bool>,
pub bypassed: Option<bool>,
pub turn_on_delay: Option<i64>,
pub turn_off_delay: Option<i64>,
/* private fields */
}
Fields§
§type_specific: Option<TypeSpecificElementState>
If included, type-specific state parameters for the processing element.
If this processing element is disabled and its type-specific state is provided, then the
type-specific state is only informational, for instance if a SetElementState
enables a
disabled processing element providing a TypeSpecificElementState
, then any previous
informational TypeSpecificElementState
is superceded.
Optional.
enabled: Option<bool>
Process element enable/disable state. Optional. By default processing elements are enabled.
If the corresponding Element
returned can_disable
equals to false
, then
this field can’t be set to false
.
If enabled
is not included, then state
must be included if and only if the processing
element is currently enabled.
Optional.
§Deprecation
Use bypassed
instead.
latency: Option<Latency>
If included, how much latency is added to the pipeline if this processing element is
enabled. This field must not be present in a SetElementState
state
since
the latency can’t be set by a client, it can only provided by the server in a
WatchElementState
reply.
Optional.
vendor_specific_data: Option<Vec<u8>>
If included, an opaque object of octets for exchanging vendor specific information.
Optional.
started: Option<bool>
The started/stopped state for this processing element. If true, the hardware associated with the element is started. If false, stopped.
By default processing elements are started.
If the corresponding Element
returned can_stop
equals to false
, then
this field can’t be set to false
.
A stopped processing element does not provide its abstracted functionality. Specifically, no audio data flows through a stopped element.
Required.
bypassed: Option<bool>
The bypassed state for this processing element. If true, the hardware associated with the element is bypassed. If false, not bypassed.
By default processing elements are not bypassed.
If the corresponding Element
returned can_bypass
equals to false
, then
this field can’t be set to true
.
A bypassed element does not affect the flow of audio through the topology.
Optional.
turn_on_delay: Option<i64>
If included, the driver’s best estimate of the amount of time (in nanoseconds) it takes
the element hardware to get into fully operational mode after started
has changed from
false to true.
This field should not be present in a SetElementState
state
since the turn_on_delay
can’t be set by a client. It may be provided by the server in a WatchElementState
reply.
It may take some time for the hardware to get into fully operational mode, for example due
a power state change. This delay must be taken into account if not getting the initial audio
samples played or captured is not acceptable.
If not included turn_on_delay
is unknown.
Optional.
turn_off_delay: Option<i64>
If included, the driver’s best estimate of the amount of time (in nanoseconds) it takes
the element hardware to get into fully disabled mode after the ElementState
has
changed started
from true to false.
This field should not be present in a SetElementState
state
since the turn_off_delay
can’t be set by a client. It may be provided by the server in a WatchElementState
reply.
It may take some time for the hardware to get into fully disabled mode, for example due to a power state change. This delay must be taken into account if audio processing of audio samples after disabling a processing element is not acceptable. If not included, the turn off delay is unknown.
Optional.
Trait Implementations§
source§impl Clone for ElementState
impl Clone for ElementState
source§fn clone(&self) -> ElementState
fn clone(&self) -> ElementState
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moresource§impl Debug for ElementState
impl Debug for ElementState
source§impl Decode<ElementState> for ElementState
impl Decode<ElementState> for ElementState
source§impl Default for ElementState
impl Default for ElementState
source§fn default() -> ElementState
fn default() -> ElementState
source§impl Encode<ElementState> for &ElementState
impl Encode<ElementState> for &ElementState
source§impl PartialEq for ElementState
impl PartialEq for ElementState
source§fn eq(&self, other: &ElementState) -> bool
fn eq(&self, other: &ElementState) -> bool
self
and other
values to be equal, and is used
by ==
.source§impl TypeMarker for ElementState
impl TypeMarker for ElementState
§type Owned = ElementState
type Owned = ElementState
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.source§impl ValueTypeMarker for ElementState
impl ValueTypeMarker for ElementState
§type Borrowed<'a> = &'a ElementState
type Borrowed<'a> = &'a ElementState
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read more