1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#[derive(Clone, Copy, Debug)]
pub enum MediaDeviceKind {
    AudioInput,
    AudioOutput,
    VideoInput,
}

#[derive(Clone, Debug)]
pub struct MediaDeviceInfo {
    pub device_id: String,
    pub kind: MediaDeviceKind,
    pub label: String,
}

pub trait MediaDeviceMonitor {
    fn enumerate_devices(&self) -> Result<Vec<MediaDeviceInfo>, ()>;
}