pub enum CodecRequest {
GetHealthState {
responder: CodecGetHealthStateResponder,
},
SignalProcessingConnect {
protocol: ServerEnd<SignalProcessingMarker>,
control_handle: CodecControlHandle,
},
Reset {
responder: CodecResetResponder,
},
GetProperties {
responder: CodecGetPropertiesResponder,
},
Stop {
responder: CodecStopResponder,
},
Start {
responder: CodecStartResponder,
},
IsBridgeable {
responder: CodecIsBridgeableResponder,
},
SetBridgedMode {
enable_bridged_mode: bool,
control_handle: CodecControlHandle,
},
GetDaiFormats {
responder: CodecGetDaiFormatsResponder,
},
SetDaiFormat {
format: DaiFormat,
responder: CodecSetDaiFormatResponder,
},
WatchPlugState {
responder: CodecWatchPlugStateResponder,
},
}
Expand description
For an overview see [Audio Codec Interface].
§Deprecation
Not supported anymore, instead use an Audio Composite with one DAI and no Ring Buffer, see Audio Drivers Architecture
Variants§
GetHealthState
Retrieves top level health state. A driver not responding promptly can be used as an indication of an unhealthy driver.
Fields
responder: CodecGetHealthStateResponder
SignalProcessingConnect
Connect to a SignalProcessing
protocol.
Multiple connections may be supported, if a new connection request is not supported, i.e.
the maximum number of connections have already been created, for instance one, then the
protocol
channel (not the channel upon which SignalProcessingConnect
is being called)
will be closed with a ZX_ERR_ALREADY_BOUND
epitaph.
If signal processing is not supported at all, then the protocol
channel (again, not the
channel upon which SignalProcessingConnect
is being called) will be closed with a
ZX_ERR_NOT_SUPPORTED
epitaph.
This method is named SignalProcessingConnect
instead of Connect
because this protocol
is intended to be composed, and hence the more verbose name allows differentiation and
improved clarity.
Reset
Resets the codec.
Reset
returns when the reset is completed. If the driver can’t successfully reset the
codec it will close the codec protocol channel, in this case the client may obtain a new
codec protocol channel and retry.
Fields
responder: CodecResetResponder
GetProperties
Retrieves top level static properties.
Fields
responder: CodecGetPropertiesResponder
Stop
Stops the codec operation.
Stop
returns when configuring the codec to stop is completed. This method does not wait
for the hardware to actually stop playback/capture (i.e. turn_off_delay
impact is not
taken into account), nor is any such delay reflected in the returned stop_time
.
stop_time
indicates when the driver finished configuring the codec to stop, as measured
in the CLOCK_MONOTONIC timeline.
If the driver cannot successfully configure the codec to stop, it will close the codec
protocol channel, in which case the client may obtain a new codec protocol channel and retry.
Fields
responder: CodecStopResponder
Start
Start/Re-start the codec operation.
Start
returns when configuring the codec to start is completed. This method does not wait
for the hardware to actually start playback/capture (i.e. turn_on_delay
impact is not taken
into account), nor is any such delay reflected in the returned start_time
.
start_time
indicates when the driver finished configuring the codec to start, as measured
in the CLOCK_MONOTONIC timeline.
If the driver can’t successfully start the codec, it will close the codec protocol channel,
in which case the client may obtain a new codec protocol channel and retry.
Fields
responder: CodecStartResponder
IsBridgeable
Returns whether a codec is bridgeable.
§Deprecation
Not supported anymore, bridged configurations are no longer changeable at runtime. A driver can still be configured to operate in bridged mode or not at boot time.
Fields
responder: CodecIsBridgeableResponder
SetBridgedMode
Sets a codec’s bridged mode. This method is required, but it only needs to take action if
the codec supports bridged mode as specified by its reply to IsBridgeable
.
§Deprecation
Not supported anymore, bridged configurations are no longer changeable at runtime. A driver can still be configured to operate in bridged mode or not at boot time.
GetDaiFormats
Retrieves the DAI formats supported by the codec, if not available at the time the codec may reply with an error status and the controller may retry at a later time. Retrieving multiple DaiSupportedFormats allows for cases where exclusive combinations of the parameters in DaiSupportedFormats may be supported.
Fields
responder: CodecGetDaiFormatsResponder
SetDaiFormat
Sets the DAI format to be used in the interface between the controller and codec. Returns an error if not supported at the time of the request (e.g. for removable hardware).
WatchPlugState
Get the plug detect state via a hanging get. The driver will reply to the first
WatchPlugState
sent by the client. The driver will not respond to subsequent client
WatchPlugState
calls until the plug state changes from what was most recently reported.
Fields
responder: CodecWatchPlugStateResponder
Implementations§
Source§impl CodecRequest
impl CodecRequest
pub fn into_get_health_state(self) -> Option<CodecGetHealthStateResponder>
pub fn into_signal_processing_connect( self, ) -> Option<(ServerEnd<SignalProcessingMarker>, CodecControlHandle)>
pub fn into_reset(self) -> Option<CodecResetResponder>
pub fn into_get_properties(self) -> Option<CodecGetPropertiesResponder>
pub fn into_stop(self) -> Option<CodecStopResponder>
pub fn into_start(self) -> Option<CodecStartResponder>
pub fn into_is_bridgeable(self) -> Option<CodecIsBridgeableResponder>
pub fn into_set_bridged_mode(self) -> Option<(bool, CodecControlHandle)>
pub fn into_get_dai_formats(self) -> Option<CodecGetDaiFormatsResponder>
pub fn into_set_dai_format( self, ) -> Option<(DaiFormat, CodecSetDaiFormatResponder)>
pub fn into_watch_plug_state(self) -> Option<CodecWatchPlugStateResponder>
Sourcepub fn method_name(&self) -> &'static str
pub fn method_name(&self) -> &'static str
Name of the method defined in FIDL