From 87f9cc403b105932bf472136f980759dab46c2e3 Mon Sep 17 00:00:00 2001 From: Cooper Quintin Date: Mon, 25 Nov 2024 10:55:45 -0800 Subject: [PATCH] add colorblind mode. Fixes #77 --- bin/src/config.rs | 4 ++++ bin/src/daemon.rs | 8 +++++++- dist/config.toml.example | 3 +++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/bin/src/config.rs b/bin/src/config.rs index ee119ef..354cf66 100644 --- a/bin/src/config.rs +++ b/bin/src/config.rs @@ -9,6 +9,7 @@ struct ConfigFile { debug_mode: Option, ui_level: Option, enable_dummy_analyzer: Option, + colorblind_mode: Option, } #[derive(Debug)] @@ -18,6 +19,7 @@ pub struct Config { pub debug_mode: bool, pub ui_level: u8, pub enable_dummy_analyzer: bool, + pub colorblind_mode: bool, } impl Default for Config { @@ -28,6 +30,7 @@ impl Default for Config { debug_mode: false, ui_level: 1, enable_dummy_analyzer: false, + colorblind_mode: false, } } } @@ -42,6 +45,7 @@ pub fn parse_config

(path: P) -> Result where P: AsRef parsed_config.debug_mode.map(|v| config.debug_mode = v); parsed_config.ui_level.map(|v| config.ui_level = v); parsed_config.enable_dummy_analyzer.map(|v| config.enable_dummy_analyzer = v); + parsed_config.colorblind_mode.map(|v| config.colorblind_mode = v); } Ok(config) } diff --git a/bin/src/daemon.rs b/bin/src/daemon.rs index 14f8932..1ec4d6c 100644 --- a/bin/src/daemon.rs +++ b/bin/src/daemon.rs @@ -21,6 +21,7 @@ use crate::framebuffer::Framebuffer; use analysis::{get_analysis_status, run_analysis_thread, start_analysis, AnalysisCtrlMessage, AnalysisStatus}; use axum::response::Redirect; use diag::{get_analysis_report, start_recording, stop_recording, DiagDeviceCtrlMessage}; +use framebuffer::Color565; use log::{info, error}; use rayhunter::diag_device::DiagDevice; use axum::routing::{get, post}; @@ -142,12 +143,17 @@ fn run_ctrl_c_thread( fn update_ui(task_tracker: &TaskTracker, config: &config::Config, mut ui_shutdown_rx: oneshot::Receiver<()>, mut ui_update_rx: Receiver) -> JoinHandle<()> { static IMAGE_DIR: Dir<'_> = include_dir!("$CARGO_MANIFEST_DIR/static/images/"); + let mut display_color: Color565; let display_level = config.ui_level; if display_level == 0 { info!("Invisible mode, not spawning UI."); } - let mut display_color = framebuffer::Color565::Green; + if config.colorblind_mode { + display_color = framebuffer::Color565::Blue; + } else { + display_color = framebuffer::Color565::Green; + } task_tracker.spawn_blocking(move || { let mut fb: Framebuffer = Framebuffer::new(); diff --git a/dist/config.toml.example b/dist/config.toml.example index edfdaed..6cd2c7f 100644 --- a/dist/config.toml.example +++ b/dist/config.toml.example @@ -1,6 +1,9 @@ # cat config.toml qmdl_store_path = "/data/rayhunter/qmdl" port = 8080 +debug_mode = false +enable_dummy_analyzer = false +colorblind_mode = false # UI Levels: # 0 = invisible mode, no indicator that rayhunter is running # 1 = Subtle mode, display a green line at the top of the screen when rayhunter is running