diff options
Diffstat (limited to 'src/touch-engine.c')
| -rw-r--r-- | src/touch-engine.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/touch-engine.c b/src/touch-engine.c index 6174e0d..8e43faf 100644 --- a/src/touch-engine.c +++ b/src/touch-engine.c | |||
| @@ -94,13 +94,15 @@ static void tp_destroy(struct touch_dev *dev, int slot) | |||
| 94 | } | 94 | } |
| 95 | } | 95 | } |
| 96 | 96 | ||
| 97 | static void tp_sync(struct touch_dev *dev, touch_time_t time) | 97 | static void tp_sync(struct touch_dev *dev, const struct input_event *syn) |
| 98 | { | 98 | { |
| 99 | static const touch_time_t ms = 1000; | ||
| 99 | struct touch_engine *engine = dev->priv; | 100 | struct touch_engine *engine = dev->priv; |
| 101 | touch_time_t time = syn->time.tv_usec / ms + syn->time.tv_sec * ms; | ||
| 100 | if (engine) { | 102 | if (engine) { |
| 101 | finalize_frame(&engine->frame, time); | 103 | finalize_frame(&engine->frame, time); |
| 102 | if (engine->sync) | 104 | if (engine->sync) |
| 103 | engine->sync(engine); | 105 | engine->sync(engine, syn); |
| 104 | engine->frame.ncreate = 0; | 106 | engine->frame.ncreate = 0; |
| 105 | engine->frame.nmodify = 0; | 107 | engine->frame.nmodify = 0; |
| 106 | engine->frame.ndestroy = 0; | 108 | engine->frame.ndestroy = 0; |
| @@ -110,7 +112,8 @@ static void tp_sync(struct touch_dev *dev, touch_time_t time) | |||
| 110 | void touch_engine_init(struct touch_engine *engine, | 112 | void touch_engine_init(struct touch_engine *engine, |
| 111 | void (*event)(struct touch_engine *engine, | 113 | void (*event)(struct touch_engine *engine, |
| 112 | const struct input_event *ev), | 114 | const struct input_event *ev), |
| 113 | void (*sync)(struct touch_engine *engine), | 115 | void (*sync)(struct touch_engine *engine, |
| 116 | const struct input_event *ev), | ||
| 114 | void *priv) | 117 | void *priv) |
| 115 | { | 118 | { |
| 116 | memset(engine, 0, sizeof(*engine)); | 119 | memset(engine, 0, sizeof(*engine)); |
