From 0513109de819ac7f4c27291daaec7f9be780a767 Mon Sep 17 00:00:00 2001 From: G2-Games Date: Wed, 29 May 2024 18:40:32 -0500 Subject: [PATCH] Moved `config` to a `mod.rs` file, made controller Player static --- src/config/{config.rs => mod.rs} | 6 +++-- src/lib.rs | 7 ++--- src/music_controller/controller.rs | 28 +++++++++++++------- src/music_controller/queue.rs | 2 +- src/music_storage/db_reader/itunes/reader.rs | 2 +- src/music_storage/library.rs | 4 +-- src/music_storage/playlist.rs | 2 +- 7 files changed, 30 insertions(+), 21 deletions(-) rename src/config/{config.rs => mod.rs} (97%) diff --git a/src/config/config.rs b/src/config/mod.rs similarity index 97% rename from src/config/config.rs rename to src/config/mod.rs index 18ab894..431498f 100644 --- a/src/config/config.rs +++ b/src/config/mod.rs @@ -1,3 +1,5 @@ +pub mod other_settings; + use std::{ fs::{self, File, OpenOptions}, io::{Error, Read, Write}, @@ -214,7 +216,7 @@ pub mod tests { ) .unwrap(); lib.scan_folder("test-config/music/").unwrap(); - lib.save(config.clone()).unwrap(); + lib.save(Arc::new(RwLock::new(config.clone()))).unwrap(); (config, lib) } @@ -232,7 +234,7 @@ pub mod tests { lib.scan_folder("test-config/music/").unwrap(); - lib.save(config.clone()).unwrap(); + lib.save(Arc::new(RwLock::new(config.clone()))).unwrap(); (config, lib) } diff --git a/src/lib.rs b/src/lib.rs index 9f6bb0a..6f93ec1 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -18,8 +18,5 @@ pub mod music_player { pub mod gstreamer; pub mod player; } -#[allow(clippy::module_inception)] -pub mod config { - pub mod config; - pub mod other_settings; -} + +pub mod config; diff --git a/src/music_controller/controller.rs b/src/music_controller/controller.rs index 5664121..9d5c0b4 100644 --- a/src/music_controller/controller.rs +++ b/src/music_controller/controller.rs @@ -13,10 +13,10 @@ use crossbeam_channel::unbounded; use std::error::Error; use uuid::Uuid; -use crate::config::config::ConfigError; +use crate::config::ConfigError; use crate::music_player::player::{Player, PlayerCommand, PlayerError}; use crate::{ - config::config::Config, music_controller::queue::Queue, music_storage::library::MusicLibrary, + config::Config, music_controller::queue::Queue, music_storage::library::MusicLibrary, }; use super::queue::QueueError; @@ -25,7 +25,7 @@ pub struct Controller { pub queue: Queue, pub config: Arc>, pub library: MusicLibrary, - pub player: Arc>>, + pub player: Arc>, } #[derive(Error, Debug)] @@ -70,7 +70,7 @@ impl MailMan { } #[allow(unused_variables)] -impl Controller

{ +impl Controller

{ pub fn start(config_path: T) -> Result> where std::path::PathBuf: std::convert::From, @@ -88,12 +88,11 @@ impl Controller

{ queue: Queue::default(), config: config_.clone(), library, - player: Arc::new(RwLock::new(Box::new(P::new()?))), + player: Arc::new(RwLock::new(P::new()?)), }; - - let player = controller.player.clone(); - let controler_thread = spawn(move || { + let player = Arc::clone(&controller.player); + let controller_thread = spawn(move || { match player.read().unwrap().message_channel().recv().unwrap() { PlayerCommand::AboutToFinish => {}, PlayerCommand::EndOfStream => { @@ -115,4 +114,15 @@ impl Controller

{ } #[cfg(test)] -mod test_super {} +mod test_super { + use crate::{config::tests::read_config_lib, music_player::gstreamer::GStreamer}; + + use super::Controller; + + #[test] + fn construct_controller() { + let config = read_config_lib(); + + let controller = Controller::::start("test-config/config_test.json").unwrap(); + } +} diff --git a/src/music_controller/queue.rs b/src/music_controller/queue.rs index 519f8c6..a2965c8 100644 --- a/src/music_controller/queue.rs +++ b/src/music_controller/queue.rs @@ -391,7 +391,7 @@ impl Queue { mod test_super { #![allow(unused)] use crate::{ - config::config::tests::{new_config_lib, read_config_lib}, + config::tests::{new_config_lib, read_config_lib}, music_storage::library, }; diff --git a/src/music_storage/db_reader/itunes/reader.rs b/src/music_storage/db_reader/itunes/reader.rs index a900fa8..98ea1da 100644 --- a/src/music_storage/db_reader/itunes/reader.rs +++ b/src/music_storage/db_reader/itunes/reader.rs @@ -336,7 +336,7 @@ impl ITunesSong { mod tests { use std::{path::{Path, PathBuf}, sync::{Arc, RwLock}}; - use crate::{config::config::{Config, ConfigLibrary}, music_storage::{db_reader::extern_library::ExternalLibrary, library::MusicLibrary}}; + use crate::{config::{Config, ConfigLibrary}, music_storage::{db_reader::extern_library::ExternalLibrary, library::MusicLibrary}}; use super::ITunesLibrary; diff --git a/src/music_storage/library.rs b/src/music_storage/library.rs index a2fed42..ae189f4 100644 --- a/src/music_storage/library.rs +++ b/src/music_storage/library.rs @@ -1,7 +1,7 @@ use super::playlist::PlaylistFolder; // Crate things use super::utils::{find_images, normalize, read_file, write_file}; -use crate::config::config::Config; +use crate::config::Config; // Various std things use std::collections::BTreeMap; @@ -1127,7 +1127,7 @@ mod test { sync::{Arc, RwLock}, }; - use crate::{config::config::Config, music_storage::library::MusicLibrary}; + use crate::{config::{tests::new_config_lib, Config}, music_storage::library::MusicLibrary}; #[test] fn library_init() { diff --git a/src/music_storage/playlist.rs b/src/music_storage/playlist.rs index 1f04860..c4c0d8c 100644 --- a/src/music_storage/playlist.rs +++ b/src/music_storage/playlist.rs @@ -315,7 +315,7 @@ impl Default for Playlist { #[cfg(test)] mod test_super { use super::*; - use crate::config::config::tests::read_config_lib; + use crate::config::tests::read_config_lib; #[test] fn list_to_m3u8() {