class ControlServer
Defined at line 30 of file ../../src/media/audio/services/device_registry/control_server.h
FIDL server for fuchsia_audio_device/Control. Claims a Device and makes "mutable" calls on it.
Public Methods
std::shared_ptr<ControlServer> Create (std::shared_ptr<const FidlThread>thread,fidl::ServerEnd<fuchsia_audio_device::Control>server_end,std::shared_ptr<AudioDeviceRegistry>parent,std::shared_ptr<Device>device)
static
Defined at line 38 of file ../../src/media/audio/services/device_registry/control_server.cc
void ~ControlServer ()
Defined at line 58 of file ../../src/media/audio/services/device_registry/control_server.cc
void OnShutdown (fidl::UnbindInfo info)
Called when the client shuts down first.
Defined at line 67 of file ../../src/media/audio/services/device_registry/control_server.cc
void DeviceDroppedRingBuffer (ElementId element_id)
Called when Device drops its RingBuffer FIDL. Tell RingBufferServer and drop our reference.
Defined at line 90 of file ../../src/media/audio/services/device_registry/control_server.cc
bool ControlledDeviceReceivedError ()
Defined at line 103 of file ../../src/media/audio/services/device_registry/control_server.h
void DeviceDroppedPacketStream (ElementId element_id)
Defined at line 103 of file ../../src/media/audio/services/device_registry/control_server.cc
const std::shared_ptr<FidlServerInspectInstance> & inspect ()
Defined at line 105 of file ../../src/media/audio/services/device_registry/control_server.h
void SetInspect (std::shared_ptr<FidlServerInspectInstance> instance)
Defined at line 106 of file ../../src/media/audio/services/device_registry/control_server.h
uint64_t count ()
Static object count, for debugging purposes.
Defined at line 111 of file ../../src/media/audio/services/device_registry/control_server.h
void DeviceIsRemoved ()
ObserverNotify
Defined at line 128 of file ../../src/media/audio/services/device_registry/control_server.cc
void DeviceHasError ()
Defined at line 116 of file ../../src/media/audio/services/device_registry/control_server.cc
void PlugStateIsChanged (const fuchsia_audio_device::PlugState & new_plug_state, zx::time plug_change_time)
This is only here because ControlNotify includes the methods from ObserverNotify. ControlServer
doesn't have a role to play in plug state changes, nor a client hanging-get to complete.
Defined at line 449 of file ../../src/media/audio/services/device_registry/control_server.cc
void TopologyIsChanged (TopologyId topology_id)
Defined at line 881 of file ../../src/media/audio/services/device_registry/control_server.cc
void ElementStateIsChanged (ElementId element_id, fuchsia_hardware_audio_signalprocessing::ElementState element_state)
Defined at line 1015 of file ../../src/media/audio/services/device_registry/control_server.cc
void DelayInfoIsChanged (ElementId element_id, const fuchsia_audio_device::DelayInfo & )
We receive delay values for the first time during the configuration process. Once we have these
values, we can calculate the required ring-buffer size and request the VMO.
Defined at line 456 of file ../../src/media/audio/services/device_registry/control_server.cc
void DaiFormatIsChanged (ElementIdelement_id,const std::optional<fuchsia_hardware_audio::DaiFormat> &dai_format,const std::optional<fuchsia_hardware_audio::CodecFormatInfo> &codec_format_info)
If `dai_format` contains no value, no DaiFormat is set. The Device might be newly-initialized,
or `Reset` may have been called. `SetDaiFormat` must be called.
Defined at line 510 of file ../../src/media/audio/services/device_registry/control_server.cc
void DaiFormatIsNotChanged (ElementIdelement_id,const fuchsia_hardware_audio::DaiFormat &dai_format,fuchsia_audio_device::ControlSetDaiFormatErrorerror)
SetDaiFormat did NOT result in a change to the controlled device's DaiFormat.
Defined at line 550 of file ../../src/media/audio/services/device_registry/control_server.cc
void CodecIsStarted (const zx::time & start_time)
Defined at line 623 of file ../../src/media/audio/services/device_registry/control_server.cc
void CodecIsNotStarted ()
A call to `CodecStart` did not succeed.
Defined at line 640 of file ../../src/media/audio/services/device_registry/control_server.cc
void CodecIsStopped (const zx::time & stop_time)
Defined at line 701 of file ../../src/media/audio/services/device_registry/control_server.cc
void CodecIsNotStopped ()
A call to `CodecStop` did not succeed.
Defined at line 720 of file ../../src/media/audio/services/device_registry/control_server.cc
void DeviceIsReset ()
Defined at line 764 of file ../../src/media/audio/services/device_registry/control_server.cc
void CreateRingBuffer (CreateRingBufferRequest & request, CreateRingBufferCompleter::Sync & completer)
fuchsia.audio.device.Control
Defined at line 164 of file ../../src/media/audio/services/device_registry/control_server.cc
void SetDaiFormat (SetDaiFormatRequest & request, SetDaiFormatCompleter::Sync & completer)
Defined at line 466 of file ../../src/media/audio/services/device_registry/control_server.cc
void Reset (ResetCompleter::Sync & completer)
Defined at line 734 of file ../../src/media/audio/services/device_registry/control_server.cc
void CodecStart (CodecStartCompleter::Sync & completer)
Defined at line 577 of file ../../src/media/audio/services/device_registry/control_server.cc
void CodecStop (CodecStopCompleter::Sync & completer)
Defined at line 654 of file ../../src/media/audio/services/device_registry/control_server.cc
void CreatePacketStream (CreatePacketStreamRequest & request, CreatePacketStreamCompleter::Sync & completer)
Defined at line 304 of file ../../src/media/audio/services/device_registry/control_server.cc
void handle_unknown_method (fidl::UnknownMethodMetadata<fuchsia_audio_device::Control> metadata, fidl::UnknownMethodCompleter::Sync & completer)
We complain but don't close the connection, to accommodate older and newer clients.
Defined at line 1043 of file ../../src/media/audio/services/device_registry/control_server.cc
void GetTopologies (GetTopologiesCompleter::Sync & completer)
fuchsia.hardware.audio.signalprocessing.SignalProcessing support
Defined at line 778 of file ../../src/media/audio/services/device_registry/control_server.cc
void GetElements (GetElementsCompleter::Sync & completer)
Defined at line 905 of file ../../src/media/audio/services/device_registry/control_server.cc
void WatchTopology (WatchTopologyCompleter::Sync & completer)
Defined at line 807 of file ../../src/media/audio/services/device_registry/control_server.cc
void WatchElementState (WatchElementStateRequest & request, WatchElementStateCompleter::Sync & completer)
Defined at line 934 of file ../../src/media/audio/services/device_registry/control_server.cc
void SetTopology (SetTopologyRequest & request, SetTopologyCompleter::Sync & completer)
Defined at line 840 of file ../../src/media/audio/services/device_registry/control_server.cc
void SetElementState (SetElementStateRequest & request, SetElementStateCompleter::Sync & completer)
Defined at line 976 of file ../../src/media/audio/services/device_registry/control_server.cc
void MaybeCompleteWatchTopology ()
Defined at line 889 of file ../../src/media/audio/services/device_registry/control_server.cc
void MaybeCompleteWatchElementState (ElementId element_id)
If we have an outstanding hanging-get and a state-change, respond with the state change.
Defined at line 1025 of file ../../src/media/audio/services/device_registry/control_server.cc
Friends
template <typename ServerTtemplate <typename T> typename FidlServerTtypename ProtocolT>
class BaseFidlServer