summaryrefslogtreecommitdiff
path: root/src/audio/mod.rs
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2024-05-31 14:59:25 +0200
committerYuval Adam <_@yuv.al>2024-05-31 14:59:25 +0200
commit4a4c5b9174cf0182d4eb755f5d97ca432e5960ca (patch)
treee0d49598fa09ed0ad859b9afb95ea4b88e51d04f /src/audio/mod.rs
parent10976b7bdfcdb57724d9e2b1dedd2c172b0b5973 (diff)
Add multiple backend support
Diffstat (limited to 'src/audio/mod.rs')
-rw-r--r--src/audio/mod.rs25
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),
+ }
+ }
+}