template <>
class Server
Defined at line 2917 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/natural_messaging.h
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 Server ()
Defined at line 2920 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/natural_messaging.h
void SignalProcessingConnect (SignalProcessingConnectRequest & 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 Reset (ResetCompleter::Sync & completer)
Resets the hardware including all DAI interconnects and signal processing.
As a result, all channels obtained by `CreateRingBuffer` will be closed.
`Reset` returns when the hardware is fully reset. At this point, a client would need to
reconfigure any DAI interconnects, select a signal processing topology and reconfigure
any processing elements, and reconstruct any ring buffers.
If the driver can't successfully reset the hardware, it will return an error and then close
the protocol channel, in this case the client may obtain a new protocol channel and retry.
void GetProperties (GetPropertiesCompleter::Sync & completer)
Retrieves top level static properties.
void GetRingBufferFormats (GetRingBufferFormatsRequest & request, GetRingBufferFormatsCompleter::Sync & completer)
Retrieves the ring buffer formats supported by a `RING_BUFFER` processing element
in the topology supported by this driver as returned by `GetElements` from
fuchsia.hardware.audio.signalprocessing.
Returns `SHOULD_WAIT` if the ring buffer formats are not available at the time, the
client may retry at a later time.
Returns `INVALID_ARGS` if the `processing_element_id` does not match an id returned
by `GetElements`.
Returns `WRONG_TYPE` if the `ElementType` of the element represented by the id is not
`RING_BUFFER`.
Retrieving multiple `SupportedFormats2` allows for cases where exclusive combinations of
the parameters in `SupportedFormats2` may be supported.
The vector returned to the caller must contain at least one entry.
void CreateRingBuffer (CreateRingBufferRequest & request, CreateRingBufferCompleter::Sync & completer)
`CreateRingBuffer` is sent by clients to select a ring buffer format for the `RING_BUFFER`
processing element specified by `processing_element_id`. The format is based on information
that the driver provides in `GetRingBufferFormats`, what is supported by the client, and
any other requirement. The returned `ring_buffer` channel is used to access and control the
audio buffer provided by the driver.
Returns `INVALID_ARGS` if the `processing_element_id` does not match an id returned
by `GetElements`.
Returns `WRONG_TYPE` if the `ElementType` of the element represented by the id is not
`RING_BUFFER`.
Returns `NOT_SUPPORTED` if the driver does not support ring buffers, or if the specified
`format` is not supported.
void GetDaiFormats (GetDaiFormatsRequest & request, GetDaiFormatsCompleter::Sync & completer)
Retrieves the DAI formats supported by a `DAI_INTERCONNECT` processing element
in the topology supported by this driver as returned by `GetElements` from
fuchsia.hardware.audio.signalprocessing.
Returns `SHOULD_WAIT` if the DAI formats are not available at the time, the client
may retry at a later time.
Returns `INVALID_ARGS` if the `processing_element_id` does not match an id returned
by `GetElements`.
Returns `WRONG_TYPE` if the `ElementType` of the element represented by the id is not
`DAI_INTERCONNECT`.
Retrieving multiple `DaiSupportedFormats` allows for cases where exclusive combinations of
the parameters in DaiSupportedFormats may be supported.
The vector returned to the caller must contain at least one entry.
void SetDaiFormat (SetDaiFormatRequest & request, SetDaiFormatCompleter::Sync & completer)
`SetDaiFormat` is sent by clients to select a DAI format for the `DAI_INTERCONNECT`
processing element specified by `processing_element_id`. The format is based on information
that the driver provides in `GetDaiFormats`, what is supported by the client, and any other
requirement.
Returns `INVALID_ARGS` if the `processing_element_id` does not match an id returned
by `GetElements`.
Returns `WRONG_TYPE` if the `ElementType` of the element represented by the id is not
`DAI_INTERCONNECT`.
void GetPacketStreamFormats (GetPacketStreamFormatsRequest & request, GetPacketStreamFormatsCompleter::Sync & completer)
Retrieves the packet-stream formats supported by a `PACKET_STREAM` processing element
in the topologies supported by this driver, as returned by `GetElements` and `GetTopologies`
from fuchsia.hardware.audio.signalprocessing.
Returns `SHOULD_WAIT` if the packet-stream formats are not available at this time. The
client may retry this request at a later time.
Returns `INVALID_ARGS` if the `processing_element_id` does not match an id returned by
`GetElements`.
Returns `WRONG_TYPE` if the `ElementType` of the element represented by the id is not
`PACKET_STREAM`.
Returns `NOT_SUPPORTED` if the driver does not support packet streams.
Returning a vector with multiple `SupportedFormats2` enables cases where exclusive
combinations of the parameters in `SupportedFormats2` may be supported.
The vector returned to the caller must contain at least one entry.
void CreatePacketStream (CreatePacketStreamRequest & request, CreatePacketStreamCompleter::Sync & completer)
`CreatePacketStream` is sent by clients to select a packet-stream format for the
`PACKET_STREAM` processing element specified by `processing_element_id`. The format is based
on information that the driver provides in `GetPacketStreamFormats`, what is supported by
the client, and any other requirement. The returned `packet_stream` channel is used to
access and control the packet stream protocol served by the driver.
Returns `INVALID_ARGS` if the `processing_element_id` does not match an id returned by
`GetElements`.
Returns `WRONG_TYPE` if the `ElementType` of the element represented by the id is not
`PACKET_STREAM`.
Returns `SHOULD_WAIT` if the server cannot create a packet stream for this element/format
at this time, but it should be able to at some future time. This request can be retried.
Returns `NOT_SUPPORTED` if the driver does not support packet streams, or if the specified
`format` is not supported.
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 ~Server ()
Defined at line 2921 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/natural_messaging.h