From cdc26106ccd462e92d80bde6e542ef04263fa4b7 Mon Sep 17 00:00:00 2001 From: Sergey Klimov Date: Sun, 20 May 2018 04:10:41 -0700 Subject: [PATCH] better resolutions --- build-run-remarkable.sh | 5 ++++- src/device.rs | 27 ++++++++++++++++++++++++--- src/input/mod.rs | 2 ++ src/input/remarkable.rs | 14 ++++++-------- 4 files changed, 36 insertions(+), 12 deletions(-) diff --git a/build-run-remarkable.sh b/build-run-remarkable.sh index da585aa3..bcaabb82 100755 --- a/build-run-remarkable.sh +++ b/build-run-remarkable.sh @@ -1,4 +1,7 @@ -dockcross-linux-armv7-rust ./build.sh && \ +#!/bin/bash +set -ex + +dockcross-linux-armv7-rust ./build.sh dockcross-linux-armv7-rust ./dist.sh DEVICE_IP="10.11.99.1" diff --git a/src/device.rs b/src/device.rs index cbbcb85e..89b574f4 100644 --- a/src/device.rs +++ b/src/device.rs @@ -1,5 +1,4 @@ extern crate libc; - use std::env; use std::fmt; use std::collections::HashMap; @@ -140,8 +139,30 @@ lazy_static! { model: Model::Remarkable, proto: TouchProto::MultiB, mirrored_x: true, - dims: (758, 1024), - dpi: 212, + dims: (1404, 1872), + dpi: 300, //todo fixme actual 226, but it crashes weirdly without stacktrace: +//thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', libcore/option.rs:335:21 +//Error: could not get list of modules: No such file or directory +//stack backtrace: +// 0: +// 1: +// 2: +// 3: +// 4: +// 5: +// 6: +// 7: +// 8: +// 9: +// 10: +// 11: +// 12: +// 13: +// 14: +// 15: +// 16: main +// 17: __libc_start_main + }, "kraken" => Device { model: Model::Glo, diff --git a/src/input/mod.rs b/src/input/mod.rs index 3024c2e2..2f6fe340 100644 --- a/src/input/mod.rs +++ b/src/input/mod.rs @@ -238,6 +238,8 @@ fn parse_usb_events(tx: &Sender) { } } + + pub fn device_events(rx: Receiver, dims: (u32, u32)) -> Receiver { let (ty, ry) = mpsc::channel(); thread::spawn(move || CURRENT_DEVICE.parse_device_events(&rx, &ty, dims)); diff --git a/src/input/remarkable.rs b/src/input/remarkable.rs index aa52fd70..ca834562 100644 --- a/src/input/remarkable.rs +++ b/src/input/remarkable.rs @@ -5,7 +5,8 @@ use geom::Point; use std::mem; use input::*; use std::sync::mpsc::{self, Sender, Receiver}; - +extern crate libremarkable; +use self::libremarkable::framebuffer::common::{MTWIDTH, MTHEIGHT}; struct TouchState { position: Point, @@ -27,9 +28,6 @@ impl Default for TouchState { pub fn remarkable_parse_device_events(rx: &Receiver, ty: &Sender, dims: (u32, u32)) { - static touchscreen_dims: (u32, u32) = (767, 1023); - - let (tc_width, tc_height) = touchscreen_dims; let (scr_width, scr_height) = dims; let mut slot = 0; let mut fingers: FnvHashMap = FnvHashMap::default(); @@ -55,13 +53,13 @@ pub fn remarkable_parse_device_events(rx: &Receiver, ty: &Sender