diff --git a/src/config.rs b/src/config.rs index 9b89b11..2614537 100644 --- a/src/config.rs +++ b/src/config.rs @@ -2,11 +2,11 @@ use bevy::prelude::Color; use dirs::home_dir; use serde::{Deserialize, Serialize}; use serde_yaml::{self}; -use std::fs::{create_dir, create_dir_all, read_to_string, File, OpenOptions}; +use std::fs::{create_dir_all, read_to_string, File, OpenOptions}; use std::io::BufWriter; use std::{ fs::remove_file, - io::{stdout, Read, Write}, + io::Write, path::PathBuf, }; @@ -136,9 +136,9 @@ pub fn write_fftargs_to_config(args: &FFTArgs) { overwrite_non_default_args!(&mut default_args.volume, args.volume); let cfg_path = config_path(); - create_dir_all(cfg_path.as_path().parent().unwrap()); + create_dir_all(cfg_path.as_path().parent().unwrap()).unwrap(); - let mut config_file = OpenOptions::new() + let config_file = OpenOptions::new() .write(true) .create(true) .open(&cfg_path) @@ -153,7 +153,7 @@ pub fn write_fftargs_to_config(args: &FFTArgs) { cfg_yaml.retain(|x| x.contains(":")); - remove_file(&cfg_path); + remove_file(&cfg_path).unwrap(); let f = File::create(&cfg_path).expect("Unable to create file"); let mut f = BufWriter::new(f); @@ -161,13 +161,14 @@ pub fn write_fftargs_to_config(args: &FFTArgs) { .expect("Unable to write data"); } +#[allow(dead_code)] pub fn reset_config_file() { let default_user_config = ConfigFFTArgs::default(); let cfg_path = config_path(); - create_dir_all(cfg_path.as_path().parent().unwrap()); + create_dir_all(cfg_path.as_path().parent().unwrap()).unwrap(); - let mut config_file = OpenOptions::new() + let config_file = OpenOptions::new() .write(true) .create(true) .open(cfg_path) diff --git a/src/main.rs b/src/main.rs index 1b82a87..b2db0f6 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,5 +1,3 @@ -#![allow(unused)] - mod args; mod config; mod fft; @@ -12,27 +10,17 @@ use systems::egui::*; use systems::get_keyboard_input::*; use systems::startup::*; use systems::update_fft::*; -use systems::update_frame_counters; use systems::update_frame_counters::*; use systems::update_view_settings::*; -use bevy::render::mesh::VertexAttributeValues; -use bevy::sprite::Anchor; -use bevy::{ - app::AppExit, - prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, -}; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; +use bevy::prelude::*; +use bevy_egui::EguiPlugin; use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; +use rodio::{Decoder, OutputStream}; use std::ffi::OsString; use std::fs::File; use std::io::BufReader; use std::path::PathBuf; -use std::time::Duration; use std::time::Instant; // TODO: Add to other package managers diff --git a/src/systems/egui.rs b/src/systems/egui.rs index 30e474c..bc9e63a 100644 --- a/src/systems/egui.rs +++ b/src/systems/egui.rs @@ -1,29 +1,15 @@ use crate::{ - cli_args_to_fft_args, config_path, parse_cli_args, reset_config_file, write_fftargs_to_config, + cli_args_to_fft_args, config_path, parse_cli_args, write_fftargs_to_config, AppState, FFTArgs, FFTState, }; -use bevy::render::mesh::VertexAttributeValues; -use bevy::sprite::Anchor; -use bevy::{ - app::AppExit, - prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, -}; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; -use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; -use std::ffi::OsString; -use std::fs::File; -use std::io::BufReader; -use std::path::PathBuf; -use std::time::Duration; +use bevy::prelude::*; +use bevy_egui::egui::Align2; +use bevy_egui::{egui, EguiContexts}; +use clap::Parser; pub fn ui_example_system( mut contexts: EguiContexts, - keyboard_input: Res>, - mut fft_state: ResMut, + fft_state: ResMut, mut app_state: ResMut, mut args: ResMut, ) { diff --git a/src/systems/get_keyboard_input.rs b/src/systems/get_keyboard_input.rs index 0f8b28a..1a6d707 100644 --- a/src/systems/get_keyboard_input.rs +++ b/src/systems/get_keyboard_input.rs @@ -1,26 +1,12 @@ -use crate::{AppState, FFTArgs, FFTState}; -use bevy::render::mesh::VertexAttributeValues; -use bevy::sprite::Anchor; +use crate::{AppState, FFTArgs}; use bevy::{ app::AppExit, prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, }; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; -use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; -use std::ffi::OsString; -use std::fs::File; -use std::io::BufReader; -use std::path::PathBuf; -use std::time::Duration; pub fn get_keyboard_input( keyboard_input: Res>, mut exit: EventWriter, - mut fft_state: ResMut, mut app_state: ResMut, mut args: ResMut, ) { diff --git a/src/systems/startup.rs b/src/systems/startup.rs index 9f8513f..ca2b13c 100644 --- a/src/systems/startup.rs +++ b/src/systems/startup.rs @@ -1,21 +1,9 @@ use crate::{FFTArgs, FFTState}; -use bevy::render::mesh::VertexAttributeValues; use bevy::sprite::Anchor; use bevy::{ - app::AppExit, prelude::*, sprite::{MaterialMesh2dBundle, Mesh2dHandle}, }; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; -use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; -use std::ffi::OsString; -use std::fs::File; -use std::io::BufReader; -use std::path::PathBuf; -use std::time::Duration; fn spawn_bars( num_bars: u32, @@ -75,7 +63,6 @@ pub fn startup( mut meshes: ResMut>, mut materials: ResMut>, mut fft_queue: ResMut, - clear_color: Res, args: Res, ) { commands.spawn(Camera2dBundle::default()); diff --git a/src/systems/update_fft.rs b/src/systems/update_fft.rs index 3e6b723..0fddc7b 100644 --- a/src/systems/update_fft.rs +++ b/src/systems/update_fft.rs @@ -1,33 +1,14 @@ use crate::fft::time_interpolate; use crate::*; use bevy::render::mesh::VertexAttributeValues; -use bevy::sprite::Anchor; -use bevy::{ - app::AppExit, - prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, -}; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; -use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; -use std::ffi::OsString; -use std::fs::File; -use std::io::BufReader; -use std::path::PathBuf; -use std::time::Duration; +use bevy::prelude::*; pub fn update_fft( - mut commands: Commands, mut window: Query<&mut Window>, mut meshes: ResMut>, - mut materials: ResMut>, - mut fft_state: ResMut, - mut app_state: ResMut, - mut args: ResMut, - mut clear_color: ResMut, - mut text_query: Query<&mut Text>, + fft_state: ResMut, + app_state: ResMut, + args: ResMut, ) { let h = window.single_mut().height(); let interval = app_state.rendering_fps / app_state.fft_fps; diff --git a/src/systems/update_frame_counters.rs b/src/systems/update_frame_counters.rs index 8a7e20d..3ab8af0 100644 --- a/src/systems/update_frame_counters.rs +++ b/src/systems/update_frame_counters.rs @@ -1,24 +1,7 @@ -use crate::fft::time_interpolate; use crate::*; -use bevy::render::mesh::VertexAttributeValues; -use bevy::sprite::Anchor; -use bevy::{ - app::AppExit, - prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, -}; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; -use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; -use std::ffi::OsString; -use std::fs::File; -use std::io::BufReader; -use std::path::PathBuf; -use std::time::Duration; +use bevy::prelude::*; -pub fn update_frame_counters(mut fft_state: ResMut, mut args: ResMut) { +pub fn update_frame_counters(mut fft_state: ResMut) { let elapsed_time = fft_state.fft_timer.elapsed().as_secs_f64(); fft_state.fft_frame_counter = (elapsed_time / TIME_BETWEEN_FFT_FRAMES) as usize; fft_state.total_frame_counter = (elapsed_time / TIME_BETWEEN_FRAMES) as usize; diff --git a/src/systems/update_view_settings.rs b/src/systems/update_view_settings.rs index 55ee947..90fc87a 100644 --- a/src/systems/update_view_settings.rs +++ b/src/systems/update_view_settings.rs @@ -1,30 +1,13 @@ -use crate::fft::time_interpolate; use crate::*; use bevy::render::mesh::VertexAttributeValues; -use bevy::sprite::{Anchor, Material2d}; -use bevy::{ - app::AppExit, - prelude::*, - sprite::{MaterialMesh2dBundle, Mesh2dHandle}, -}; -use bevy_egui::egui::{Align2, Color32, Stroke}; -use bevy_egui::{egui, EguiContexts, EguiPlugin}; -use clap::{ArgAction, Parser}; -use rayon::iter::{IntoParallelRefMutIterator, ParallelIterator}; -use rodio::{source::Source, Decoder, OutputStream}; -use std::ffi::OsString; -use std::fs::File; -use std::io::BufReader; -use std::path::PathBuf; -use std::time::Duration; +use bevy::prelude::*; pub fn update_view_settings( - mut commands: Commands, mut window: Query<&mut Window>, mut meshes: ResMut>, mut materials: ResMut>, - mut app_state: ResMut, - mut args: ResMut, + app_state: Res, + args: Res, mut clear_color: ResMut, mut text_query: Query<(&mut Transform, &mut Text)>, mut differencing_args_query: Query<&mut FFTArgs>,