summaryrefslogtreecommitdiff
path: root/src/audio/mod.rs
blob: 7fca1a761f34f69d834206e9517c39d8a6e966cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
mod mpv;
mod rodio;

pub trait AudioBackend {
    fn play(&self, url: &str);
}

#[allow(dead_code)]
pub enum AudioBackends {
    Mpv(mpv::Mpv),
    Rodio(rodio::Rodio),
}

pub fn get_backend() -> AudioBackends {
    AudioBackends::Mpv(mpv::Mpv {})
}

impl AudioBackend for AudioBackends {
    fn play(&self, url: &str) {
        match self {
            AudioBackends::Mpv(m) => m.play(url),
            AudioBackends::Rodio(r) => r.play(url),
        }
    }
}