From 47d9ff8d04bf451d2544a996b958f65e50f1499a Mon Sep 17 00:00:00 2001
From: Florian Unger <florian.unger@fau.de>
Date: Thu, 22 Apr 2021 10:31:04 +0200
Subject: [PATCH] fixed wrong casting

---
 src/tipa.rs | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/src/tipa.rs b/src/tipa.rs
index 0838dd8..ef2860b 100644
--- a/src/tipa.rs
+++ b/src/tipa.rs
@@ -9,21 +9,21 @@ use tokio::io::AsyncReadExt;
 use tokio::fs::File;
 
 use serde::{Serialize};
-use serde_tuple::Serialize_tuple;
+//use serde_tuple::Serialize_tuple;
 use structure::{structure, structure_impl};
 
 #[derive(Debug)]
-struct ParserState {x:u32, y:u32, pressure:u32, tool:u32}
+struct ParserState {x:usize, y:usize, pressure:usize, tool:usize}
 #[derive(Debug, Serialize)]
 //#[derive(Debug, Serialize_tuple)]
-pub struct CanvasInputEvent {ts:u64, x:u32, y:u32, pressure:u32, tool:u32}
+pub struct CanvasInputEvent {ts:u64, x:usize, y:usize, pressure:usize, tool:usize}
 
 // calibration data measured on my rm2
-const MIN_X:u32 = 0;
-const MAX_X:u32 = 20966;
-const MIN_Y:u32 = 0;     // actually 154 in hardware, xochitl seems to assume 0.
-const MAX_Y:u32 = 15725;
-//const MAX_PRESSURE:u32 = 4095;
+const MIN_X:usize = 0;
+const MAX_X:usize = 20966;
+const MIN_Y:usize = 0;     // actually 154 in hardware, xochitl seems to assume 0.
+const MAX_Y:usize = 15725;
+//const MAX_PRESSURE:u16 = 4095;
 
 pub fn input_stream_parser() -> impl Stream<Item = std::io::Result<CanvasInputEvent>> {
     let mut state = ParserState{x:0, y:0, pressure:0, tool:2};
@@ -44,11 +44,11 @@ pub fn input_stream_parser() -> impl Stream<Item = std::io::Result<CanvasInputEv
             // absolute position
             if typ == 3 {
                 if code == 0 {
-                    state.x = val;
+                    state.x = val as usize;
                 } else if code == 1 {
-                    state.y = val;
+                    state.y = val as usize;
                 } else if code == 24 {
-                    state.pressure = val;
+                    state.pressure = val as usize;
                 }
             }
             // tool
@@ -72,7 +72,7 @@ pub fn input_stream_parser() -> impl Stream<Item = std::io::Result<CanvasInputEv
     }
 }
 
-fn rescale(x_raw:u32, y_raw:u32) -> (u32, u32) {
+fn rescale(x_raw:usize, y_raw:usize) -> (usize, usize) {
     // rescale x,y according to calibration data and canvas size 
     let x = (x_raw - MIN_X) * 1872 / MAX_X;
     let y = (y_raw - MIN_Y) * 1404 / MAX_Y;
-- 
GitLab