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>,
pub processing_delay: Option<i64>,
/* private fields */
}
Expand description
The current state of an element, as returned from the driver. Note that this table contains
fields that are not present in SettableElementState
, since they cannot be set by clients.
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 (e.g. the state of a stopped element, if it were to be re-started without also providing additional superceding state information).
Optional.
enabled: Option<bool>
Process element enable/disable state. 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.
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 it takes the element’s
hardware to enter a fully operational mode after started
has changed from false to true.
Hardware may require some duration to get into a fully operational mode after a change in
power state, for example.
If this delay is not taken into account, then the initial frames of an audio stream may be
lost while an audio element is powering up.
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 it takes the element’s
hardware to enter a fully disabled mode after started
has changed from true to false.
Hardware may require some duration to get into a fully stopped state after a change in
power state, for example.
If this delay is not taken into account, more frames will be emitted/captured than a
client may realize, specifically when elements are powering down.
If not included, turn_off_delay
is unknown.
Optional.
processing_delay: Option<i64>
If included, the driver’s best estimate (as currently configured, including bypassed
) of
the delay added by this processing element.
This value must be taken into account by clients when determining the requirements for minimum lead time (during playback) and minimum capture delay (during capture).
For an element of type RING_BUFFER
, this delay should not include the inherent delay
added by the temporary buffering needed to copy data in and out of a ring buffer, which
is contained in the RingBufferProperties
field driver_transfer_bytes
.
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<D: ResourceDialect> Decode<ElementState, D> for ElementState
impl<D: ResourceDialect> Decode<ElementState, D> for ElementState
Source§impl Default for ElementState
impl Default for ElementState
Source§fn default() -> ElementState
fn default() -> ElementState
Source§impl<D: ResourceDialect> Encode<ElementState, D> for &ElementState
impl<D: ResourceDialect> Encode<ElementState, D> for &ElementState
Source§impl PartialEq for ElementState
impl PartialEq for ElementState
Source§impl TypeMarker for ElementState
impl TypeMarker for ElementState
Source§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
Source§type Borrowed<'a> = &'a ElementState
type Borrowed<'a> = &'a ElementState
Encode<Self>
type cheaply obtainable from &Self::Owned
. There are three cases: Read moreimpl Persistable for ElementState
impl StructuralPartialEq for ElementState
Auto Trait Implementations§
impl Freeze for ElementState
impl RefUnwindSafe for ElementState
impl Send for ElementState
impl Sync for ElementState
impl Unpin for ElementState
impl UnwindSafe for ElementState
Blanket Implementations§
§impl<T> Body for Twhere
T: Persistable,
impl<T> Body for Twhere
T: Persistable,
§type MarkerAtTopLevel = T
type MarkerAtTopLevel = T
§type MarkerInResultUnion = T
type MarkerInResultUnion = T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)