diff options
| author | Yuval Adam <_@yuv.al> | 2024-05-31 14:59:25 +0200 |
|---|---|---|
| committer | Yuval Adam <_@yuv.al> | 2024-05-31 14:59:25 +0200 |
| commit | 4a4c5b9174cf0182d4eb755f5d97ca432e5960ca (patch) | |
| tree | e0d49598fa09ed0ad859b9afb95ea4b88e51d04f /src/audio/mod.rs | |
| parent | 10976b7bdfcdb57724d9e2b1dedd2c172b0b5973 (diff) | |
Add multiple backend support
Diffstat (limited to 'src/audio/mod.rs')
| -rw-r--r-- | src/audio/mod.rs | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/audio/mod.rs b/src/audio/mod.rs new file mode 100644 index 0000000..7fca1a7 --- /dev/null +++ b/src/audio/mod.rs @@ -0,0 +1,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), + } + } +} |
