class RingBufferProperties
Defined at line 9309 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
Properties of the ring buffer. These values don't change once the ring buffer is created.
Public Members
static const fidl_type_t * FidlType
Public Methods
bool IsEmpty ()
Returns whether no field is set.
RingBufferProperties & set_needs_cache_flush_or_invalidate (bool _value)
RingBufferProperties & set_turn_on_delay (int64_t _value)
RingBufferProperties & set_driver_transfer_bytes (uint32_t _value)
void RingBufferProperties ()
void RingBufferProperties (RingBufferProperties && other)
void ~RingBufferProperties ()
RingBufferProperties & operator= (RingBufferProperties && other)
::std::unique_ptr<RingBufferProperties> New ()
void Encode (::fidl::Encoder * _encoder, size_t _offset, std::optional< ::fidl::HandleInformation> maybe_handle_info)
void Decode (::fidl::Decoder * _decoder, RingBufferProperties * _value, size_t _offset)
zx_status_t Clone (RingBufferProperties * _result)
const bool & needs_cache_flush_or_invalidate ()
When set to true, indicates that the ring buffer runs in a different cache coherency domain,
and thus clients must ensure that their data writes are flushed all the way to main memory
(during playback), or that their view of the ring buffer must be invalidated before any
reads (during capture). This is because there may be hardware external to the CPUs that
reads/writes main memory, bypassing the CPUs.
When set to false, indicates that the ring buffer runs in the same cache coherency domain as
the CPUs, hence the driver is not required to flush/invalidate the ring buffer.
Note that in this case, the driver and client still must synchronize their data access, for
instance by inserting the appropriate acquire fences before reading and releasing fences
after writing, or (more commonly) by obeying the Producer/Consumer pattern described in
[Ring Buffer Behavior](https://fuchsia.dev/fuchsia-src/development/audio/ring_buffer.md).
Required.
Defined at line 9329 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
bool has_needs_cache_flush_or_invalidate ()
Defined at line 9333 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
bool * mutable_needs_cache_flush_or_invalidate ()
When set to true, indicates that the ring buffer runs in a different cache coherency domain,
and thus clients must ensure that their data writes are flushed all the way to main memory
(during playback), or that their view of the ring buffer must be invalidated before any
reads (during capture). This is because there may be hardware external to the CPUs that
reads/writes main memory, bypassing the CPUs.
When set to false, indicates that the ring buffer runs in the same cache coherency domain as
the CPUs, hence the driver is not required to flush/invalidate the ring buffer.
Note that in this case, the driver and client still must synchronize their data access, for
instance by inserting the appropriate acquire fences before reading and releasing fences
after writing, or (more commonly) by obeying the Producer/Consumer pattern described in
[Ring Buffer Behavior](https://fuchsia.dev/fuchsia-src/development/audio/ring_buffer.md).
Required.
Defined at line 9351 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
void clear_needs_cache_flush_or_invalidate ()
Defined at line 9359 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
const int64_t & turn_on_delay ()
The driver's best estimate of the time needed for the hardware to emit (during playback) or
accept (during capture) frames, after a channel is activated by `SetActiveChannels`.
The driver estimates that after `SetActiveChannels(channel)->(set_time)` enables a channel,
its data will resume flowing at approximately `set_time` + `turn_on_delay`.
Hardware can take time to become fully operational (e.g. due to a power state change, or
communication delays between a Bluetooth driver's multiple hardware entities). The client
must take this delay into account, if it is unacceptable to drop the actual audio frames
and instead play/capture silence during this interval.
If not included, `turn_on_delay` is unknown.
Optional.
Defined at line 9379 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
bool has_turn_on_delay ()
Defined at line 9383 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
int64_t * mutable_turn_on_delay ()
The driver's best estimate of the time needed for the hardware to emit (during playback) or
accept (during capture) frames, after a channel is activated by `SetActiveChannels`.
The driver estimates that after `SetActiveChannels(channel)->(set_time)` enables a channel,
its data will resume flowing at approximately `set_time` + `turn_on_delay`.
Hardware can take time to become fully operational (e.g. due to a power state change, or
communication delays between a Bluetooth driver's multiple hardware entities). The client
must take this delay into account, if it is unacceptable to drop the actual audio frames
and instead play/capture silence during this interval.
If not included, `turn_on_delay` is unknown.
Optional.
Defined at line 9399 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
void clear_turn_on_delay ()
Defined at line 9407 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
const uint32_t & driver_transfer_bytes ()
Size (in bytes) of the temporary buffers or FIFOs used by the driver when consuming or
generating the ring buffer contents.
The `driver_transfer_bytes` field is covered extensively in
[Ring Buffer Behavior](https://fuchsia.dev/fuchsia-src/development/audio/ring_buffer.md).
`driver_transfer_bytes` must not include the impact of delays caused by hardware or software
processing abstracted by the driver. Those delays are communicated by `internal_delay` and
`external_delay` fields in `DelayInfo`; they are orthogonal to this value.
Required.
Defined at line 9426 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
bool has_driver_transfer_bytes ()
Defined at line 9430 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
uint32_t * mutable_driver_transfer_bytes ()
Size (in bytes) of the temporary buffers or FIFOs used by the driver when consuming or
generating the ring buffer contents.
The `driver_transfer_bytes` field is covered extensively in
[Ring Buffer Behavior](https://fuchsia.dev/fuchsia-src/development/audio/ring_buffer.md).
`driver_transfer_bytes` must not include the impact of delays caused by hardware or software
processing abstracted by the driver. Those delays are communicated by `internal_delay` and
`external_delay` fields in `DelayInfo`; they are orthogonal to this value.
Required.
Defined at line 9445 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h
void clear_driver_transfer_bytes ()
Defined at line 9453 of file fidling/gen/sdk/fidl/fuchsia.hardware.audio/fuchsia.hardware.audio/hlcpp/fuchsia/hardware/audio/cpp/fidl.h