template <>

class WireServer

Defined at line 18491 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_messaging.h

Pure-virtual interface to be implemented by a server.

This interface uses typed channels (i.e. |::fidl::ClientEnd

<

::fuchsia_media::AudioCapturer>|

and |::fidl::ServerEnd

<

::fuchsia_media::AudioCapturer>|).

Public Methods

void AddPayloadBuffer (::fuchsia_media::wire::StreamBufferSetAddPayloadBufferRequest * request, AddPayloadBufferCompleter::Sync & completer)

Adds a payload buffer to the current buffer set associated with the

connection. A `StreamPacket` struct reference a payload buffer in the

current set by ID using the `StreamPacket.payload_buffer_id` field.

A buffer with ID `id` must not be in the current set when this method is

invoked, otherwise the service will close the connection.

void RemovePayloadBuffer (::fuchsia_media::wire::StreamBufferSetRemovePayloadBufferRequest * request, RemovePayloadBufferCompleter::Sync & completer)

Removes a payload buffer from the current buffer set associated with the

connection.

A buffer with ID `id` must exist in the current set when this method is

invoked, otherwise the service will will close the connection.

void ReleasePacket (::fuchsia_media::wire::StreamSourceReleasePacketRequest * request, ReleasePacketCompleter::Sync & completer)

Releases payload memory associated with a packet previously delivered

via `OnPacketProduced`.

void DiscardAllPackets (DiscardAllPacketsCompleter::Sync & completer)
void DiscardAllPacketsNoReply (DiscardAllPacketsNoReplyCompleter::Sync & completer)
void SetPcmStreamType (::fuchsia_media::wire::AudioCapturerSetPcmStreamTypeRequest * request, SetPcmStreamTypeCompleter::Sync & completer)

Sets the stream type of the stream to be delivered. Causes the source

material to be reformatted/resampled if needed in order to produce the

requested stream type. Must be called before the payload buffer is

established.

void CaptureAt (::fuchsia_media::wire::AudioCapturerCaptureAtRequest * request, CaptureAtCompleter::Sync & completer)

Explicitly specifies a region of the shared payload buffer for the audio

input to capture into.

void StartAsyncCapture (::fuchsia_media::wire::AudioCapturerStartAsyncCaptureRequest * request, StartAsyncCaptureCompleter::Sync & completer)

Places the AudioCapturer into 'async' capture mode and begin to produce

packets of exactly 'frames_per_packet' number of frames each. The

OnPacketProduced event (of StreamSink) will be used to inform the client

of produced packets.

void StopAsyncCapture (StopAsyncCaptureCompleter::Sync & completer)

Stops capturing in 'async' capture mode and (optionally) deliver a callback

that may be used by the client if explicit synchronization is needed.

void StopAsyncCaptureNoReply (StopAsyncCaptureNoReplyCompleter::Sync & completer)
void BindGainControl (::fuchsia_media::wire::AudioCapturerBindGainControlRequest * request, BindGainControlCompleter::Sync & completer)

Binds to the gain control for this AudioCapturer.

void GetReferenceClock (GetReferenceClockCompleter::Sync & completer)

Retrieves the stream's reference clock. The returned handle will have READ, DUPLICATE

and TRANSFER rights, and will refer to a zx::clock that is MONOTONIC and CONTINUOUS.

void SetReferenceClock (::fuchsia_media::wire::AudioCapturerSetReferenceClockRequest * request, SetReferenceClockCompleter::Sync & completer)

Sets the reference clock that controls this capturer's playback rate. If the input

parameter is a valid zx::clock, it must have READ, DUPLICATE, TRANSFER rights and

refer to a clock that is both MONOTONIC and CONTINUOUS. If instead an invalid clock

is passed (such as the uninitialized `zx::clock()`), this indicates that the stream

will use a 'flexible' clock generated by AudioCore that tracks the audio device.

`SetReferenceClock` cannot be called after the capturer payload buffer has been

added. It also cannot be called a second time (even before capture).

If the client wants a reference clock that is initially `CLOCK_MONOTONIC` but may

diverge at some later time, they should create a clone of the monotonic clock, set

this as the stream's reference clock, then rate-adjust it subsequently as needed.

void SetUsage (::fuchsia_media::wire::AudioCapturerSetUsageRequest * request, SetUsageCompleter::Sync & completer)

Sets the usage of the capture stream. This may be changed on the fly, but packets in flight

may be affected. By default, Capturers are created with the FOREGROUND usage.

void SetUsage2 (::fuchsia_media::wire::AudioCapturerSetUsage2Request * request, SetUsage2Completer::Sync & completer)

Sets the usage of the capture stream. This may be changed on the fly, but this may affect

packets in flight. By default, Capturers are created with the FOREGROUND usage.

void GetStreamType (GetStreamTypeCompleter::Sync & completer)

Gets the currently configured stream type. Note: for an AudioCapturer

which was just created and has not yet had its stream type explicitly

set, this will retrieve the stream type -- at the time the AudioCapturer

was created -- of the source (input or looped-back output) to which the

AudioCapturer is bound. Even if this matches the client's desired format,

`SetPcmStreamType` must still be called.

void WireServer ()

Defined at line 18494 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_messaging.h

Handler bind_handler (async_dispatcher_t * dispatcher)

|bind_handler| returns a handler that binds incoming connections to this

server implementation.

The returned handler borrows the server instance.

The server must outlive the provided |dispatcher|. Only after

the dispatcher is shutdown will it be safe to destroy the servers.

The server should not be moved.

void ~WireServer ()

Defined at line 18495 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/wire_messaging.h