diff --git a/setsu/include/setsu.h b/setsu/include/setsu.h index 3e8b51e..a34250a 100644 --- a/setsu/include/setsu.h +++ b/setsu/include/setsu.h @@ -72,5 +72,7 @@ void setsu_poll(Setsu *setsu, SetsuEventCb cb, void *user); SetsuDevice *setsu_connect(Setsu *setsu, const char *path); void setsu_disconnect(Setsu *setsu, SetsuDevice *dev); const char *setsu_device_get_path(SetsuDevice *dev); +uint32_t setsu_device_get_width(SetsuDevice *dev); +uint32_t setsu_device_get_height(SetsuDevice *dev); #endif diff --git a/setsu/src/setsu.c b/setsu/src/setsu.c index 6a4eb38..2e78e9a 100644 --- a/setsu/src/setsu.c +++ b/setsu/src/setsu.c @@ -308,6 +308,16 @@ const char *setsu_device_get_path(SetsuDevice *dev) return dev->path; } +uint32_t setsu_device_get_width(SetsuDevice *dev) +{ + return dev->max_x - dev->min_x; +} + +uint32_t setsu_device_get_height(SetsuDevice *dev) +{ + return dev->max_y - dev->min_y; +} + void kill_avail_device(Setsu *setsu, SetsuAvailDevice *adev) { for(SetsuDevice *dev = setsu->dev; dev;) @@ -477,8 +487,8 @@ static void device_drain(Setsu *setsu, SetsuDevice *dev, SetsuEventCb cb, void * { BEGIN_EVENT(SETSU_EVENT_POSITION); event.tracking_id = dev->slots[i].tracking_id; - event.x = dev->slots[i].x; - event.y = dev->slots[i].y; + event.x = (uint32_t)(dev->slots[i].x - dev->min_x); + event.y = (uint32_t)(dev->slots[i].y - dev->min_y); SEND_EVENT(); dev->slots[i].pos_dirty = false; } diff --git a/setsu/test/main.c b/setsu/test/main.c index 0244cad..41401ac 100644 --- a/setsu/test/main.c +++ b/setsu/test/main.c @@ -28,6 +28,7 @@ Setsu *setsu; #define WIDTH 1920 #define HEIGHT 942 #define TOUCHES_MAX 8 +#define SCALE 16 struct { bool down; @@ -47,15 +48,6 @@ void quit() void print_state() { - for(size_t i=0; i