From 4a4c5b9174cf0182d4eb755f5d97ca432e5960ca Mon Sep 17 00:00:00 2001 From: Yuval Adam <_@yuv.al> Date: Fri, 31 May 2024 14:59:25 +0200 Subject: Add multiple backend support --- src/audio/mod.rs | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/audio/mod.rs (limited to 'src/audio/mod.rs') 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), + } + } +} -- cgit v1.3.1