diff options
| author | Henrik Rydberg <rydberg@euromail.se> | 2010-04-18 09:10:36 +0200 |
|---|---|---|
| committer | Henrik Rydberg <rydberg@euromail.se> | 2010-04-18 09:58:49 +0200 |
| commit | 182d9419ded03262166514e3c76033a8daa14141 (patch) | |
| tree | 3265ebe907591793ee73c0186be3e0d810716722 /src/capabilities.c | |
| parent | 923754e3b864c33e23725435ae5049354a8ac5aa (diff) | |
Filter non-zero finger width events
Add filtering also to touch/width events, but be careful to treat a zero
touch exactly as zero.
Signed-off-by: Henrik Rydberg <rydberg@euromail.se>
Diffstat (limited to 'src/capabilities.c')
| -rw-r--r-- | src/capabilities.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/src/capabilities.c b/src/capabilities.c index 1f555f9..7f3b34d 100644 --- a/src/capabilities.c +++ b/src/capabilities.c | |||
| @@ -29,6 +29,7 @@ | |||
| 29 | #define CLICK_AREA(c) ((c->has_ibt ? 0.20 : 0.00) * get_cap_ysize(c)) | 29 | #define CLICK_AREA(c) ((c->has_ibt ? 0.20 : 0.00) * get_cap_ysize(c)) |
| 30 | 30 | ||
| 31 | static const int SN_COORD = 250; /* coordinate signal-to-noise ratio */ | 31 | static const int SN_COORD = 250; /* coordinate signal-to-noise ratio */ |
| 32 | static const int SN_WIDTH = 15; /* width signal-to-noise ratio */ | ||
| 32 | 33 | ||
| 33 | static const int bits_per_long = 8 * sizeof(long); | 34 | static const int bits_per_long = 8 * sizeof(long); |
| 34 | 35 | ||
| @@ -103,6 +104,9 @@ int read_capabilities(struct Capabilities *cap, int fd) | |||
| 103 | cap->xfuzz = get_cap_xsize(cap) / SN_COORD; | 104 | cap->xfuzz = get_cap_xsize(cap) / SN_COORD; |
| 104 | cap->yfuzz = get_cap_ysize(cap) / SN_COORD; | 105 | cap->yfuzz = get_cap_ysize(cap) / SN_COORD; |
| 105 | } | 106 | } |
| 107 | cap->wfuzz = cap->abs_touch_major.fuzz; | ||
| 108 | if (cap->wfuzz <= 0) | ||
| 109 | cap->wfuzz = get_cap_wsize(cap) / SN_WIDTH; | ||
| 106 | 110 | ||
| 107 | cap->yclick = cap->abs_position_y.maximum - CLICK_AREA(cap); | 111 | cap->yclick = cap->abs_position_y.maximum - CLICK_AREA(cap); |
| 108 | 112 | ||
| @@ -119,6 +123,11 @@ int get_cap_ysize(const struct Capabilities *cap) | |||
| 119 | return cap->abs_position_y.maximum - cap->abs_position_y.minimum; | 123 | return cap->abs_position_y.maximum - cap->abs_position_y.minimum; |
| 120 | } | 124 | } |
| 121 | 125 | ||
| 126 | int get_cap_wsize(const struct Capabilities *cap) | ||
| 127 | { | ||
| 128 | return cap->abs_touch_major.maximum - cap->abs_touch_major.minimum; | ||
| 129 | } | ||
| 130 | |||
| 122 | void output_capabilities(const struct Capabilities *cap) | 131 | void output_capabilities(const struct Capabilities *cap) |
| 123 | { | 132 | { |
| 124 | char line[1024]; | 133 | char line[1024]; |
