summaryrefslogtreecommitdiff
path: root/src/audio/mod.rs
blob: 6d2dda33730e6eb64ef12ad7ac17d910cc32e23f (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
use tokio::sync::mpsc;

mod mpv;
mod rodio;

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

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

impl AudioBackends {
    pub async fn play(&self, url: &str, tx: mpsc::UnboundedSender<String>) {
        match self {
            AudioBackends::Mpv(m) => m.play(url, tx).await,
            AudioBackends::Rodio(r) => r.play(url, tx).await,
        }
    }
}