Skip to main content

Control

Trait Control 

Source
pub trait Control: Send {
    // Required methods
    fn connect(&mut self, id: PeerId, supported_codecs: &[CodecId]);
    fn disconnect(&mut self, id: PeerId);
    fn start(
        &mut self,
        id: PeerId,
        connection: Connection,
        codec: CodecId,
    ) -> Result<(), Error>;
    fn stop(&mut self, id: PeerId) -> Result<(), Error>;
    fn take_events(&self) -> BoxStream<'static, ControlEvent>;
    fn failed_request(&self, request: ControlEvent, error: Error);
}

Required Methods§

Source

fn connect(&mut self, id: PeerId, supported_codecs: &[CodecId])

Send to indicate when connected to a peer. supported_codecs indicates the set of codecs which are communicated from the peer. Depending on the audio control implementation, this may add a (stopped) media device. Audio control implementations can request audio be started for peers that are connected.

Source

fn disconnect(&mut self, id: PeerId)

Send to indicate that a peer has been disconnected. This shall tear down any audio path set up for the peer and send a ControlEvent::Stopped for each. This shall be idempotent (calling disconnect on a disconnected PeerId does nothing)

Source

fn start( &mut self, id: PeerId, connection: Connection, codec: CodecId, ) -> Result<(), Error>

Request to start sending audio to the peer. If the request succeeds Ok(()) will be returned, but audio may not be started until a ControlEvent::Started event is produced in the events.

Source

fn stop(&mut self, id: PeerId) -> Result<(), Error>

Request to stop the audio to a peer. If the Audio is not started, an Err(Error::NotStarted) will be returned. If the requests succeeds Ok(()) will be returned but audio may not be stopped until a ControlEvent::Stopped is produced in the events.

Source

fn take_events(&self) -> BoxStream<'static, ControlEvent>

Get a stream of the events produced by this audio control. May panic if the event stream has already been taken.

Source

fn failed_request(&self, request: ControlEvent, error: Error)

Respond with failure to a request from the event stream. request should be the request that failed. If a request was not made by this audio control the failure shall be ignored.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§