summaryrefslogtreecommitdiff
path: root/src/hwdata.c
diff options
context:
space:
mode:
authorHenrik Rydberg <rydberg@euromail.se>2008-11-06 16:00:08 +0100
committerHenrik Rydberg <rydberg@euromail.se>2008-11-06 16:00:08 +0100
commit3734c2c5dc65f41aa727d9d69201d604eab6e77d (patch)
treeea9fa82ccc2afef9183f01f77084a69d85756542 /src/hwdata.c
parent826439bce844fdbc8d7e47c0964cb15fd8a8fe93 (diff)
event loop works, buffer works, now look at synched event
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src/hwdata.c')
-rw-r--r--src/hwdata.c32
1 files changed, 10 insertions, 22 deletions
diff --git a/src/hwdata.c b/src/hwdata.c
index 212e860..17b9a46 100644
--- a/src/hwdata.c
+++ b/src/hwdata.c
@@ -1,17 +1,22 @@
1#include "hwdata.h" 1#include "hwdata.h"
2#include <errno.h>
3 2
4/******************************************************/ 3/******************************************************/
5 4
6static int parse_event(struct HWData *hw) 5void init_hwdata(struct HWData *hw)
6{
7 memset(hw, 0, sizeof(struct HWData));
8}
9
10/******************************************************/
11
12bool read_hwdata(struct HWData *hw, const struct input_event* ev)
7{ 13{
8 const struct input_event *ev = hw->event + hw->at++;
9 bool on = ev->value != 0; 14 bool on = ev->value != 0;
10 switch (ev->type) { 15 switch (ev->type) {
11 case EV_SYN: 16 case EV_SYN:
12 switch (ev->code) { 17 switch (ev->code) {
13 case SYN_REPORT: 18 case SYN_REPORT:
14 return 0; 19 return 1;
15 } 20 }
16 break; 21 break;
17 case EV_KEY: 22 case EV_KEY:
@@ -61,28 +66,11 @@ static int parse_event(struct HWData *hw)
61 } 66 }
62 break; 67 break;
63 } 68 }
64 return -EAGAIN; 69 return 0;
65} 70}
66 71
67/******************************************************/ 72/******************************************************/
68 73
69int read_hwdata(struct HWData *hw, int fd)
70{
71 int n;
72 do {
73 while (hw->at < hw->nev)
74 if (!parse_event(hw))
75 return 0;
76 n = read(fd, hw->event, sizeof(hw->event));
77 hw->at = 0;
78 hw->nev = n / sizeof(struct input_event);
79 xf86Msg(X_INFO, "multitouch: read: %d %d\n", n, hw->nev);
80 } while (n > 0);
81 return -EIO;
82};
83
84/******************************************************/
85
86void output_hwdata(const struct HWData *hw) 74void output_hwdata(const struct HWData *hw)
87{ 75{
88} 76}