template <>

class NaturalClientImpl

Defined at line 3350 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/natural_messaging.h

Public Methods

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::GetHealthState> GetHealthState ()

Retrieves top level health state.

A driver not responding promptly can be used as an indication of an unhealthy driver.

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::Reset> 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.

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::GetProperties> GetProperties ()

Retrieves top level static properties.

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::Stop> 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.

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::Start> 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.

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::GetDaiFormats> 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.

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::SetDaiFormat> SetDaiFormat (const ::fidl::Request< ::fuchsia_hardware_audio::Codec::SetDaiFormat> & request)

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).

::fidl::internal::NaturalThenable< ::fuchsia_hardware_audio::Codec::WatchPlugState> 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.

::fit::result< ::fidl::OneWayError> SignalProcessingConnect (::fidl::Request< ::fuchsia_hardware_audio::Codec::SignalProcessingConnect> request)

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.