CaptureRequest

Enum CaptureRequest 

Source
pub enum CaptureRequest {
    StartOutputCapture {
        responder: CaptureStartOutputCaptureResponder,
    },
    StopOutputCapture {
        responder: CaptureStopOutputCaptureResponder,
    },
    WaitForQuiet {
        payload: CaptureWaitForQuietRequest,
        responder: CaptureWaitForQuietResponder,
    },
    QueueTriggeredCapture {
        payload: CaptureQueueTriggeredCaptureRequest,
        responder: CaptureQueueTriggeredCaptureResponder,
    },
    WaitForTriggeredCapture {
        responder: CaptureWaitForTriggeredCaptureResponder,
    },
    GetOutputAudio {
        responder: CaptureGetOutputAudioResponder,
    },
#[non_exhaustive]
_UnknownMethod { ordinal: u64, control_handle: CaptureControlHandle, method_type: MethodType, }, }

Variants§

§

StartOutputCapture

Start capturing the outgoing audio for this device.

A virtual output device receives what would have played through the device’s speakers. This method reads from that virtual output device, into an internal buffer.

After calling this method, use StopOutputCapture to stop recording output and then GetOutputAudio to retrieve this captured audio.

  • response error description of failure action to take.
§

StopOutputCapture

Stop capturing the outgoing audio for this device.

This method will succeed even if no output capture has been started.

After calling this method, use GetOutputAudio to retrieve the captured audio from the virtual device’s internal buffer and return it to the client.

  • response error description of failure action to take.
§

WaitForQuiet

Wait for the specified period to elapse without any audio on the output device.

This method waits until zero-filled packets corresponding to the specified quiet period are observed on the virtual output device, and then it returns. This method will only wait up to the specified maximum wait time.

  • request requested_quiet_period_ms duration of quiet period to wait for, in milliseconds.
  • request maximum_wait_time_ms maximum duration to wait for, in milliseconds.
  • response result description of whether the quiet period was observed or not.
  • response error description of failure action to take.
§

QueueTriggeredCapture

Queue an asynchronous audio capture.

This method sets up a triggered audio capture that will begin capturing when it first observes audio on the virtual output device, and will continue either until a maximum capture duration is reached or until the virtual output device observes a configurable quiet period.

This method returns immediately once the capture is queued. A subsequent call to WaitForTriggeredCapture is required to wait for the completion of the operation.

This method is incompatible with StartOutputCapture and StopOutputCapture, and mixing calls in a single test is likely to result in an AudioTestError being raised.

  • request maximum_time_to_wait_for_sound_ms maximum time to wait for non-quiet on output device, in milliseconds.
  • request optional_quiet_before_stopping_ms stop recording after this duration of quiet is observed, in milliseconds.
  • request maximum_capture_duration_ms maximum duration of the recording, in milliseconds.
  • response error description of failure action to take.
§

WaitForTriggeredCapture

Wait for a previously queued audio capture to trigger and record.

This method waits for a previous call to QueueTriggeredCapture to either capture audio or time out. Calling this method without a corresponding call to QueueTriggeredCapture will result in an AudioTestError being returned.

This method is incompatible with StartOutputCapture and StopOutputCapture, and mixing calls in a single test is likely to result in an AudioTestError being raised.

  • response result the result of the completed triggered capture, including whether or not it was triggered.
  • response error description of failure action to take.
§

GetOutputAudio

Extract the captured outgoing audio data through a socket.

The socket is closed once it is fully drained.

User should have first called StartOutputCapture and StopOutputCapture. This method will return the contents of the internal buffer that was populated between the calls to those two methods.

Audio output format is 2-channel 48kHz 16-bit PCM.

  • request audio_reader socket where full captured audio data will be streamed.
  • response error description of failure action to take.
§

#[non_exhaustive]
_UnknownMethod

An interaction was received which does not match any known method.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§ordinal: u64

Ordinal of the method that was called.

§control_handle: CaptureControlHandle
§method_type: MethodType

Implementations§

Trait Implementations§

Source§

impl Debug for CaptureRequest

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.