template <>

class WireServer

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

Pure-virtual interface to be implemented by a server.

This interface uses typed channels (i.e. |::fidl::ClientEnd

<

::fuchsia_hardware_audio::StreamConfig>|

and |::fidl::ServerEnd

<

::fuchsia_hardware_audio::StreamConfig>|).

Public Methods

void GetHealthState (GetHealthStateCompleter::Sync & completer)

Retrieves top level health state.

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

void SignalProcessingConnect (::fuchsia_hardware_audio_signalprocessing::wire::ConnectorSignalProcessingConnectRequest * request, SignalProcessingConnectCompleter::Sync & completer)

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 GetProperties (GetPropertiesCompleter::Sync & completer)

Retrieves top level static properties.

void GetSupportedFormats (GetSupportedFormatsCompleter::Sync & completer)

Gets formats supported by a given driver. When not all combinations supported by the

driver can be described with one `SupportedFormats`, the driver returns more than one

`SupportedFormats` in the returned vector. For example, if one `SupportedFormats` allows

for 32 bits samples at 48KHz, and 16 bits samples at 96KHz, but not 32 bits samples at

96KHz, then the driver replies with 2 `SupportedFormats`:

<

<

32bits>,

<

48KHz>> and

<

<

16bits>,

<

96KHz>>. For simplicity, this example ignores parameters other than rate and

bits per sample. In the case where the driver supports either 16 or 32 bits samples at

either 48 or 96KHz, the driver would reply with 1 `SupportedFormats`:

<

<

16bits,32bits>,

<

48KHz,96KHz>>.

void CreateRingBuffer (::fuchsia_hardware_audio::wire::StreamConfigCreateRingBufferRequest * request, CreateRingBufferCompleter::Sync & completer)

`CreateRingBuffer` is sent by clients to select a stream format based on information that

the driver provides in `GetSupportedFormats` 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.

void WatchGainState (WatchGainStateCompleter::Sync & completer)

Get the gain state via a hanging get. The driver will reply to the first `WatchGainState`

sent by the client and this reply must include a `gain_db` set to 0dB or lower. The driver

will not respond to subsequent client `WatchGainState` calls until the gain state changes

from what was most recently reported.

If `WatchGainState` is called for a second time before the first call has completed, then

the protocol channel must be closed with the error `ZX_ERR_BAD_STATE`.

void SetGain (::fuchsia_hardware_audio::wire::StreamConfigSetGainRequest * request, SetGainCompleter::Sync & completer)

Client update of the gain state.

void WatchPlugState (WatchPlugStateCompleter::Sync & completer)

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.

If `WatchPlugState` is called for a second time before the first call has completed, then

the protocol channel must be closed with the error `ZX_ERR_BAD_STATE`.

void WireServer ()

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

Handler bind_handler (async_dispatcher_t * dispatcher)

|bind_handler| returns a handler that binds incoming connections to this

server implementation.

The returned handler borrows the server instance.

The server must outlive the provided |dispatcher|. Only after

the dispatcher is shutdown will it be safe to destroy the servers.

The server should not be moved.

void ~WireServer ()

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