use std::io::Result; // #[cfg(target_os = "macos")] // mod applie_music; // #[cfg(target_os = "macos")] // mod spotify; // #[cfg(not(target_os = "macos"))] // mod rhythmbox; // #[cfg(not(target_os = "macos"))] // mod quod_libe; // #[cfg(not(target_os = "macos"))] // mod strawberry; // #[cfg(not(target_os = "macos"))] // mod tauon; // #[cfg(target_os = "macos")] // use apple_music::AppleMusic; // #[cfg(target_os = "macos")] // use spotify::Spotify; // #[cfg(not(target_os = "macos"))] // use rhythmbox::Rhythmbox; // #[cfg(not(target_os = "macos"))] // use quod_libet::QuodLibet; // #[cfg(not(target_os = "macos"))] // use strawberry::Strawberry; // #[cfg(not(target_os = "macos"))] // use tauon::Tauon; use crate::Track; pub trait LyricsSource { fn name(&self) -> String; fn current_track(&self) -> Option; fn disable(&self) -> Result<()>; fn enable(&self) -> Result<()>; fn reset(&self) -> Result<()>; } pub fn list() -> Result<()> { Ok(()) } pub fn enable(source_name: String) -> Result<()> { println!("Enabling {}", source_name); Ok(()) } pub fn disable(source_name: String) -> Result<()> { println!("Disabling {}", source_name); Ok(()) } pub fn reset(source_name: String) -> Result<()> { println!("Reset {}", source_name); Ok(()) } pub fn get_track() -> Option { return None } pub fn available_sources() -> Vec> { let mut sources: Vec> = Vec::new(); #[cfg(target_os = "macos")] { // sources.push(Box::new(AppleMusic::new())); // sources.push(Box::new(Spotify::new())); } #[cfg(not(target_os = "macos"))] { // sources.push(Box::new(Rhythmbox::new())); // sources.push(Box::new(QuodLibet::new())); // sources.push(Box::new(Strawberry::new())); // sources.push(Box::new(Tauon::new())); } sources }