From bd248d05fab02878fe7e7560519d91f1fcf396e6 Mon Sep 17 00:00:00 2001 From: SutekhVRC Date: Mon, 1 Jan 2024 10:42:53 -0800 Subject: [PATCH] Change process() InputProcessor super trait method to pass the OSC address. Different OSC addresses of various systems require differernt processing logic. --- src-tauri/src/toy_handling/handling.rs | 12 ++++++++---- src-tauri/src/toy_handling/input_processor/mod.rs | 2 +- .../input_processor/penetration_systems/sps/mod.rs | 2 +- .../input_processor/penetration_systems/tps/mod.rs | 2 +- 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/src-tauri/src/toy_handling/handling.rs b/src-tauri/src/toy_handling/handling.rs index 516bfd4..3bcd364 100644 --- a/src-tauri/src/toy_handling/handling.rs +++ b/src-tauri/src/toy_handling/handling.rs @@ -657,9 +657,10 @@ pub async fn toy_management_handler( .pen_system .as_mut() .unwrap() - .process(ModeProcessorInputType::Float( - float_level, - )) + .process( + msg.addr.as_str(), + ModeProcessorInputType::Float(float_level), + ) { // Send to mode processor if specified (Raw = no mode processing) if let ProcessingMode::Raw = feature @@ -701,7 +702,10 @@ pub async fn toy_management_handler( .pen_system .as_mut() .unwrap() - .process(ModeProcessorInputType::Boolean(b)) + .process( + msg.addr.as_str(), + ModeProcessorInputType::Boolean(b), + ) { // Send to mode processor if specified (Raw = no mode processing) if let ProcessingMode::Raw = feature diff --git a/src-tauri/src/toy_handling/input_processor/mod.rs b/src-tauri/src/toy_handling/input_processor/mod.rs index dd37624..ac9d1b9 100644 --- a/src-tauri/src/toy_handling/input_processor/mod.rs +++ b/src-tauri/src/toy_handling/input_processor/mod.rs @@ -15,7 +15,7 @@ pub mod penetration_systems; */ pub trait InputProcessor: DynClone + Debug + Send + Sync { - fn process(&mut self, input: ModeProcessorInputType) -> Option; + fn process(&mut self, addr: &str, input: ModeProcessorInputType) -> Option; fn is_parameter(&self, param: &String) -> bool; } dyn_clone::clone_trait_object!(InputProcessor); diff --git a/src-tauri/src/toy_handling/input_processor/penetration_systems/sps/mod.rs b/src-tauri/src/toy_handling/input_processor/penetration_systems/sps/mod.rs index 6d94ec2..19ec556 100644 --- a/src-tauri/src/toy_handling/input_processor/penetration_systems/sps/mod.rs +++ b/src-tauri/src/toy_handling/input_processor/penetration_systems/sps/mod.rs @@ -21,7 +21,7 @@ impl InputProcessor for SPSProcessor { self.parameter_list.contains(param) } - fn process(&mut self, _input: ModeProcessorInputType) -> Option { + fn process(&mut self, _addr: &str, _input: ModeProcessorInputType) -> Option { todo!() } } diff --git a/src-tauri/src/toy_handling/input_processor/penetration_systems/tps/mod.rs b/src-tauri/src/toy_handling/input_processor/penetration_systems/tps/mod.rs index 6727961..d1784eb 100644 --- a/src-tauri/src/toy_handling/input_processor/penetration_systems/tps/mod.rs +++ b/src-tauri/src/toy_handling/input_processor/penetration_systems/tps/mod.rs @@ -21,7 +21,7 @@ impl InputProcessor for TPSProcessor { self.parameter_list.contains(param) } - fn process(&mut self, _input: ModeProcessorInputType) -> Option { + fn process(&mut self, _addr: &str, _input: ModeProcessorInputType) -> Option { todo!() } }