pub struct DaiSynchronousProxy { /* private fields */ }
Implementations§
Source§impl DaiSynchronousProxy
impl DaiSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<DaiEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<DaiEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn get_health_state(
&self,
___deadline: MonotonicInstant,
) -> Result<HealthState, Error>
pub fn get_health_state( &self, ___deadline: MonotonicInstant, ) -> Result<HealthState, Error>
Retrieves top level health state. A driver not responding promptly can be used as an indication of an unhealthy driver.
Sourcepub fn signal_processing_connect(
&self,
protocol: ServerEnd<SignalProcessingMarker>,
) -> Result<(), Error>
pub fn signal_processing_connect( &self, protocol: ServerEnd<SignalProcessingMarker>, ) -> Result<(), Error>
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.
Sourcepub fn reset(&self, ___deadline: MonotonicInstant) -> Result<(), Error>
pub fn reset(&self, ___deadline: MonotonicInstant) -> Result<(), Error>
Resets the DAI HW. The ring_buffer
channel obtained via CreateRingBuffer
may be closed
by the driver, in this case the client needs to obtain a new ring_buffer
.
Reset
returns when the reset is completed. If the driver can’t successfully reset the HW,
it will close the DAI protocol channel, in this case the client may obtain a new DAI
protocol channel and retry.
Sourcepub fn get_properties(
&self,
___deadline: MonotonicInstant,
) -> Result<DaiProperties, Error>
pub fn get_properties( &self, ___deadline: MonotonicInstant, ) -> Result<DaiProperties, Error>
Retrieves top level static properties.
Sourcepub fn get_dai_formats(
&self,
___deadline: MonotonicInstant,
) -> Result<DaiGetDaiFormatsResult, Error>
pub fn get_dai_formats( &self, ___deadline: MonotonicInstant, ) -> Result<DaiGetDaiFormatsResult, Error>
Retrieves the DAI formats supported by the DAI, if not available at the time the DAI
may reply with an error status and the client may retry at a later time.
Retrieving multiple DaiSupportedFormats
allows for cases where exclusive combinations of
the parameters in SupportedFormats may be supported.
Sourcepub fn get_ring_buffer_formats(
&self,
___deadline: MonotonicInstant,
) -> Result<DaiGetRingBufferFormatsResult, Error>
pub fn get_ring_buffer_formats( &self, ___deadline: MonotonicInstant, ) -> Result<DaiGetRingBufferFormatsResult, Error>
Retrieves the ring buffer formats supported by the DAI, if not available at the time the DAI
may reply with an error status and the client may retry at a later time.
Retrieving multiple SupportedFormats
allows for cases where exclusive combinations of
the parameters in SupportedFormats
may be supported.
Sourcepub fn create_ring_buffer(
&self,
dai_format: &DaiFormat,
ring_buffer_format: &Format,
ring_buffer: ServerEnd<RingBufferMarker>,
) -> Result<(), Error>
pub fn create_ring_buffer( &self, dai_format: &DaiFormat, ring_buffer_format: &Format, ring_buffer: ServerEnd<RingBufferMarker>, ) -> Result<(), Error>
CreateRingBuffer
is sent by clients to select both a DAI format and a ring buffer format
based on information that the driver provides in GetDaiFormats
and GetRingBufferFormats
,
what is supported by the client, and any other requirement. The ring_buffer
channel is
used to control the audio buffer, if a previous ring buffer channel had been established and
was still active, the driver must close that (ring buffer) channel and make every attempt to
gracefully quiesce any on-going streaming operations in the process.