class SetActiveChannels
Defined at line 1296 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/cpp/fidl/fuchsia.hardware.audio/cpp/markers.h
Sets which channels are active via a bitmask.
The total number of channels is the `number_of_channels` in `Format`, specifically in
`PcmFormat`, i.e. this bitmask has up to `number_of_channels` bits set (maximum 64).
The least significant bit corresponds to channel index 0. Channels not set (bits are 0) in
the bitmask are inactive. By default all channels are active. Hence creating a RingBuffer
turns on the hardware associated for all channels.
Inactive channels indicate to the driver that it may turn off hardware associated with the
inactive channels. A subsequent `SetActiveChannels` setting an inactive channel to active
may incur in a `turn_on_delay` to actually restart playback/capture of the channels.
Deactivating one, several, or all channels does not `Stop` the ring buffer, nor does it
change the ring buffer's behavior with regard to position. Once `Start` is called, a ring
buffer's position advances (and position notifications sent as needed) regardless of the
number of active channels, including if no channels are active. This means that the format
in the ring buffer is not changed.
If the driver does not support deactivating channels, it must return `ZX_ERR_NOT_SUPPORTED`.
If the mask is incorrect, i.e. enables channels outside the number of bits to use for a
given `number_of_channels`, then the driver must return `ZX_ERR_INVALID_ARGS`.
The `set_time` value (in the CLOCK_MONOTONIC timeline) indicates when configuring
the hardware to activate or deactivate channels is completed. `set_time` does not include
the potential `turn_on_delay`, the driver does not delay the reply waiting for the
hardware to actually turn on, the driver replies with a `set_time` indicating when the
hardware configuration was completed. If the requested channel configuration is already
active, the returned `set_time` can be before `SetActiveChannels` was called but must be
before the reply is sent. If called again with the same configuration, the reply must
include the same `set_time` value as was previously returned.
For input channels, it is not required that the driver zero-out inactive channels.
If `SetActiveChannels` is called for a second time before the first call has completed,
the channel must be closed with an error `ZX_ERR_BAD_STATE` returned.
Public Members
static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal