pub struct AudioCapturerSynchronousProxy { /* private fields */ }
Implementations§
Source§impl AudioCapturerSynchronousProxy
impl AudioCapturerSynchronousProxy
pub fn new(channel: Channel) -> Self
pub fn into_channel(self) -> Channel
Sourcepub fn wait_for_event(
&self,
deadline: MonotonicInstant,
) -> Result<AudioCapturerEvent, Error>
pub fn wait_for_event( &self, deadline: MonotonicInstant, ) -> Result<AudioCapturerEvent, Error>
Waits until an event arrives and returns it. It is safe for other threads to make concurrent requests while waiting for an event.
Sourcepub fn add_payload_buffer(
&self,
id: u32,
payload_buffer: Vmo,
) -> Result<(), Error>
pub fn add_payload_buffer( &self, id: u32, payload_buffer: Vmo, ) -> Result<(), Error>
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.
Sourcepub fn remove_payload_buffer(&self, id: u32) -> Result<(), Error>
pub fn remove_payload_buffer(&self, id: u32) -> Result<(), Error>
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.
Sourcepub fn release_packet(&self, packet: &StreamPacket) -> Result<(), Error>
pub fn release_packet(&self, packet: &StreamPacket) -> Result<(), Error>
Releases payload memory associated with a packet previously delivered
via OnPacketProduced
.
pub fn discard_all_packets( &self, ___deadline: MonotonicInstant, ) -> Result<(), Error>
pub fn discard_all_packets_no_reply(&self) -> Result<(), Error>
Sourcepub fn set_pcm_stream_type(
&self,
stream_type: &AudioStreamType,
) -> Result<(), Error>
pub fn set_pcm_stream_type( &self, stream_type: &AudioStreamType, ) -> Result<(), Error>
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.
Sourcepub fn capture_at(
&self,
payload_buffer_id: u32,
payload_offset: u32,
frames: u32,
___deadline: MonotonicInstant,
) -> Result<StreamPacket, Error>
pub fn capture_at( &self, payload_buffer_id: u32, payload_offset: u32, frames: u32, ___deadline: MonotonicInstant, ) -> Result<StreamPacket, Error>
Explicitly specifies a region of the shared payload buffer for the audio input to capture into.
Sourcepub fn start_async_capture(&self, frames_per_packet: u32) -> Result<(), Error>
pub fn start_async_capture(&self, frames_per_packet: u32) -> Result<(), Error>
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.
Sourcepub fn stop_async_capture(
&self,
___deadline: MonotonicInstant,
) -> Result<(), Error>
pub fn stop_async_capture( &self, ___deadline: MonotonicInstant, ) -> Result<(), Error>
Stops capturing in ‘async’ capture mode and (optionally) deliver a callback that may be used by the client if explicit synchronization is needed.
pub fn stop_async_capture_no_reply(&self) -> Result<(), Error>
Sourcepub fn bind_gain_control(
&self,
gain_control_request: ServerEnd<GainControlMarker>,
) -> Result<(), Error>
pub fn bind_gain_control( &self, gain_control_request: ServerEnd<GainControlMarker>, ) -> Result<(), Error>
Binds to the gain control for this AudioCapturer.
Sourcepub fn get_reference_clock(
&self,
___deadline: MonotonicInstant,
) -> Result<Clock, Error>
pub fn get_reference_clock( &self, ___deadline: MonotonicInstant, ) -> Result<Clock, Error>
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.
Sourcepub fn set_reference_clock(
&self,
reference_clock: Option<Clock>,
) -> Result<(), Error>
pub fn set_reference_clock( &self, reference_clock: Option<Clock>, ) -> Result<(), Error>
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.
Sourcepub fn set_usage(&self, usage: AudioCaptureUsage) -> Result<(), Error>
pub fn set_usage(&self, usage: AudioCaptureUsage) -> Result<(), Error>
Sets the usage of the capture stream. This may be changed on the fly, but packets in flight may be affected by the new usage. By default the Capturer is created with the FOREGROUND usage.
Sourcepub fn get_stream_type(
&self,
___deadline: MonotonicInstant,
) -> Result<StreamType, Error>
pub fn get_stream_type( &self, ___deadline: MonotonicInstant, ) -> Result<StreamType, Error>
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.
Trait Implementations§
Source§impl SynchronousProxy for AudioCapturerSynchronousProxy
impl SynchronousProxy for AudioCapturerSynchronousProxy
Source§type Proxy = AudioCapturerProxy
type Proxy = AudioCapturerProxy
Source§type Protocol = AudioCapturerMarker
type Protocol = AudioCapturerMarker
Proxy
controls.