pub mod constraints;
mod manager;
pub mod track;
use derive_more::Display;
use medea_client_api_proto::MediaType;
#[doc(inline)]
pub use self::{
constraints::{
AudioMediaTracksSettings, AudioTrackConstraints,
DeviceVideoTrackConstraints, DisplayVideoTrackConstraints, FacingMode,
LocalTracksConstraints, MediaStreamSettings,
MultiSourceTracksConstraints, RecvConstraints, TrackConstraints,
VideoSource, VideoTrackConstraints,
},
manager::{
EnumerateDevicesError, EnumerateDisplaysError, GetDisplayMediaError,
GetUserMediaError, HandleDetachedError, InitLocalTracksError,
InvalidOutputAudioDeviceIdError, MediaManager, MediaManagerHandle,
MicVolumeError,
},
track::{remote::MediaDirection, MediaSourceKind, MediaStreamTrackState},
};
#[derive(Clone, Copy, Debug, Display, Eq, PartialEq)]
#[repr(u8)]
pub enum MediaKind {
#[display(fmt = "audio")]
Audio = 0,
#[display(fmt = "video")]
Video = 1,
}
impl MediaKind {
#[must_use]
pub const fn as_str(self) -> &'static str {
match self {
Self::Audio => "audio",
Self::Video => "video",
}
}
}
impl From<&TrackConstraints> for MediaKind {
fn from(media_type: &TrackConstraints) -> Self {
match media_type {
TrackConstraints::Audio(_) => Self::Audio,
TrackConstraints::Video(_) => Self::Video,
}
}
}
impl From<&MediaType> for MediaKind {
fn from(media_type: &MediaType) -> Self {
match media_type {
MediaType::Audio(_) => Self::Audio,
MediaType::Video(_) => Self::Video,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[repr(u8)]
pub enum MediaDeviceKind {
AudioInput = 0,
VideoInput = 1,
AudioOutput = 2,
}