pub mod local;
pub mod remote;
use derive_more::{Display, From, Into};
use medea_client_api_proto as proto;
use crate::{platform, utils::Caused};
#[derive(Caused, Clone, Debug, Display, From, Into)]
#[cause(error = platform::Error)]
#[display("Failed to calculate audio track level")]
pub struct AudioLevelError(platform::Error);
#[derive(Caused, Clone, Debug, Display, From, Into)]
#[cause(error = platform::Error)]
#[display("Failed to access audio processing of a track")]
pub struct AudioProcessingError(platform::Error);
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
pub enum MediaStreamTrackState {
Live,
Ended,
}
#[derive(Clone, Copy, Debug, Eq, PartialEq)]
#[repr(u8)]
pub enum MediaSourceKind {
Device = 0,
Display = 1,
}
impl From<MediaSourceKind> for proto::MediaSourceKind {
fn from(val: MediaSourceKind) -> Self {
match val {
MediaSourceKind::Device => Self::Device,
MediaSourceKind::Display => Self::Display,
}
}
}
impl From<proto::MediaSourceKind> for MediaSourceKind {
fn from(val: proto::MediaSourceKind) -> Self {
match val {
proto::MediaSourceKind::Device => Self::Device,
proto::MediaSourceKind::Display => Self::Display,
}
}
}