class AudioDeviceManager
Defined at line 34 of file ../../src/media/audio/audio_core/audio_device_manager.h
Public Methods
void AudioDeviceManager (ThreadingModel & threading_model, std::unique_ptr<PlugDetector> plug_detector, LinkMatrix & link_matrix, ProcessConfig & process_config, std::shared_ptr<AudioCoreClockFactory> clock_factory, DeviceRouter & device_router, EffectsLoaderV2 * effects_loader_v2)
Defined at line 24 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void ~AudioDeviceManager ()
Defined at line 38 of file ../../src/media/audio/audio_core/audio_device_manager.cc
fidl::InterfaceRequestHandler<fuchsia::media::AudioDeviceEnumerator> GetFidlRequestHandler ()
Defined at line 42 of file ../../src/media/audio/audio_core/audio_device_manager.h
zx_status_t Init ()
Configure this admin singleton object to manage audio device instances.
Defined at line 44 of file ../../src/media/audio/audio_core/audio_device_manager.cc
ThreadingModel & threading_model ()
Defined at line 46 of file ../../src/media/audio/audio_core/audio_device_manager.h
void Shutdown ()
Blocking call. Called by the service, once, when it is time to shutdown the service
implementation. While this function is blocking, it must never block for long. Our process is
going away; this is our last chance to perform a clean shutdown. If an unclean shutdown must
be performed in order to implode in a timely fashion, so be it.
Shutdown must be idempotent and safe to call from this object's destructor (although this
should never be necessary). If a shutdown called from this destructor must do real work,
something has gone Very Seriously Wrong.
Defined at line 59 of file ../../src/media/audio/audio_core/audio_device_manager.cc
fpromise::promise<void, fuchsia::media::audio::UpdateEffectError> UpdateEffect (const std::string & instance_name, const std::string & message, bool persist)
Sends an update message to each effect with the name 'instance_name' across all devices.
If 'persist' is true, the effect update is persisted and applied to new devices as they are
plugged. Only the latest update will be persisted for each 'instance_name'.
Returns UpdateEffectError::INVALID_CONFIG if any effect matching 'instance_name' is found, but
rejects 'message'. Returns UpdateEffectError::NOT_FOUND if no effect is found across any
device. Returns success if at least one effect named 'instance_name' has accepted 'message'
without any other effects matching 'effect_name' rejecting the 'message'.
Defined at line 77 of file ../../src/media/audio/audio_core/audio_device_manager.cc
fpromise::promise<void, fuchsia::media::audio::UpdateEffectError> UpdateDeviceEffect (const std::string device_id, const std::string & instance_name, const std::string & message)
Sends an update message to the effect specified by 'instance_name' for the device specified by
'device_id'.
Return values match those of 'UpdateEffect' above, with the addition of an
UpdateEffectError::NOT_FOUND if the device specified by 'device_id' is not found.
Defined at line 108 of file ../../src/media/audio/audio_core/audio_device_manager.cc
fpromise::promise<void, zx_status_t> UpdatePipelineConfig (const std::string device_id, const PipelineConfig & config, const VolumeCurve & volume_curve)
Defined at line 136 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void AddDevice (const std::shared_ptr<AudioDevice> & device)
|media::audio::DeviceRegistry|
Defined at line 177 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void ActivateDevice (const std::shared_ptr<AudioDevice> & device)
Defined at line 193 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void RemoveDevice (const std::shared_ptr<AudioDevice> & device)
Defined at line 261 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void OnPlugStateChanged (const std::shared_ptr<AudioDevice> & device, bool plugged, zx::time plug_time)
Defined at line 285 of file ../../src/media/audio/audio_core/audio_device_manager.cc
std::vector<fuchsia::media::AudioDeviceInfo> GetDeviceInfos ()
Defined at line 318 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void GetDevices (GetDevicesCallback cbk)
|fuchsia::media::AudioDeviceEnumerator|
Defined at line 334 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void GetDeviceGain (uint64_t device_token, GetDeviceGainCallback cbk)
Defined at line 336 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void SetDeviceGain (uint64_t device_token, fuchsia::media::AudioGainInfo gain_info, fuchsia::media::AudioGainValidFlags )
Defined at line 351 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void AddDeviceByChannel (std::string device_name, bool is_input, fidl::InterfaceHandle<fuchsia::hardware::audio::StreamConfig> stream_config)
The entry point from AudioDeviceEnumerator FIDL method
Defined at line 472 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void AddDeviceFromDevFs (const std::string & device_name, bool is_input, fidl::InterfaceHandle<fuchsia::hardware::audio::StreamConfig> stream_config)
The entry point from PlugDetector device-watcher (devfs)
Defined at line 483 of file ../../src/media/audio/audio_core/audio_device_manager.cc
void AddDeviceInternal (const std::string & device_name, bool is_input, fidl::InterfaceHandle<fuchsia::hardware::audio::StreamConfig> stream_config)
The common code, once these parallel device-discovery streams come together.
Defined at line 493 of file ../../src/media/audio/audio_core/audio_device_manager.cc