mirror of
https://github.com/koreader/koreader.git
synced 2025-12-13 20:36:53 +01:00
@@ -22,20 +22,37 @@ local ABS_Y = 01
|
|||||||
local ABS_MT_POSITION_X = 53
|
local ABS_MT_POSITION_X = 53
|
||||||
local ABS_MT_POSITION_Y = 54
|
local ABS_MT_POSITION_Y = 54
|
||||||
-- Resolutions from libremarkable src/framebuffer/common.rs
|
-- Resolutions from libremarkable src/framebuffer/common.rs
|
||||||
|
local screen_width = 1404 -- unscaled_size_check: ignore
|
||||||
|
local screen_height = 1872 -- unscaled_size_check: ignore
|
||||||
|
local wacom_width = 15725 -- unscaled_size_check: ignore
|
||||||
|
local wacom_height = 20967 -- unscaled_size_check: ignore
|
||||||
|
local wacom_scale_x = screen_width / wacom_width
|
||||||
|
local wacom_scale_y = screen_height / wacom_height
|
||||||
local mt_width = 767 -- unscaled_size_check: ignore
|
local mt_width = 767 -- unscaled_size_check: ignore
|
||||||
local mt_height = 1023 -- unscaled_size_check: ignore
|
local mt_height = 1023 -- unscaled_size_check: ignore
|
||||||
local mt_scale_x = 1404 / mt_width
|
local mt_scale_x = screen_width / mt_width
|
||||||
local mt_scale_y = 1872 / mt_height
|
local mt_scale_y = screen_height / mt_height
|
||||||
local adjustTouchEvt = function(self, ev)
|
local adjustTouchEvt = function(self, ev)
|
||||||
if ev.type == EV_ABS then
|
if ev.type == EV_ABS then
|
||||||
-- Mirror X and scale up both X & Y as touch input is different res from
|
-- Mirror X and scale up both X & Y as touch input is different res from
|
||||||
-- display
|
-- display
|
||||||
if ev.code == ABS_X or ev.code == ABS_MT_POSITION_X then
|
if ev.code == ABS_MT_POSITION_X then
|
||||||
ev.value = (mt_width - ev.value) * mt_scale_x
|
ev.value = (mt_width - ev.value) * mt_scale_x
|
||||||
end
|
end
|
||||||
if ev.code == ABS_Y or ev.code == ABS_MT_POSITION_Y then
|
if ev.code == ABS_MT_POSITION_Y then
|
||||||
ev.value = (mt_height - ev.value) * mt_scale_y
|
ev.value = (mt_height - ev.value) * mt_scale_y
|
||||||
end
|
end
|
||||||
|
-- The Wacom input layer is non-multi-touch and
|
||||||
|
-- uses its own scaling factor.
|
||||||
|
-- The X and Y coordinates are swapped, and the (real) Y
|
||||||
|
-- coordinate has to be inverted.
|
||||||
|
if ev.code == ABS_X then
|
||||||
|
ev.code = ABS_Y
|
||||||
|
ev.value = (wacom_height - ev.value) * wacom_scale_y
|
||||||
|
elseif ev.code == ABS_Y then
|
||||||
|
ev.code = ABS_X
|
||||||
|
ev.value = ev.value * wacom_scale_x
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user