class Dai

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

For an overview see

[Digital Audio Interface](https://fuchsia.dev/fuchsia-src/concepts/drivers/driver_architectures/audio_drivers/audio_dai).

# Deprecation

Not supported anymore, instead use an

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

with one DAI and one Ring Buffer, see

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

Public Methods

void ~Dai ()
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 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.

void GetProperties (GetPropertiesCallback callback)

Retrieves top level static properties.

void GetDaiFormats (GetDaiFormatsCallback callback)

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.

void GetRingBufferFormats (GetRingBufferFormatsCallback callback)

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.

void CreateRingBuffer (::fuchsia::hardware::audio::DaiFormat dai_format, ::fuchsia::hardware::audio::Format ring_buffer_format, ::fidl::InterfaceRequest< ::fuchsia::hardware::audio::RingBuffer> ring_buffer)

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