class AudioDeviceRegistry

Defined at line 34 of file ../../src/media/audio/services/device_registry/audio_device_registry.h

This singleton coordinates device detection, serves the outgoing FIDL, and maintains lists of

pending, active and unhealthy Devices. The object should live for the duration of the service.

Public Methods

void AudioDeviceRegistry (std::shared_ptr<FidlThread> server_thread)

Defined at line 31 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

void ~AudioDeviceRegistry ()

Defined at line 37 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

zx_status_t StartDeviceDetection ()

Kick off device-detection. After AddDevice, the device auto-initializes and then calls one of

DeviceIsReady, DeviceHasError or DeviceIsRemoved.

Defined at line 39 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

const std::unordered_set<std::shared_ptr<Device>> & devices ()

Device support

The set of active (successfully initialized) devices.

Defined at line 49 of file ../../src/media/audio/services/device_registry/audio_device_registry.h

const std::unordered_set<std::shared_ptr<Device>> & unhealthy_devices ()

The set of devices that encountered an error. A device should never be in both sets.

Defined at line 51 of file ../../src/media/audio/services/device_registry/audio_device_registry.h

void InitialDeviceDetectionComplete ()

The DeviceDetector has notified us of any devices that existed when device detection began.

(It will continue to notify us if additional devices are detected.)

These initially-detected devices might still be in the initialization process, but if not, then

notify all Registry servers that they may begin responding to WatchDevicesAdded calls.

Defined at line 86 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

zx_status_t RegisterAndServeOutgoing ()

Defined at line 237 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

void AddDevice (const std::shared_ptr<Device> & initializing_device)

Add a newly-constructed Device object to our "initializing" list.

Defined at line 73 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::pair<DevicePresence, std::shared_ptr<Device>> FindDeviceByTokenId (TokenId token_id)

Defined at line 196 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

bool ClaimDeviceForControl (const std::shared_ptr<Device> & device, std::shared_ptr<ControlNotify> notify)

Defined at line 221 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

void DeviceIsReady (std::shared_ptr<Device> ready_device)

A device has completed initialization and can be moved into the set of "ready" devices.

If this was an initially-detected device, then check whether we can now allow Registry servers to

respond to WatchDevicesAdded calls.

Defined at line 98 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

void DeviceHasError (std::shared_ptr<Device> device_with_error)

Defined at line 152 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

void DeviceIsRemoved (std::shared_ptr<Device> device_to_remove)

Entirely remove the device, including from the unhealthy list.

Defined at line 174 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::shared_ptr<ProviderServer> CreateProviderServer (fidl::ServerEnd<fuchsia_audio_device::Provider> server_end)

Provider support

Defined at line 330 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::shared_ptr<RegistryServer> CreateRegistryServer (fidl::ServerEnd<fuchsia_audio_device::Registry> server_end)

Registry support

Defined at line 288 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::shared_ptr<ControlCreatorServer> CreateControlCreatorServer (fidl::ServerEnd<fuchsia_audio_device::ControlCreator> server_end)

ControlCreator support

Defined at line 336 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::shared_ptr<ObserverServer> CreateObserverServer (fidl::ServerEnd<fuchsia_audio_device::Observer> server_end, const std::shared_ptr<Device> & observed_device)

Observer support

Defined at line 305 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::shared_ptr<ControlServer> CreateControlServer (fidl::ServerEnd<fuchsia_audio_device::Control> server_end, const std::shared_ptr<Device> & device_to_control)

Control support

Defined at line 314 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

std::shared_ptr<RingBufferServer> CreateRingBufferServer (fidl::ServerEnd<fuchsia_audio_device::RingBuffer> server_end, const std::shared_ptr<ControlServer> & parent, const std::shared_ptr<Device> & device_to_control, ElementId element_id)

RingBuffer support

Defined at line 342 of file ../../src/media/audio/services/device_registry/audio_device_registry.cc

Enumerations

enum DevicePresence
Name Value
Unknown 0
Active 1
Error 2

Defined at line 58 of file ../../src/media/audio/services/device_registry/audio_device_registry.h