template <>

class NaturalSyncClientImpl

Defined at line 7453 of file fidling/gen/sdk/fidl/fuchsia.media/fuchsia.media/cpp/fidl/fuchsia.media/cpp/natural_messaging.h

Public Methods

::fidl::Result< ::fuchsia_media::AudioCapturer::DiscardAllPackets> DiscardAllPackets ()
::fidl::Result< ::fuchsia_media::AudioCapturer::CaptureAt> CaptureAt (const ::fidl::Request< ::fuchsia_media::AudioCapturer::CaptureAt> & request)

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

input to capture into.

::fidl::Result< ::fuchsia_media::AudioCapturer::StopAsyncCapture> StopAsyncCapture ()

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

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

::fidl::Result< ::fuchsia_media::AudioCapturer::GetReferenceClock> GetReferenceClock ()

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.

::fidl::Result< ::fuchsia_media::AudioCapturer::GetStreamType> GetStreamType ()

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.

::fit::result< ::fidl::OneWayError> AddPayloadBuffer (::fidl::Request< ::fuchsia_media::AudioCapturer::AddPayloadBuffer> request)

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.

::fit::result< ::fidl::OneWayError> RemovePayloadBuffer (const ::fidl::Request< ::fuchsia_media::AudioCapturer::RemovePayloadBuffer> & request)

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.

::fit::result< ::fidl::OneWayError> ReleasePacket (const ::fidl::Request< ::fuchsia_media::AudioCapturer::ReleasePacket> & request)

Releases payload memory associated with a packet previously delivered

via `OnPacketProduced`.

::fit::result< ::fidl::OneWayError> DiscardAllPacketsNoReply ()
::fit::result< ::fidl::OneWayError> SetPcmStreamType (const ::fidl::Request< ::fuchsia_media::AudioCapturer::SetPcmStreamType> & request)

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.

::fit::result< ::fidl::OneWayError> StartAsyncCapture (const ::fidl::Request< ::fuchsia_media::AudioCapturer::StartAsyncCapture> & request)

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.

::fit::result< ::fidl::OneWayError> StopAsyncCaptureNoReply ()
::fit::result< ::fidl::OneWayError> BindGainControl (::fidl::Request< ::fuchsia_media::AudioCapturer::BindGainControl> request)

Binds to the gain control for this AudioCapturer.

::fit::result< ::fidl::OneWayError> SetReferenceClock (::fidl::Request< ::fuchsia_media::AudioCapturer::SetReferenceClock> request)

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.

::fit::result< ::fidl::OneWayError> SetUsage (const ::fidl::Request< ::fuchsia_media::AudioCapturer::SetUsage> & request)

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.

::fit::result< ::fidl::OneWayError> SetUsage2 (const ::fidl::Request< ::fuchsia_media::AudioCapturer::SetUsage2> & request)

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.