From 454ee3488de4ffe7a10f9c510223b6b367d6e014 Mon Sep 17 00:00:00 2001 From: gronod <1+gronod@noreply@i3omb.com> Date: Tue, 25 Aug 2026 17:29:17 +0100 Subject: [PATCH 1/4] feat(backend): add run_average command and AverageConfig (fixes #87) --- src-tauri/src/commands.rs | 41 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/src-tauri/src/commands.rs b/src-tauri/src/commands.rs index cde492b..ec7b5c9 100644 --- a/src-tauri/src/commands.rs +++ b/src-tauri/src/commands.rs @@ -420,6 +420,36 @@ pub async fn run_chartread( state.spawn(app, id, binary, args, cwd).await } +#[derive(Debug, Deserialize, Serialize)] +pub struct AverageConfig { + pub inputs: Vec, + pub output: String, + pub cwd: String, +} + +pub fn build_average_args(config: &AverageConfig) -> Vec { + let mut args = vec!["-v".to_string()]; + for input in &config.inputs { + args.push(input.clone()); + } + args.push(config.output.clone()); + args +} + +#[tauri::command] +pub async fn run_average( + app: AppHandle, + state: State<'_, ProcessManager>, + config: AverageConfig, +) -> Result<(), String> { + let binary = resolve_binary(app.clone(), "average".to_string()).await?; + let args = build_average_args(&config); + let id = format!("average_{}", config.output); + let cwd = Some(resolve_safe_cwd(&app, &config.cwd)?); + + state.spawn(app, id, binary, args, cwd).await +} + #[derive(Debug, Deserialize, Serialize)] pub struct ColprofConfig { pub algorithm: String, @@ -726,6 +756,17 @@ mod tests { assert_eq!(args, vec!["-v", "-u", "-c", "1", "my_profile"]); } + #[test] + fn test_build_average_args() { + let config = AverageConfig { + inputs: vec!["pass1.ti3".to_string(), "pass2.ti3".to_string()], + output: "avg.ti3".to_string(), + cwd: "/home/user".to_string(), + }; + let args = build_average_args(&config); + assert_eq!(args, vec!["-v", "pass1.ti3", "pass2.ti3", "avg.ti3"]); + } + #[test] fn test_build_colprof_args() { let config = ColprofConfig { -- 2.39.5 From b215c7216263e1315c9b5cce24798c9adf87001a Mon Sep 17 00:00:00 2001 From: gronod <1+gronod@noreply@i3omb.com> Date: Tue, 25 Aug 2026 17:29:27 +0100 Subject: [PATCH 2/4] feat(backend): register run_average command in lib.rs (fixes #87) --- src-tauri/src/lib.rs | 1 + 1 file changed, 1 insertion(+) diff --git a/src-tauri/src/lib.rs b/src-tauri/src/lib.rs index 31cda44..f6e5ef4 100644 --- a/src-tauri/src/lib.rs +++ b/src-tauri/src/lib.rs @@ -26,6 +26,7 @@ pub fn run() { commands::read_file_base64, commands::read_tiff_preview_png, commands::run_chartread, + commands::run_average, commands::run_colprof, commands::run_profcheck, commands::get_printers, -- 2.39.5 From a5840baa76f3305fdf1e21e3c0456e83aee6fbda Mon Sep 17 00:00:00 2001 From: gronod <1+gronod@noreply@i3omb.com> Date: Tue, 25 Aug 2026 17:29:50 +0100 Subject: [PATCH 3/4] feat(ui): add multi-pass averaging controls to Stage 3 HTML (fixes #87) --- src/index.html | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/index.html b/src/index.html index 104de42..10eb2b9 100644 --- a/src/index.html +++ b/src/index.html @@ -291,6 +291,20 @@
+ + +