diff options
Diffstat (limited to 'src/sources/mod.rs')
| -rw-r--r-- | src/sources/mod.rs | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/sources/mod.rs b/src/sources/mod.rs new file mode 100644 index 0000000..fb7af8f --- /dev/null +++ b/src/sources/mod.rs @@ -0,0 +1,82 @@ +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<Track>; + + 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<Track> { + return None +} + +pub fn available_sources() -> Vec<Box<dyn LyricsSource>> { + let mut sources: Vec<Box<dyn LyricsSource>> = 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 +} |