class Codec

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

For an overview see

[[Audio Codec Interface]](https://fuchsia.dev/fuchsia-src/development/audio/drivers/codec).

# Deprecation

Not supported anymore, instead use an

[Audio Composite](https://fuchsia.dev/fuchsia-src/development/audio/drivers/composite)

with one DAI and no Ring Buffer, see

[Audio Drivers Architecture](https://fuchsia.dev/fuchsia-src/development/audio/drivers/architecture)

Public Methods

void ~Codec ()
void GetHealthState (GetHealthStateCallback callback)

Retrieves top level health state.

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

void SignalProcessingConnect (::fidl::InterfaceRequest< ::fuchsia::hardware::audio::signalprocessing::SignalProcessing> protocol)

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.

void Reset (ResetCallback callback)

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.

void GetProperties (GetPropertiesCallback callback)

Retrieves top level static properties.

void Stop (StopCallback callback)

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.

void Start (StartCallback callback)

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.

void GetDaiFormats (GetDaiFormatsCallback callback)

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.

void SetDaiFormat (::fuchsia::hardware::audio::DaiFormat format, SetDaiFormatCallback callback)

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

void WatchPlugState (WatchPlugStateCallback callback)

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.