From be9f28e38ffece66c60bc8b15490bb2d268ef167 Mon Sep 17 00:00:00 2001 From: MrDulfin Date: Fri, 30 Aug 2024 23:35:28 -0400 Subject: [PATCH] removed config passing in library functions --- src/config/mod.rs | 8 ++++---- src/music_controller/controller.rs | 3 ++- src/music_player/gstreamer.rs | 1 - src/music_storage/db_reader/itunes/reader.rs | 4 ++-- src/music_storage/library.rs | 12 +++--------- 5 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/config/mod.rs b/src/config/mod.rs index 431498f..6371afb 100644 --- a/src/config/mod.rs +++ b/src/config/mod.rs @@ -211,12 +211,12 @@ pub mod tests { config.write_file().unwrap(); let mut lib = MusicLibrary::init( - Arc::new(RwLock::from(config.clone())), + config.libraries.get_default().unwrap().path.clone(), dbg!(config.libraries.default_library), ) .unwrap(); lib.scan_folder("test-config/music/").unwrap(); - lib.save(Arc::new(RwLock::new(config.clone()))).unwrap(); + lib.save(config.libraries.get_default().unwrap().path.clone()).unwrap(); (config, lib) } @@ -227,14 +227,14 @@ pub mod tests { // dbg!(&config); let mut lib = MusicLibrary::init( - Arc::new(RwLock::from(config.clone())), + config.libraries.get_default().unwrap().path.clone(), config.libraries.get_default().unwrap().uuid, ) .unwrap(); lib.scan_folder("test-config/music/").unwrap(); - lib.save(Arc::new(RwLock::new(config.clone()))).unwrap(); + lib.save(config.libraries.get_default().unwrap().path.clone()).unwrap(); (config, lib) } diff --git a/src/music_controller/controller.rs b/src/music_controller/controller.rs index 74c3c62..3c9dcb3 100644 --- a/src/music_controller/controller.rs +++ b/src/music_controller/controller.rs @@ -95,8 +95,9 @@ impl Controller

{ let config = Config::read_file(config_path)?; let uuid = config.libraries.get_default()?.uuid; + let library = MusicLibrary::init(config.libraries.get_default()?.path.clone(), uuid)?; let config_ = Arc::new(RwLock::from(config)); - let library = MusicLibrary::init(config_.clone(), uuid)?; + let queue: Queue = Queue { items: Vec::new(), diff --git a/src/music_player/gstreamer.rs b/src/music_player/gstreamer.rs index 5fa44bc..a6915aa 100644 --- a/src/music_player/gstreamer.rs +++ b/src/music_player/gstreamer.rs @@ -1,5 +1,4 @@ // Crate things -//use crate::music_controller::config::Config; use crate::music_storage::library::URI; use crossbeam_channel::{unbounded, Receiver, Sender}; use std::error::Error; diff --git a/src/music_storage/db_reader/itunes/reader.rs b/src/music_storage/db_reader/itunes/reader.rs index 98ea1da..6ff383c 100644 --- a/src/music_storage/db_reader/itunes/reader.rs +++ b/src/music_storage/db_reader/itunes/reader.rs @@ -348,11 +348,11 @@ mod tests { let songs = ITunesLibrary::from_file(Path::new("test-config\\iTunesLib.xml")).to_songs(); - let mut library = MusicLibrary::init(Arc::new(RwLock::from(config.clone())), config_lib.uuid).unwrap(); + let mut library = MusicLibrary::init(config.libraries.get_default().unwrap().path.clone(), config_lib.uuid).unwrap(); songs.iter().for_each(|song| library.add_song(song.to_owned()).unwrap()); config.write_file().unwrap(); - library.save(Arc::new(RwLock::from(config))).unwrap(); + library.save(config.libraries.get_default().unwrap().path.clone()).unwrap(); } } diff --git a/src/music_storage/library.rs b/src/music_storage/library.rs index f7d3e81..010fed3 100644 --- a/src/music_storage/library.rs +++ b/src/music_storage/library.rs @@ -699,21 +699,16 @@ impl MusicLibrary { /// If the database file already exists, return the [MusicLibrary], otherwise create /// the database first. This needs to be run before anything else to retrieve /// the [MusicLibrary] Vec - pub fn init(config: Arc>, uuid: Uuid) -> Result> { - let global_config = &*config.read().unwrap(); - let path = global_config.libraries.get_library(&uuid)?.path.clone(); - + pub fn init(path: PathBuf, uuid: Uuid) -> Result> { let library: MusicLibrary = match path.exists() { true => read_file(path)?, false => { // If the library does not exist, re-create it let lib = MusicLibrary::new(String::new(), uuid); - write_file(&lib, path)?; lib } }; - Ok(library) } @@ -743,8 +738,7 @@ impl MusicLibrary { } /// Serializes the database out to the file specified in the config - pub fn save(&self, config: Arc>) -> Result<(), Box> { - let path = config.read().unwrap().libraries.get_library(&self.uuid)?.path.clone(); + pub fn save(&self, path: PathBuf) -> Result<(), Box> { match path.try_exists() { Ok(_) => write_file(self, path)?, Err(error) => return Err(error.into()), @@ -1229,7 +1223,7 @@ mod test { fn library_init() { let config = Config::read_file(PathBuf::from("test_config/config_test.json")).unwrap(); let target_uuid = config.libraries.libraries[0].uuid; - let a = MusicLibrary::init(Arc::new(RwLock::from(config)), target_uuid).unwrap(); + let a = MusicLibrary::init(config.libraries.get_default().unwrap().path.clone(), target_uuid).unwrap(); dbg!(a); } }