class ControlServer

Defined at line 29 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 37 of file ../../src/media/audio/services/device_registry/control_server.cc

void ~ControlServer ()

Defined at line 57 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 66 of file ../../src/media/audio/services/device_registry/control_server.cc

void DeviceHasError ()

Defined at line 100 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 82 of file ../../src/media/audio/services/device_registry/control_server.cc

void DeviceDroppedPacketStream (ElementId element_id)

Defined at line 95 of file ../../src/media/audio/services/device_registry/control_server.cc

bool ControlledDeviceReceivedError ()

Defined at line 102 of file ../../src/media/audio/services/device_registry/control_server.h

const std::shared_ptr<FidlServerInspectInstance> & inspect ()

Defined at line 104 of file ../../src/media/audio/services/device_registry/control_server.h

void SetInspect (std::shared_ptr<FidlServerInspectInstance> instance)

Defined at line 105 of file ../../src/media/audio/services/device_registry/control_server.h

uint64_t count ()

Static object count, for debugging purposes.

Defined at line 110 of file ../../src/media/audio/services/device_registry/control_server.h

void DeviceIsRemoved ()

ObserverNotify

Defined at line 112 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 270 of file ../../src/media/audio/services/device_registry/control_server.cc

void TopologyIsChanged (TopologyId topology_id)

Defined at line 693 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 829 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 277 of file ../../src/media/audio/services/device_registry/control_server.cc

void DaiFormatIsChanged (ElementId element_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 331 of file ../../src/media/audio/services/device_registry/control_server.cc

void DaiFormatIsNotChanged (ElementId element_id, const fuchsia_hardware_audio::DaiFormat & dai_format, fuchsia_audio_device::ControlSetDaiFormatError error)

SetDaiFormat did NOT result in a change to the controlled device's DaiFormat.

Defined at line 367 of file ../../src/media/audio/services/device_registry/control_server.cc

void CodecIsStarted (const zx::time & start_time)

Defined at line 439 of file ../../src/media/audio/services/device_registry/control_server.cc

void CodecIsNotStarted ()

A call to `CodecStart` did not succeed.

Defined at line 454 of file ../../src/media/audio/services/device_registry/control_server.cc

void CodecIsStopped (const zx::time & stop_time)

Defined at line 515 of file ../../src/media/audio/services/device_registry/control_server.cc

void CodecIsNotStopped ()

A call to `CodecStop` did not succeed.

Defined at line 532 of file ../../src/media/audio/services/device_registry/control_server.cc

void DeviceIsReset ()

Defined at line 576 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 141 of file ../../src/media/audio/services/device_registry/control_server.cc

void SetDaiFormat (SetDaiFormatRequest & request, SetDaiFormatCompleter::Sync & completer)

Defined at line 287 of file ../../src/media/audio/services/device_registry/control_server.cc

void Reset (ResetCompleter::Sync & completer)

Defined at line 546 of file ../../src/media/audio/services/device_registry/control_server.cc

void CodecStart (CodecStartCompleter::Sync & completer)

Defined at line 393 of file ../../src/media/audio/services/device_registry/control_server.cc

void CodecStop (CodecStopCompleter::Sync & completer)

Defined at line 468 of file ../../src/media/audio/services/device_registry/control_server.cc

void CreatePacketStream (CreatePacketStreamRequest & request, CreatePacketStreamCompleter::Sync & completer)

Defined at line 856 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 863 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 590 of file ../../src/media/audio/services/device_registry/control_server.cc

void GetElements (GetElementsCompleter::Sync & completer)

Defined at line 717 of file ../../src/media/audio/services/device_registry/control_server.cc

void WatchTopology (WatchTopologyCompleter::Sync & completer)

Defined at line 619 of file ../../src/media/audio/services/device_registry/control_server.cc

void WatchElementState (WatchElementStateRequest & request, WatchElementStateCompleter::Sync & completer)

Defined at line 746 of file ../../src/media/audio/services/device_registry/control_server.cc

void SetTopology (SetTopologyRequest & request, SetTopologyCompleter::Sync & completer)

Defined at line 652 of file ../../src/media/audio/services/device_registry/control_server.cc

void SetElementState (SetElementStateRequest & request, SetElementStateCompleter::Sync & completer)

Defined at line 789 of file ../../src/media/audio/services/device_registry/control_server.cc

void MaybeCompleteWatchTopology ()

Defined at line 701 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 839 of file ../../src/media/audio/services/device_registry/control_server.cc

Friends

template <typename ServerTtemplate <typename T> typename FidlServerTtypename ProtocolT>
class BaseFidlServer