From 7d7eec66958d386c1c9036820fb9055af3d2f7e1 Mon Sep 17 00:00:00 2001 From: Marc Planard Date: Tue, 6 Jun 2023 11:30:46 +0200 Subject: [PATCH] refacto transformer with module hierarchy --- src/device.rs | 8 +++--- src/device/helios.rs | 4 ++- src/main.rs | 16 ++++++------ src/transformer.rs | 60 -------------------------------------------- 4 files changed, 16 insertions(+), 72 deletions(-) delete mode 100644 src/transformer.rs diff --git a/src/device.rs b/src/device.rs index 88d7759..e245e5e 100644 --- a/src/device.rs +++ b/src/device.rs @@ -1,15 +1,15 @@ mod common; mod helios; -use crate::conf::{Conf, DacFamily, EtherDreamConf, HeliosConf}; +use crate::conf::{Conf, DacFamily}; //, EtherDreamConf, HeliosConf}; use crate::device::common::Device; use crate::device::helios::HeliosDevice; pub fn device_factory(config: Conf) -> Box { let device = match config.dac { - DacFamily::Helios(conf) => Box::new(HeliosDevice { conf }), - DacFamily::Etherdream( conf) => todo!(), + DacFamily::Helios(conf) => Box::new(HeliosDevice::new(conf)), + DacFamily::Etherdream(_conf) => todo!(), }; device -} \ No newline at end of file +} diff --git a/src/device/helios.rs b/src/device/helios.rs index e5ff34d..b87a8f8 100644 --- a/src/device/helios.rs +++ b/src/device/helios.rs @@ -2,6 +2,7 @@ /// Configure udev: /// https://github.com/Grix/helios_dac/blob/master/docs/udev_rules_for_linux.md /// +/* use helios_dac::NativeHeliosDacController; use helios_dac::{ // Coordinate, @@ -10,6 +11,7 @@ use helios_dac::{ Frame, Point, }; +*/ use crate::conf::HeliosConf; use crate::device::common::{Device, Status}; @@ -33,4 +35,4 @@ impl Device for HeliosDevice { properties: vec!["foo".to_string()], }; } -} \ No newline at end of file +} diff --git a/src/main.rs b/src/main.rs index dc1884a..c9c77b4 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,8 +9,6 @@ mod point; mod transformer; mod device; -use device::device_factory; - use helios_dac::{ self, NativeHeliosDacController, @@ -18,15 +16,19 @@ use helios_dac::{ DeviceStatus, Frame, }; -use std::sync::atomic::{AtomicBool, Ordering}; -use std::sync::Arc; +use std::sync::{ + atomic::{AtomicBool, Ordering}, + Arc +}; use redis_ctrl::{RedisCtrl, Order}; +use log::{LevelFilter, info, /* warn, */ error}; +use env_logger::Builder; + use conf::Conf; use errors::{LJError, LJResult}; use point::Point; -use transformer::{Transformers, Translate, Replicate}; -use log::{LevelFilter, info, /* warn, */ error}; -use env_logger::Builder; +use device::device_factory; +use transformer::{Transformers,Translate,Replicate}; const DEFAULT_CONF_FILE: &str = "settings.toml"; const CENTER: (f32, f32) = (2000.0, 2000.0); diff --git a/src/transformer.rs b/src/transformer.rs deleted file mode 100644 index 3728f94..0000000 --- a/src/transformer.rs +++ /dev/null @@ -1,60 +0,0 @@ -use crate::point::Point; - -pub trait Transformers { - fn apply(&self, point_list: &[Point]) -> Vec; -} - -/// Translate - -#[derive(Debug,Clone,Copy)] -pub struct Translate { - x: f32, - y: f32 -} - -impl Translate { - pub fn new(x: f32, y: f32) -> Self { - Self { x, y } - } -} - -impl Transformers for Translate { - fn apply(&self, point_list: &[Point]) -> Vec { - point_list.iter() - .map(| pt | { - Point { x: pt.x + self.x, - y: pt.y + self.y, - ..*pt - } - }).collect() - } -} - -/// Replicate - -#[allow(dead_code)] -#[derive(Debug,Clone,Copy)] -pub enum Replicate { - Until(usize), - Times(usize) -} - -impl Transformers for Replicate { - fn apply(&self, point_list: &[Point]) -> Vec { - let mut point_list2 = vec![]; - match self { - Replicate::Until(n) => { - while point_list2.len() < *n { - point_list2.append(&mut point_list.to_vec()); - } - }, - Replicate::Times(n) => { - for _ in 0..*n { - point_list2.append(&mut point_list.to_vec()); - } - } - } - point_list2 - } -} -