diff --git a/Cargo.toml b/Cargo.toml index bb0746c..5a2fa1e 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,21 +1,21 @@ [package] -name = "dango-core" -version = "0.1.1" +name = "dmp-core" +version = "0.0.0" edition = "2021" license = "AGPL-3.0-only" -description = "A music backend that manages storage, querying, and playback of remote and local songs." -homepage = "https://dangoware.com/dango-music-player" -documentation = "https://docs.rs/dango-core" +description = "Backend crate for the Dango Music Player " +homepage = "" +documentation = "" readme = "README.md" -repository = "https://github.com/Dangoware/dango-music-player" -keywords = ["audio", "music"] -categories = ["multimedia::audio"] +repository = "https://github.com/Dangoware/dmp-core" +keywords = [] +categories = [] [dependencies] -file-format = { version = "0.22.0", features = ["reader-asf", "reader-ebml", "reader-mp4", "reader-rm", "reader-txt", "reader-xml", "serde"] } -lofty = "0.17.1" +file-format = { version = "0.23.0", features = ["reader-asf", "reader-ebml", "reader-mp4", "reader-rm", "reader-txt", "reader-xml", "serde"] } +lofty = "0.18.0" serde = { version = "1.0.191", features = ["derive"] } -toml = "0.7.5" +toml = "0.8.8" walkdir = "2.4.0" chrono = { version = "0.4.31", features = ["serde"] } bincode = { version = "2.0.0-rc.3", features = ["serde"] } @@ -34,3 +34,4 @@ leb128 = "0.2.5" urlencoding = "2.1.3" m3u8-rs = "5.0.5" thiserror = "1.0.56" +font = "0.27.0" diff --git a/src/config/config.rs b/src/config/config.rs new file mode 100644 index 0000000..ee86c15 --- /dev/null +++ b/src/config/config.rs @@ -0,0 +1,16 @@ +use std::{path::PathBuf, marker::PhantomData}; + +#[derive(Debug, Default)] +pub struct Config { + db_path: Option, +} + +impl Config { + pub fn new_main() -> Self { + Config::default() + } + //TODO: Add new function for test tube + pub fn load(&self) { + + } +} \ No newline at end of file diff --git a/src/config/other_settings.rs b/src/config/other_settings.rs new file mode 100644 index 0000000..c1940a4 --- /dev/null +++ b/src/config/other_settings.rs @@ -0,0 +1,82 @@ +use std::{marker::PhantomData, fs::File, path::PathBuf}; + +use font::Font; + +pub trait Setting {} + +pub struct DropDown { + name: String, + //value: ??? +} +impl Setting for DropDown {} + +#[derive(Debug, Default)] +pub struct Slider { + name: String, + value: i32, +} +impl Setting for Slider {} + +#[derive(Debug, Default)] +pub struct CheckBox { + name: String, + value: bool, +} +impl Setting for CheckBox {} + +enum TextBoxSize { + Small, + Large, +} +#[derive(Debug, Default)] +pub struct TextBox { + name: String, + text: String, + size: PhantomData +} +impl Setting for TextBox {} + +#[derive(Debug, Default)] +pub struct SingleSelect { + name: String, + value: bool, +} +impl Setting for SingleSelect {} + +#[derive(Debug, Default)] +pub struct MultiSelect { + name: String, + value: bool, +} +impl Setting for MultiSelect {} + +#[derive(Debug, Default)] +pub struct ConfigCounter { + name: String, + value: i32, +} +impl Setting for ConfigCounter {} + +#[derive(Debug, Default)] +pub struct ConfigFont { + name: String, + value: Font, +} +impl Setting for ConfigFont {} + +#[derive(Debug, Default)] +pub struct ConfigFile { + name: String, + value: PathBuf, +} +impl Setting for ConfigFile {} + +#[derive(Debug, Default)] +pub struct List { + items: Vec +} + +pub struct Form { + +} + diff --git a/src/lib.rs b/src/lib.rs index f4a93a8..3222def 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -3,21 +3,7 @@ pub mod music_storage { pub mod music_collection; pub mod playlist; mod utils; - pub mod db_reader { - pub mod foobar { - pub mod reader; - pub mod utils; - } - pub mod musicbee { - pub mod reader; - pub mod utils; - } - pub mod xml { - pub mod reader; - } - pub mod common; - pub mod extern_library; - } + pub mod db_reader; } pub mod music_controller{ @@ -25,3 +11,7 @@ pub mod music_controller{ } pub mod music_player; +pub mod config { + pub mod config; + pub mod other_settings; +} diff --git a/src/music_storage/db_reader/mod.rs b/src/music_storage/db_reader/mod.rs new file mode 100644 index 0000000..6569a82 --- /dev/null +++ b/src/music_storage/db_reader/mod.rs @@ -0,0 +1,13 @@ +pub mod foobar { + pub mod reader; + pub mod utils; +} +pub mod musicbee { + pub mod reader; + pub mod utils; +} +pub mod xml { + pub mod reader; +} +pub mod common; +pub mod extern_library; \ No newline at end of file diff --git a/src/music_storage/db_reader/xml/reader.rs b/src/music_storage/db_reader/xml/reader.rs index 50beeac..1652551 100644 --- a/src/music_storage/db_reader/xml/reader.rs +++ b/src/music_storage/db_reader/xml/reader.rs @@ -92,7 +92,6 @@ impl ExternalLibrary for XmlLibrary { } let text = e.unescape().unwrap().to_string(); - if text == count2.to_string() && !key_selected { continue; } @@ -118,8 +117,7 @@ impl ExternalLibrary for XmlLibrary { buf.clear(); } let elasped = now.elapsed(); - println!("\n\nXMLReader\n=========================================\n\nDone!\n{} songs grabbed in {:#?}\nIDs Skipped: {}", count3, elasped, count4); - // dbg!(folder); + println!("\n\nXMLReader grabbed {} songs in {:#?} seconds\nIDs Skipped: {}", count3, elasped.as_secs(), count4); let mut lib = XmlLibrary::new(); lib.tracks.append(converted_songs.as_mut()); lib diff --git a/src/music_storage/library.rs b/src/music_storage/library.rs index 7c5d466..5394652 100644 --- a/src/music_storage/library.rs +++ b/src/music_storage/library.rs @@ -1,7 +1,6 @@ use super::music_collection::MusicCollection; // Crate things use super::utils::{find_images, normalize, read_library, write_library}; -use crate::music_controller::config::Config; // Various std things use std::collections::BTreeMap; diff --git a/src/music_storage/playlist.rs b/src/music_storage/playlist.rs index 6b3dc96..4ad49dd 100644 --- a/src/music_storage/playlist.rs +++ b/src/music_storage/playlist.rs @@ -6,7 +6,6 @@ use super::{ library::{self, AlbumArt, Song, Tag}, music_collection::MusicCollection, }; -use crate::music_controller::config::Config; use crate::music_storage::db_reader::xml::reader::XmlLibrary; use std::io::Read; @@ -86,7 +85,6 @@ impl<'a> Playlist<'a> { .get_key_value(&Tag::Title) .unwrap() .1 - .to_string() .into(), ), ..Default::default() @@ -104,6 +102,7 @@ impl<'a> Playlist<'a> { segments: seg.clone(), ..Default::default() }; + //TODO: change this to put in a real file path let mut file = std::fs::OpenOptions::new() .read(true) .create(true) @@ -149,7 +148,7 @@ fn list_to_m3u8() { )); let mut a = Playlist::new(); let c = lib.to_songs(); - let mut b = c.iter().map({ |song| song }).collect::>(); + let mut b = c.iter().map( |song| song ).collect::>(); a.tracks.append(&mut b); a.to_m3u8() }