use mpris::PlayerFinder; use std::io::Result; use crate::Track; use super::LyricsSource; pub struct Mpris; impl Mpris { pub fn new() -> Self { Mpris } } impl LyricsSource for Mpris { fn name(&self) -> String { "mpris".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(()) } }