Skip to content
Snippets Groups Projects
Commit 47d9ff8d authored by Florian Unger's avatar Florian Unger
Browse files

fixed wrong casting

parent c62f8c16
No related branches found
No related tags found
No related merge requests found
......@@ -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;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment