class VirtualAudioDevice

Defined at line 37 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.h

Controller for a `VirtualAudioDriver`.

Each instance of this class represents two objects:

1. A virtual audio device in the device tree, represented by a `VirtualAudioDriver` object.

This device appears under `/dev/class/audio-{input,output}`, `/dev/class/dai`, or

`/dev/class/codec`.

2. A FIDL channel (`fuchsia.virtualaudio.Device`) which controls and monitors the device.

The device lives until the controlling FIDL channel is closed or the device host process decides

to remove the `VirtualAudioDriver`.

Public Methods

fit::result<fuchsia_virtualaudio::Error, std::shared_ptr<VirtualAudioDevice>> Create (const fuchsia_virtualaudio::Configuration & cfg, fidl::ServerEnd<fuchsia_virtualaudio::Device> server, zx_device_t * dev_node, fit::closure on_shutdown)

`on_shutdown` called when FIDL server and driver have completely shutdown.

Defined at line 19 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

std::optional<bool> is_input ()

Defined at line 46 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.h

void PostToDispatcher (fit::closure task_to_post)

Executes the given task on the FIDL channel's main dispatcher thread.

Used to deliver callbacks or events from the driver execution domain.

Defined at line 100 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void ShutdownAsync ()

Shuts down the FIDL server and the driver.

Defined at line 108 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void GetFormat (GetFormatCompleter::Sync & completer)

Implementation of virtualaudio.Device.

Event triggers (e.g. NotifySetFormat) may be called from any thread.

Defined at line 137 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void NotifySetFormat (uint32_t frames_per_second, uint32_t sample_format, uint32_t num_channels, zx_duration_t external_delay)

Deliver SetFormat notification on binding's thread, if binding is valid.

Defined at line 155 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void GetGain (GetGainCompleter::Sync & completer)

Defined at line 172 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void NotifySetGain (bool current_mute, bool current_agc, float current_gain_db)

Defined at line 188 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void GetBuffer (GetBufferCompleter::Sync & completer)

Defined at line 202 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void NotifyBufferCreated (zx::vmo ring_buffer_vmo, uint32_t num_ring_buffer_frames, uint32_t notifications_per_ring)

Defined at line 218 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void SetNotificationFrequency (SetNotificationFrequencyRequestView request, SetNotificationFrequencyCompleter::Sync & completer)

Defined at line 236 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void NotifyStart (zx_time_t start_time)

Defined at line 254 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void NotifyStop (zx_time_t stop_time, uint32_t ring_buffer_position)

Defined at line 267 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void GetPosition (GetPositionCompleter::Sync & completer)

Defined at line 281 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void NotifyPosition (zx_time_t monotonic_time, uint32_t ring_buffer_position)

Defined at line 297 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void ChangePlugState (ChangePlugStateRequestView request, ChangePlugStateCompleter::Sync & completer)

Defined at line 311 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void AdjustClockRate (AdjustClockRateRequestView request, AdjustClockRateCompleter::Sync & completer)

Defined at line 328 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void VirtualAudioDevice (std::optional<bool> is_input, fit::closure on_shutdown)

Public for std::make_shared. Use Create, not this ctor.

Defined at line 88 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc

void ~VirtualAudioDevice ()

Defined at line 91 of file ../../src/media/audio/drivers/virtual-audio-legacy/virtual-audio-device.cc