From 040b91a7a5b085f8aa0bec3580bf7d68450e6fc9 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Sat, 16 Mar 2024 11:01:41 +0100 Subject: Add linux config --- src/sources/dbus.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/sources/dbus.rs (limited to 'src/sources/dbus.rs') diff --git a/src/sources/dbus.rs b/src/sources/dbus.rs new file mode 100644 index 0000000..57c5853 --- /dev/null +++ b/src/sources/dbus.rs @@ -0,0 +1,48 @@ +use std::io::Result; +use mpris::PlayerFinder; + +use crate::Track; + +use super::LyricsSource; + +pub struct Dbus; + +impl Dbus { + pub fn new() -> Self { + Dbus + } +} + +impl LyricsSource for Dbus { + + fn name(&self) -> String { + "dbus".to_string() + } + + fn current_track(&self) -> Option { + let player = PlayerFinder::new().ok()? + .find_active().ok()?; + + let metadata = player.get_metadata().ok()?; + let name = metadata.title()?.to_string(); + let artists = metadata.artists()?; + let artist = artists.get(0)?.to_string(); + + Some(Track { + name, + artist + }) + } + + fn disable(&self) -> Result<()> { + Ok(()) + } + + fn enable(&self) -> Result<()> { + Ok(()) + } + + fn reset(&self) -> Result<()> { + Ok(()) + } +} -- cgit