pub enum ObserverRequest {
GetElements {
responder: ObserverGetElementsResponder,
},
WatchElementState {
processing_element_id: u64,
responder: ObserverWatchElementStateResponder,
},
GetTopologies {
responder: ObserverGetTopologiesResponder,
},
WatchTopology {
responder: ObserverWatchTopologyResponder,
},
WatchGainState {
responder: ObserverWatchGainStateResponder,
},
WatchPlugState {
responder: ObserverWatchPlugStateResponder,
},
GetReferenceClock {
responder: ObserverGetReferenceClockResponder,
},
_UnknownMethod {
ordinal: u64,
control_handle: ObserverControlHandle,
method_type: MethodType,
},
}
Expand description
Observer
instances are used to learn the capabilities and state of an
audio device, and to stay informed as its state changes over time. Each
Observer
is associated with an initialized audio device. An audio device
may be observed by multiple Observer
instances.
Variants§
GetElements
Returns a vector of supported processing elements.
Must return one or more processing elements, or ZX_ERR_NOT_SUPPORTED
.
If GetTopologies
returns one or more topologies, then GetElements
must return one or
more elements.
Fields
responder: ObserverGetElementsResponder
WatchElementState
Get the processing element state via a hanging get.
For a given processing_element_id
, the driver will reply to the first WatchElementState
sent by the client. The driver will not respond to subsequent client WatchElementState
calls for a given processing_element_id
until any field of the Element
table changes
from what was most recently reported for that processing_element_id
.
The driver will close the protocol channel with an error of ZX_ERR_BAD_STATE
, if this
method is called again while there is already a pending WatchElementState
for this client
and processing_element_id.
GetTopologies
Returns a vector of supported topologies.
Must return one or more topologies, or ZX_ERR_NOT_SUPPORTED
.
If more than one topology is returned, then the client may choose any of the topologies from
the list with SetTopology
.
If only one topology is returned, then the topology definition is informational only since
the one and only topology used can’t be changed with SetTopology
.
If GetElements
returns one or more elements, then GetTopologies
must return one or
more topologies.
Fields
responder: ObserverGetTopologiesResponder
WatchTopology
Get the current topology via a hanging get.
The driver will immediately reply to the first WatchTopology
sent by each client. The
driver will not respond to subsequent WatchTopology
calls from that client until the
signal-processing topology changes, which occurs as a result of a SetTopology
call.
The driver will close the protocol channel with an error of ZX_ERR_BAD_STATE
, if this
method is called again while there is already a pending WatchTopology
for this client.
Fields
responder: ObserverWatchTopologyResponder
WatchGainState
Request notification of any change to the device’s gain state.
Note: this only notifies of changes to controls described in the
device’sInfo
table (GainCapabilities
specifically). Use
WatchElementState
for gain processing exposed as SignalProcessing
(GetTopologies
, GetElements
).
Should only be called for StreamConfig devices.
Fields
responder: ObserverWatchGainStateResponder
WatchPlugState
Request notification of any change to the device’s plug state. When called for the first time, it will return immediately.
Should only be called for Codec or StreamConfig devices.
Fields
responder: ObserverWatchPlugStateResponder
GetReferenceClock
Retrieve the device’s reference clock.
This clock will be in the domain specified in the device’s Info
table.
Should only be called for Composite or StreamConfig devices.
Fields
responder: ObserverGetReferenceClockResponder
_UnknownMethod
An interaction was received which does not match any known method.
Fields
This variant is marked as non-exhaustive
control_handle: ObserverControlHandle
method_type: MethodType
Implementations§
Source§impl ObserverRequest
impl ObserverRequest
pub fn into_get_elements(self) -> Option<ObserverGetElementsResponder>
pub fn into_watch_element_state( self, ) -> Option<(u64, ObserverWatchElementStateResponder)>
pub fn into_get_topologies(self) -> Option<ObserverGetTopologiesResponder>
pub fn into_watch_topology(self) -> Option<ObserverWatchTopologyResponder>
pub fn into_watch_gain_state(self) -> Option<ObserverWatchGainStateResponder>
pub fn into_watch_plug_state(self) -> Option<ObserverWatchPlugStateResponder>
pub fn into_get_reference_clock( self, ) -> Option<ObserverGetReferenceClockResponder>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL