|
22 | 22 | #include "config.h"
|
23 | 23 |
|
24 | 24 | #ifdef REMARKABLE
|
25 |
| -#define TOUCH_FLOOD_EVENT ABS_DISTANCE |
26 | 25 | #define DRAW_APP_BEHIND_MODAL
|
27 | 26 | #define READ_XOCHITL_DATA
|
28 | 27 | #define GRAB_INPUT
|
29 | 28 | #define SUSPENDABLE
|
30 | 29 | #elif KOBO
|
31 |
| -#define TOUCH_FLOOD_EVENT ABS_MT_DISTANCE |
32 | 30 | #define DYNAMIC_BPP
|
33 | 31 | #define HAS_ROTATION
|
34 | 32 | #define PORTRAIT_ONLY
|
35 | 33 | #define USE_GRAYSCALE_32BIT
|
36 |
| -#else |
37 |
| -#define TOUCH_FLOOD_EVENT ABS_DISTANCE |
38 | 34 | #endif
|
39 | 35 |
|
40 |
| -#ifdef RMKIT_FBINK |
41 |
| -#define TOUCH_FLOOD_EVENT ABS_DISTANCE |
42 |
| -#endif |
43 | 36 |
|
44 | 37 | TIMEOUT := 1
|
45 | 38 | // all time is in seconds
|
@@ -775,18 +768,35 @@ class App: public IApp:
|
775 | 768 | if write(fd, &ev, sizeof(ev)) != sizeof(ev):
|
776 | 769 | debug "COULDNT WRITE EV", errno
|
777 | 770 |
|
| 771 | + // Figures out what event is supported for flooding |
| 772 | + uint16_t get_flood_event(): |
| 773 | + vector<uint16_t> features = { ABS_DISTANCE, ABS_MT_DISTANCE, ABS_PRESSURE } |
| 774 | + vector<string> names = { "ABS_DISTANCE", "ABS_MT_DISTANCE", "ABS_PRESSURE" } |
| 775 | + |
| 776 | + unsigned long bit[EV_MAX] |
| 777 | + fd := ui::MainLoop::in.touch.fd |
| 778 | + ioctl(fd, EVIOCGBIT(0, EV_MAX), bit) |
| 779 | + for i := 0; i < len(features); i++: |
| 780 | + if input::check_bit_set(fd, EV_ABS, features[i]): |
| 781 | + debug "SETTING FLOOD EVENT TO", names[i], features[i] |
| 782 | + return features[i] |
| 783 | + |
| 784 | + // return ABS_DISTANCE by default |
| 785 | + return ABS_DISTANCE |
| 786 | + |
778 | 787 |
|
779 | 788 | input_event* build_touch_flood():
|
780 | 789 | n := 512 * 8
|
781 | 790 | num_inst := 4
|
782 | 791 | input_event *ev = (input_event*) malloc(sizeof(struct input_event) * n * num_inst)
|
783 | 792 | memset(ev, 0, sizeof(input_event) * n * num_inst)
|
| 793 | + flood_event := get_flood_event() |
784 | 794 |
|
785 | 795 | i := 0
|
786 | 796 | while i < n:
|
787 |
| - ev[i++] = input_event{ type:EV_ABS, code:TOUCH_FLOOD_EVENT, value:1 } |
| 797 | + ev[i++] = input_event{ type:EV_ABS, code:flood_event, value:1 } |
788 | 798 | ev[i++] = input_event{ type:EV_SYN, code:0, value:0 }
|
789 |
| - ev[i++] = input_event{ type:EV_ABS, code:TOUCH_FLOOD_EVENT, value:2 } |
| 799 | + ev[i++] = input_event{ type:EV_ABS, code:flood_event, value:2 } |
790 | 800 | ev[i++] = input_event{ type:EV_SYN, code:0, value:0 }
|
791 | 801 |
|
792 | 802 | return ev
|
|
0 commit comments