class PcmSupportedFormats

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

Format supporting PCM audio. Each frame consists of one or more

(number_of_channels) samples, stored contiguously. Within the `bytes_per_sample` allocated for

each sample, `valid_bits_per_sample` bits of data are stored in the most-significant

(left-justified) portion.

All values listed in each vector are supported. This implies a cross-product: any listed

item in one vector is supported in combination with any listed item in another vector.

When not all combinations supported by the driver can be described with one

`PcmSupportedFormats` table, `GetSupportedFormats` must return a vector with multiple

`SupportedFormats` entries.

For more detailed information see [Audio Driver Streaming Interface](https://fuchsia.dev/fuchsia-src/concepts/drivers/driver_architectures/audio_drivers/audio_streaming).

Public Methods

bool IsEmpty ()

Returns whether no field is set.

bool HasUnknownData ()

Returns whether the table references unknown fields.

::fidl::WireTableBuilder< ::fuchsia_hardware_audio::wire::PcmSupportedFormats> Builder (::fidl::AnyArena & arena)

Return a builder that by defaults allocates of an arena.

::fidl::WireTableExternalBuilder< ::fuchsia_hardware_audio::wire::PcmSupportedFormats> ExternalBuilder (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_audio::wire::PcmSupportedFormats>> frame)

Return a builder that relies on explicitly allocating |fidl::ObjectView|s.

void Allocate (::fidl::AnyArena & allocator)
void Init (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_audio::wire::PcmSupportedFormats>> && frame_ptr)
void PcmSupportedFormats ()

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

void PcmSupportedFormats (const PcmSupportedFormats & other)

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

void PcmSupportedFormats (PcmSupportedFormats && other)

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

::fidl::VectorView< ::fuchsia_hardware_audio::wire::ChannelSet> & channel_sets ()

Vector of possible `ChannelSets` supported.

A `ChannelSet` specifies a channel configuration (including a channel-count), plus a number

of optional attributes.

Only one `ChannelSet` is allowed for each unique channel-count. As a result, no two entries

in `channel_sets` can contain `attributes` vectors with the same length.

Required.

bool has_channel_sets ()
PcmSupportedFormats & operator= (PcmSupportedFormats && other)

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

::fidl::VectorView< ::fuchsia_hardware_audio::wire::SampleFormat> & sample_formats ()

Vector of possible `SampleFormat`s supported.

Required.

bool has_sample_formats ()
::fidl::VectorView<uint8_t> & bytes_per_sample ()

Vector of possible bytes allocated for each sample. Values must be listed in ascending

order. All values listed in `valid_bits_per_sample` must fit into at least the largest

`bytes_per_sample` value.

Required.

bool has_bytes_per_sample ()
::fidl::VectorView<uint8_t> & valid_bits_per_sample ()

Vector of possible number of bits containing valid data, within the sample container defined

by `bytes_per_sample`. Values must be listed in ascending order. All values listed must fit

into the largest `bytes_per_sample` value. The valid data bits must be most-significant

(left-justified) within the sample container, and any additional bits will be ignored.

Required.

bool has_valid_bits_per_sample ()
::fidl::VectorView<uint32_t> & frame_rates ()

Vector of possible frame rates supported. Values must be listed in ascending order.

Required.

bool has_frame_rates ()
PcmSupportedFormats & operator= (const PcmSupportedFormats & other)

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

PcmSupportedFormats & set_channel_sets (::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_hardware_audio::wire::ChannelSet>> elem)
PcmSupportedFormats & set_channel_sets (std::nullptr_t )
PcmSupportedFormats & clear_channel_sets ()
PcmSupportedFormats & set_sample_formats (::fidl::ObjectView< ::fidl::VectorView< ::fuchsia_hardware_audio::wire::SampleFormat>> elem)
PcmSupportedFormats & set_sample_formats (std::nullptr_t )
PcmSupportedFormats & clear_sample_formats ()
PcmSupportedFormats & set_bytes_per_sample (::fidl::ObjectView< ::fidl::VectorView<uint8_t>> elem)
PcmSupportedFormats & set_bytes_per_sample (std::nullptr_t )
PcmSupportedFormats & clear_bytes_per_sample ()
PcmSupportedFormats & set_valid_bits_per_sample (::fidl::ObjectView< ::fidl::VectorView<uint8_t>> elem)
PcmSupportedFormats & set_valid_bits_per_sample (std::nullptr_t )
PcmSupportedFormats & clear_valid_bits_per_sample ()
PcmSupportedFormats & set_frame_rates (::fidl::ObjectView< ::fidl::VectorView<uint32_t>> elem)
PcmSupportedFormats & set_frame_rates (std::nullptr_t )
PcmSupportedFormats & clear_frame_rates ()
void PcmSupportedFormats (::fidl::AnyArena & allocator)
void PcmSupportedFormats (::fidl::ObjectView< ::fidl::WireTableFrame< ::fuchsia_hardware_audio::wire::PcmSupportedFormats>> && frame)

This constructor allows a user controlled allocation (not using a Arena).

It should only be used when performance is key.

As soon as the frame is given to the table, it must not be used directly or for another table.

void ~PcmSupportedFormats ()

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

Friends

class WireTableBaseBuilder
class WireTableBaseBuilder