fusuma-plugin-touchscreen 0.0.1.alpha

Sign up to get free protection for your applications and to get access to all the features.
Files changed (32) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +21 -0
  3. data/README.md +2 -0
  4. data/fusuma-plugin-touchscreen.gemspec +28 -0
  5. data/lib/fusuma/plugin/buffers/touch_buffer.rb +197 -0
  6. data/lib/fusuma/plugin/detectors/touch_detector.rb +95 -0
  7. data/lib/fusuma/plugin/detectors/touch_detectors/base.rb +17 -0
  8. data/lib/fusuma/plugin/detectors/touch_detectors/edge_detector.rb +13 -0
  9. data/lib/fusuma/plugin/detectors/touch_detectors/hold_detector.rb +26 -0
  10. data/lib/fusuma/plugin/detectors/touch_detectors/pinch_detector.rb +13 -0
  11. data/lib/fusuma/plugin/detectors/touch_detectors/rotate_detector.rb +13 -0
  12. data/lib/fusuma/plugin/detectors/touch_detectors/swipe_detector.rb +59 -0
  13. data/lib/fusuma/plugin/detectors/touch_detectors/tap_detector.rb +32 -0
  14. data/lib/fusuma/plugin/devices/touchscreen_device.rb +21 -0
  15. data/lib/fusuma/plugin/events/records/touch_record.rb +38 -0
  16. data/lib/fusuma/plugin/events/records/touch_records/base.rb +56 -0
  17. data/lib/fusuma/plugin/events/records/touch_records/hold_record.rb +21 -0
  18. data/lib/fusuma/plugin/events/records/touch_records/swipe_record.rb +33 -0
  19. data/lib/fusuma/plugin/events/records/touch_records/tap_record.rb +21 -0
  20. data/lib/fusuma/plugin/parsers/touch_parser.rb +103 -0
  21. data/lib/fusuma/plugin/touchscreen/version.rb +9 -0
  22. data/lib/fusuma/plugin/touchscreen.rb +11 -0
  23. data/lib/fusuma/utils/angle.rb +12 -0
  24. data/spec/fixtures/libinput-list-devices_ms-surface-3-pro.txt +182 -0
  25. data/spec/fusuma/plugin/devices/touchscreen_device_spec.rb +33 -0
  26. data/spec/fusuma/plugin/parsers/touch_parser_spec.rb +26 -0
  27. data/spec/samples/1-finger-hold.txt +90 -0
  28. data/spec/samples/2-fingers-swipe-right.txt +46 -0
  29. data/spec/samples/3-fingers-tap.txt +9 -0
  30. data/spec/samples/libinput-devices.txt +182 -0
  31. data/spec/spec_helper.rb +101 -0
  32. metadata +96 -0
@@ -0,0 +1,33 @@
1
+ require_relative './base'
2
+
3
+ # frozen_string_literal: true
4
+
5
+ module Fusuma
6
+ module Plugin
7
+ module Events
8
+ module Records
9
+ module TouchRecords
10
+ class SwipeRecord < Base
11
+
12
+ def initialize(direction:, **args)
13
+ super(**args)
14
+ @direction = direction.to_s
15
+ end
16
+
17
+ def repeatable?
18
+ true
19
+ end
20
+
21
+ protected
22
+
23
+ def config_index_keys
24
+ super << Config::Index::Key.new(@direction)
25
+ end
26
+
27
+
28
+ end # class SwipeRecord
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,21 @@
1
+ require_relative './base'
2
+
3
+ # frozen_string_literal: true
4
+
5
+ module Fusuma
6
+ module Plugin
7
+ module Events
8
+ module Records
9
+ module TouchRecords
10
+ class TapRecord < Base
11
+
12
+ def repeatable?
13
+ false
14
+ end
15
+
16
+ end # class TapRecord
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -0,0 +1,103 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Fusuma
4
+ module Plugin
5
+ module Parsers
6
+ class TouchParser < Parser
7
+ DEFAULT_SOURCE = 'libinput_command_input'
8
+
9
+ =begin
10
+ 3-finger touch:
11
+
12
+ event4 TOUCH_DOWN +0.000s 0 (0) 58.64/44.04 (148.16/73.74mm)
13
+ event4 TOUCH_DOWN +0.000s 1 (1) 49.33/47.67 (124.63/79.84mm)
14
+ event4 TOUCH_DOWN +0.000s 2 (2) 43.54/64.23 (110.00/107.56mm)
15
+ event4 TOUCH_UP +0.079s 2 (2)
16
+ event4 TOUCH_UP +0.099s 1 (1)
17
+ event4 TOUCH_UP +0.108s 0 (0)
18
+ =end
19
+
20
+ =begin
21
+ 2-finger swipe:
22
+
23
+ event4 TOUCH_DOWN +0.000s 0 (0) 27.07/42.62 (68.39/71.37mm)
24
+ event4 TOUCH_DOWN +0.000s 1 (1) 26.45/53.27 (66.82/89.21mm)
25
+ event4 TOUCH_MOTION +0.051s 1 (1) 26.84/53.27 (67.82/89.21mm)
26
+ event4 TOUCH_MOTION +0.061s 0 (0) 27.40/42.91 (69.24/71.86mm)
27
+ event4 TOUCH_MOTION +0.061s 1 (1) 27.21/53.28 (68.74/89.23mm)
28
+ event4 TOUCH_MOTION +0.071s 0 (0) 28.03/43.27 (70.82/72.47mm)
29
+ event4 TOUCH_MOTION +0.071s 1 (1) 27.67/53.33 (69.92/89.30mm)
30
+ event4 TOUCH_MOTION +0.082s 0 (0) 28.59/43.49 (72.24/72.84mm)
31
+ event4 TOUCH_MOTION +0.082s 1 (1) 28.43/53.37 (71.84/89.37mm)
32
+ event4 TOUCH_MOTION +0.091s 0 (0) 29.32/43.66 (74.08/73.12mm)
33
+ event4 TOUCH_MOTION +0.091s 1 (1) 28.90/53.41 (73.03/89.44mm)
34
+ event4 TOUCH_MOTION +0.101s 0 (0) 30.17/43.99 (76.24/73.67mm)
35
+ event4 TOUCH_MOTION +0.101s 1 (1) 29.84/53.21 (75.39/89.12mm)
36
+ event4 TOUCH_MOTION +0.111s 0 (0) 30.51/44.08 (77.08/73.81mm)
37
+ event4 TOUCH_MOTION +0.111s 1 (1) 30.47/53.35 (76.97/89.35mm)
38
+ event4 TOUCH_MOTION +0.121s 0 (0) 31.84/44.59 (80.45/74.67mm)
39
+ event4 TOUCH_MOTION +0.121s 1 (1) 31.65/53.73 (79.97/89.98mm)
40
+ event4 TOUCH_MOTION +0.131s 0 (0) 32.56/44.76 (82.26/74.95mm)
41
+ event4 TOUCH_MOTION +0.131s 1 (1) 32.62/54.21 (82.42/90.79mm)
42
+ event4 TOUCH_MOTION +0.141s 0 (0) 33.51/44.94 (84.66/75.26mm)
43
+ event4 TOUCH_MOTION +0.141s 1 (1) 33.49/54.46 (84.61/91.21mm)
44
+ event4 TOUCH_MOTION +0.151s 0 (0) 34.88/45.38 (88.13/76.00mm)
45
+ event4 TOUCH_MOTION +0.151s 1 (1) 35.05/54.74 (88.55/91.67mm)
46
+ event4 TOUCH_MOTION +0.162s 0 (0) 36.14/45.72 (91.32/76.56mm)
47
+ event4 TOUCH_MOTION +0.162s 1 (1) 36.62/55.28 (92.53/92.58mm)
48
+ event4 TOUCH_MOTION +0.171s 0 (0) 37.53/46.12 (94.82/77.23mm)
49
+ event4 TOUCH_MOTION +0.171s 1 (1) 38.21/55.84 (96.55/93.51mm)
50
+ event4 TOUCH_MOTION +0.181s 0 (0) 39.94/47.08 (100.92/78.84mm)
51
+ event4 TOUCH_MOTION +0.181s 1 (1) 39.91/56.03 (100.84/93.84mm)
52
+ event4 TOUCH_UP +0.220s 0 (0)
53
+ event4 TOUCH_UP +0.220s 1 (1)
54
+ =end
55
+
56
+ def parse_record(record)
57
+ MultiLogger.debug("#{self.class.name}##{__method__}")
58
+ MultiLogger.debug(" record = #{record.inspect}")
59
+
60
+ case record.to_s
61
+ when /TOUCH_DOWN\s+\+(\d+\.\d+)s\s+(\d+)\s+\(\d+\)\s+(\d+\.\d+)\/(\d+\.\d+)\s+\((\d+\.\d+)\/(\d+\.\d+)mm\)/
62
+ status = 'begin'
63
+ time_offset = $1
64
+ finger = $2
65
+ x_px = $3
66
+ y_px = $4
67
+ x_mm = $5
68
+ y_mm = $6
69
+
70
+ when /TOUCH_MOTION\s+\+(\d+\.\d+)s\s+(\d+)\s+\(\d+\)\s+(\d+\.\d+)\/(\d+\.\d+)\s+\((\d+\.\d+)\/(\d+\.\d+)mm\)/
71
+ status = 'update'
72
+ time_offset = $1
73
+ finger = $2
74
+ x_px = $3
75
+ y_px = $4
76
+ x_mm = $5
77
+ y_mm = $6
78
+
79
+ when /TOUCH_UP\s+\+(\d+\.\d+)s\s+(\d+)\s+\(\d+\)/
80
+ status = 'end'
81
+ time_offset = $1
82
+ finger = $2
83
+
84
+ else
85
+ return
86
+ end
87
+
88
+ Events::Records::TouchRecord.new(status: status,
89
+ finger: finger,
90
+ time_offset: time_offset,
91
+ x_px: x_px,
92
+ y_px: y_px,
93
+ x_mm: x_mm,
94
+ y_mm: y_mm)
95
+ end
96
+
97
+ def tag
98
+ 'libinput_touch_parser'
99
+ end
100
+ end
101
+ end
102
+ end
103
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Fusuma
4
+ module Plugin
5
+ module Touchscreen
6
+ VERSION = "0.0.1.alpha"
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,11 @@
1
+ require 'fusuma/device'
2
+ require 'fusuma/plugin/events/records/record.rb'
3
+ require 'fusuma/plugin/parsers/parser.rb'
4
+ require 'fusuma/plugin/buffers/buffer.rb'
5
+ require 'fusuma/plugin/detectors/detector.rb'
6
+
7
+ require_relative './devices/touchscreen_device'
8
+ require_relative './events/records/touch_record'
9
+ require_relative './parsers/touch_parser'
10
+ require_relative './buffers/touch_buffer'
11
+ require_relative './detectors/touch_detector'
@@ -0,0 +1,12 @@
1
+ module Fusuma
2
+ module Utils
3
+ module Angle
4
+
5
+ def self.difference(angle1, angle2)
6
+ da = (angle1 - angle2).abs
7
+ da > 180 ? 360 - da : da
8
+ end
9
+
10
+ end # module Angle
11
+ end
12
+ end
@@ -0,0 +1,182 @@
1
+ Device: Video Bus
2
+ Kernel: /dev/input/event7
3
+ Group: 1
4
+ Seat: seat0, default
5
+ Capabilities: keyboard
6
+ Tap-to-click: n/a
7
+ Tap-and-drag: n/a
8
+ Tap drag lock: n/a
9
+ Left-handed: n/a
10
+ Nat.scrolling: n/a
11
+ Middle emulation: n/a
12
+ Calibration: n/a
13
+ Scroll methods: none
14
+ Click methods: none
15
+ Disable-w-typing: n/a
16
+ Accel profiles: n/a
17
+ Rotation: n/a
18
+
19
+ Device: Surface Pro 3/4 Buttons
20
+ Kernel: /dev/input/event14
21
+ Group: 2
22
+ Seat: seat0, default
23
+ Capabilities: keyboard
24
+ Tap-to-click: n/a
25
+ Tap-and-drag: n/a
26
+ Tap drag lock: n/a
27
+ Left-handed: n/a
28
+ Nat.scrolling: n/a
29
+ Middle emulation: n/a
30
+ Calibration: n/a
31
+ Scroll methods: none
32
+ Click methods: none
33
+ Disable-w-typing: n/a
34
+ Accel profiles: n/a
35
+ Rotation: n/a
36
+
37
+ Device: Lid Switch
38
+ Kernel: /dev/input/event0
39
+ Group: 3
40
+ Seat: seat0, default
41
+ Capabilities: switch
42
+ Tap-to-click: n/a
43
+ Tap-and-drag: n/a
44
+ Tap drag lock: n/a
45
+ Left-handed: n/a
46
+ Nat.scrolling: n/a
47
+ Middle emulation: n/a
48
+ Calibration: n/a
49
+ Scroll methods: none
50
+ Click methods: none
51
+ Disable-w-typing: n/a
52
+ Accel profiles: n/a
53
+ Rotation: n/a
54
+
55
+ Device: Microsoft Surface Type Cover Keyboard
56
+ Kernel: /dev/input/event13
57
+ Group: 4
58
+ Seat: seat0, default
59
+ Capabilities: keyboard pointer
60
+ Tap-to-click: n/a
61
+ Tap-and-drag: n/a
62
+ Tap drag lock: n/a
63
+ Left-handed: n/a
64
+ Nat.scrolling: disabled
65
+ Middle emulation: n/a
66
+ Calibration: n/a
67
+ Scroll methods: none
68
+ Click methods: none
69
+ Disable-w-typing: n/a
70
+ Accel profiles: n/a
71
+ Rotation: n/a
72
+
73
+ Device: Microsoft Surface Type Cover Mouse
74
+ Kernel: /dev/input/event15
75
+ Group: 4
76
+ Seat: seat0, default
77
+ Capabilities: pointer
78
+ Tap-to-click: n/a
79
+ Tap-and-drag: n/a
80
+ Tap drag lock: n/a
81
+ Left-handed: disabled
82
+ Nat.scrolling: disabled
83
+ Middle emulation: disabled
84
+ Calibration: n/a
85
+ Scroll methods: button
86
+ Click methods: none
87
+ Disable-w-typing: n/a
88
+ Accel profiles: flat *adaptive
89
+ Rotation: n/a
90
+
91
+ Device: Microsoft Surface Type Cover Touchpad
92
+ Kernel: /dev/input/event17
93
+ Group: 4
94
+ Seat: seat0, default
95
+ Size: 98x50mm
96
+ Capabilities: pointer gesture
97
+ Tap-to-click: disabled
98
+ Tap-and-drag: enabled
99
+ Tap drag lock: disabled
100
+ Left-handed: disabled
101
+ Nat.scrolling: disabled
102
+ Middle emulation: disabled
103
+ Calibration: n/a
104
+ Scroll methods: *two-finger edge
105
+ Click methods: *button-areas clickfinger
106
+ Disable-w-typing: enabled
107
+ Accel profiles: flat *adaptive
108
+ Rotation: n/a
109
+
110
+ Device: Microsoft LifeCam Front: Micros
111
+ Kernel: /dev/input/event1
112
+ Group: 5
113
+ Seat: seat0, default
114
+ Capabilities: keyboard
115
+ Tap-to-click: n/a
116
+ Tap-and-drag: n/a
117
+ Tap drag lock: n/a
118
+ Left-handed: n/a
119
+ Nat.scrolling: n/a
120
+ Middle emulation: n/a
121
+ Calibration: n/a
122
+ Scroll methods: none
123
+ Click methods: none
124
+ Disable-w-typing: n/a
125
+ Accel profiles: n/a
126
+ Rotation: n/a
127
+
128
+ Device: Microsoft LifeCam Rear: Microso
129
+ Kernel: /dev/input/event2
130
+ Group: 6
131
+ Seat: seat0, default
132
+ Capabilities: keyboard
133
+ Tap-to-click: n/a
134
+ Tap-and-drag: n/a
135
+ Tap drag lock: n/a
136
+ Left-handed: n/a
137
+ Nat.scrolling: n/a
138
+ Middle emulation: n/a
139
+ Calibration: n/a
140
+ Scroll methods: none
141
+ Click methods: none
142
+ Disable-w-typing: n/a
143
+ Accel profiles: n/a
144
+ Rotation: n/a
145
+
146
+ Device: NTRG0001:01 1B96:1B05 Stylus
147
+ Kernel: /dev/input/event3
148
+ Group: 7
149
+ Seat: seat0, default
150
+ Size: 253x167mm
151
+ Capabilities: tablet
152
+ Tap-to-click: n/a
153
+ Tap-and-drag: n/a
154
+ Tap drag lock: n/a
155
+ Left-handed: n/a
156
+ Nat.scrolling: n/a
157
+ Middle emulation: n/a
158
+ Calibration: identity matrix
159
+ Scroll methods: none
160
+ Click methods: none
161
+ Disable-w-typing: n/a
162
+ Accel profiles: none
163
+ Rotation: n/a
164
+
165
+ Device: NTRG0001:01 1B96:1B05
166
+ Kernel: /dev/input/event4
167
+ Group: 7
168
+ Seat: seat0, default
169
+ Size: 253x167mm
170
+ Capabilities: touch
171
+ Tap-to-click: n/a
172
+ Tap-and-drag: n/a
173
+ Tap drag lock: n/a
174
+ Left-handed: n/a
175
+ Nat.scrolling: n/a
176
+ Middle emulation: n/a
177
+ Calibration: identity matrix
178
+ Scroll methods: none
179
+ Click methods: none
180
+ Disable-w-typing: n/a
181
+ Accel profiles: n/a
182
+ Rotation: n/a
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "spec_helper"
4
+ require './lib/fusuma/plugin/devices/touchscreen_device'
5
+
6
+ module Fusuma
7
+ RSpec.describe Plugin::Touchscreen::DevicePatch do
8
+ let(:libinput_device_command) { "dummy-libinput-list-devices" }
9
+ before do
10
+ Device.reset
11
+ allow_any_instance_of(LibinputCommand)
12
+ .to receive(:list_devices_command)
13
+ .and_return(libinput_device_command)
14
+
15
+ @dummy_io = StringIO.new("dummy")
16
+ allow(Open3).to receive(:popen3)
17
+ .with(libinput_device_command)
18
+ .and_return([@dummy_io, list_devices_output, @dummy_io, nil])
19
+ end
20
+
21
+ # that's the only touchscreen device I have :)
22
+ context 'Microsoft Surface 3 Pro' do
23
+ let(:list_devices_output) do
24
+ File.open("./spec/fixtures/libinput-list-devices_ms-surface-3-pro.txt")
25
+ end
26
+
27
+ it 'detects Microsoft Surface 3 Pro touchscreen' do
28
+ expect(Device.available.map(&:name)).to include 'NTRG0001:01 1B96:1B05'
29
+ end
30
+ end
31
+
32
+ end
33
+ end
@@ -0,0 +1,26 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'spec_helper'
4
+ require './lib/fusuma/plugin/parsers/touch_parser'
5
+
6
+ module Fusuma
7
+ RSpec.describe Plugin::Parsers::TouchParser do
8
+ describe '#parse' do
9
+ it 'TOUCH_DOWN' do
10
+
11
+ end
12
+
13
+ it 'TOUCH_UP' do
14
+
15
+ end
16
+
17
+ it 'TOUCH_MOTION' do
18
+
19
+ end
20
+
21
+ it 'not a touch event' do
22
+
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,90 @@
1
+ event4 TOUCH_DOWN +0.000s 0 (0) 54.37/59.60 (137.37/99.81mm)
2
+ event4 TOUCH_FRAME +0.000s
3
+ event4 TOUCH_MOTION +0.153s 0 (0) 54.36/59.62 (137.34/99.84mm)
4
+ event4 TOUCH_FRAME +0.153s
5
+ event4 TOUCH_MOTION +0.162s 0 (0) 54.34/59.64 (137.29/99.88mm)
6
+ event4 TOUCH_FRAME +0.162s
7
+ event4 TOUCH_MOTION +0.172s 0 (0) 54.33/59.66 (137.26/99.91mm)
8
+ event4 TOUCH_FRAME +0.172s
9
+ event4 TOUCH_MOTION +0.182s 0 (0) 54.32/59.67 (137.24/99.93mm)
10
+ event4 TOUCH_FRAME +0.182s
11
+ event4 TOUCH_MOTION +0.272s 0 (0) 54.29/59.71 (137.16/100.00mm)
12
+ event4 TOUCH_FRAME +0.272s
13
+ event4 TOUCH_MOTION +0.391s 0 (0) 54.25/59.80 (137.08/100.14mm)
14
+ event4 TOUCH_FRAME +0.391s
15
+ event4 TOUCH_MOTION +0.530s 0 (0) 54.21/59.87 (136.97/100.26mm)
16
+ event4 TOUCH_FRAME +0.530s
17
+ event4 TOUCH_MOTION +0.639s 0 (0) 54.18/59.92 (136.89/100.35mm)
18
+ event4 TOUCH_FRAME +0.639s
19
+ event4 TOUCH_MOTION +0.659s 0 (0) 54.17/59.94 (136.87/100.37mm)
20
+ event4 TOUCH_FRAME +0.659s
21
+ event4 TOUCH_MOTION +0.679s 0 (0) 54.16/59.95 (136.84/100.40mm)
22
+ event4 TOUCH_FRAME +0.679s
23
+ event4 TOUCH_MOTION +0.709s 0 (0) 54.15/59.98 (136.82/100.44mm)
24
+ event4 TOUCH_FRAME +0.709s
25
+ event4 TOUCH_MOTION +1.643s 0 (0) 54.14/60.01 (136.79/100.49mm)
26
+ event4 TOUCH_FRAME +1.643s
27
+ event4 TOUCH_MOTION +1.653s 0 (0) 54.13/60.03 (136.76/100.53mm)
28
+ event4 TOUCH_FRAME +1.653s
29
+ event4 TOUCH_MOTION +1.663s 0 (0) 54.13/60.05 (136.76/100.56mm)
30
+ event4 TOUCH_FRAME +1.663s
31
+ event4 TOUCH_MOTION +1.672s 0 (0) 54.12/60.07 (136.74/100.60mm)
32
+ event4 TOUCH_FRAME +1.672s
33
+ event4 TOUCH_MOTION +1.682s 0 (0) 54.12/60.09 (136.74/100.63mm)
34
+ event4 TOUCH_FRAME +1.682s
35
+ event4 TOUCH_MOTION +1.692s 0 (0) 54.11/60.10 (136.71/100.65mm)
36
+ event4 TOUCH_FRAME +1.692s
37
+ event4 TOUCH_MOTION +1.702s 0 (0) 54.11/60.13 (136.71/100.70mm)
38
+ event4 TOUCH_FRAME +1.702s
39
+ event4 TOUCH_MOTION +1.712s 0 (0) 54.10/60.14 (136.68/100.72mm)
40
+ event4 TOUCH_FRAME +1.712s
41
+ event4 TOUCH_MOTION +1.722s 0 (0) 54.10/60.16 (136.68/100.74mm)
42
+ event4 TOUCH_FRAME +1.722s
43
+ event4 TOUCH_MOTION +1.732s 0 (0) 54.09/60.17 (136.66/100.77mm)
44
+ event4 TOUCH_FRAME +1.732s
45
+ event4 TOUCH_MOTION +1.743s 0 (0) 54.09/60.20 (136.66/100.81mm)
46
+ event4 TOUCH_FRAME +1.743s
47
+ event4 TOUCH_MOTION +1.752s 0 (0) 54.08/60.21 (136.63/100.84mm)
48
+ event4 TOUCH_FRAME +1.752s
49
+ event4 TOUCH_MOTION +1.762s 0 (0) 54.08/60.23 (136.63/100.86mm)
50
+ event4 TOUCH_FRAME +1.762s
51
+ event4 TOUCH_MOTION +1.772s 0 (0) 54.08/60.24 (136.63/100.88mm)
52
+ event4 TOUCH_FRAME +1.772s
53
+ event4 TOUCH_MOTION +1.782s 0 (0) 54.07/60.26 (136.61/100.91mm)
54
+ event4 TOUCH_FRAME +1.782s
55
+ event4 TOUCH_MOTION +1.792s 0 (0) 54.07/60.27 (136.61/100.93mm)
56
+ event4 TOUCH_FRAME +1.792s
57
+ event4 TOUCH_MOTION +1.802s 0 (0) 54.07/60.28 (136.61/100.95mm)
58
+ event4 TOUCH_FRAME +1.802s
59
+ event4 TOUCH_MOTION +1.812s 0 (0) 54.06/60.30 (136.58/100.98mm)
60
+ event4 TOUCH_FRAME +1.812s
61
+ event4 TOUCH_MOTION +1.822s 0 (0) 54.06/60.32 (136.58/101.02mm)
62
+ event4 TOUCH_FRAME +1.822s
63
+ event4 TOUCH_MOTION +1.832s 0 (0) 54.06/60.37 (136.58/101.09mm)
64
+ event4 TOUCH_FRAME +1.832s
65
+ event4 TOUCH_MOTION +1.841s 0 (0) 54.06/60.42 (136.58/101.19mm)
66
+ event4 TOUCH_FRAME +1.841s
67
+ event4 TOUCH_MOTION +1.851s 0 (0) 54.06/60.46 (136.58/101.26mm)
68
+ event4 TOUCH_FRAME +1.851s
69
+ event4 TOUCH_MOTION +1.861s 0 (0) 54.06/60.52 (136.58/101.35mm)
70
+ event4 TOUCH_FRAME +1.861s
71
+ event4 TOUCH_MOTION +1.871s 0 (0) 54.06/60.56 (136.58/101.42mm)
72
+ event4 TOUCH_FRAME +1.871s
73
+ event4 TOUCH_MOTION +1.881s 0 (0) 54.06/60.60 (136.58/101.49mm)
74
+ event4 TOUCH_FRAME +1.881s
75
+ event4 TOUCH_MOTION +1.891s 0 (0) 54.06/60.64 (136.58/101.56mm)
76
+ event4 TOUCH_FRAME +1.891s
77
+ event4 TOUCH_MOTION +1.902s 0 (0) 54.06/60.67 (136.58/101.60mm)
78
+ event4 TOUCH_FRAME +1.902s
79
+ event4 TOUCH_MOTION +1.911s 0 (0) 54.06/60.70 (136.58/101.65mm)
80
+ event4 TOUCH_FRAME +1.911s
81
+ event4 TOUCH_MOTION +1.921s 0 (0) 54.06/60.73 (136.58/101.70mm)
82
+ event4 TOUCH_FRAME +1.921s
83
+ event4 TOUCH_MOTION +1.931s 0 (0) 54.06/60.74 (136.58/101.72mm)
84
+ event4 TOUCH_FRAME +1.931s
85
+ event4 TOUCH_MOTION +1.941s 0 (0) 54.06/60.76 (136.58/101.74mm)
86
+ event4 TOUCH_FRAME +1.941s
87
+ event4 TOUCH_MOTION +1.951s 0 (0) 54.06/60.77 (136.58/101.77mm)
88
+ event4 TOUCH_FRAME +1.951s
89
+ event4 TOUCH_UP +2.904s 0 (0)
90
+ event4 TOUCH_FRAME +2.904s
@@ -0,0 +1,46 @@
1
+ event4 TOUCH_DOWN +0.000s 0 (0) 27.07/42.62 (68.39/71.37mm)
2
+ event4 TOUCH_DOWN +0.000s 1 (1) 26.45/53.27 (66.82/89.21mm)
3
+ event4 TOUCH_FRAME +0.000s
4
+ event4 TOUCH_MOTION +0.051s 1 (1) 26.84/53.27 (67.82/89.21mm)
5
+ event4 TOUCH_FRAME +0.051s
6
+ event4 TOUCH_MOTION +0.061s 0 (0) 27.40/42.91 (69.24/71.86mm)
7
+ event4 TOUCH_MOTION +0.061s 1 (1) 27.21/53.28 (68.74/89.23mm)
8
+ event4 TOUCH_FRAME +0.061s
9
+ event4 TOUCH_MOTION +0.071s 0 (0) 28.03/43.27 (70.82/72.47mm)
10
+ event4 TOUCH_MOTION +0.071s 1 (1) 27.67/53.33 (69.92/89.30mm)
11
+ event4 TOUCH_FRAME +0.071s
12
+ event4 TOUCH_MOTION +0.082s 0 (0) 28.59/43.49 (72.24/72.84mm)
13
+ event4 TOUCH_MOTION +0.082s 1 (1) 28.43/53.37 (71.84/89.37mm)
14
+ event4 TOUCH_FRAME +0.082s
15
+ event4 TOUCH_MOTION +0.091s 0 (0) 29.32/43.66 (74.08/73.12mm)
16
+ event4 TOUCH_MOTION +0.091s 1 (1) 28.90/53.41 (73.03/89.44mm)
17
+ event4 TOUCH_FRAME +0.091s
18
+ event4 TOUCH_MOTION +0.101s 0 (0) 30.17/43.99 (76.24/73.67mm)
19
+ event4 TOUCH_MOTION +0.101s 1 (1) 29.84/53.21 (75.39/89.12mm)
20
+ event4 TOUCH_FRAME +0.101s
21
+ event4 TOUCH_MOTION +0.111s 0 (0) 30.51/44.08 (77.08/73.81mm)
22
+ event4 TOUCH_MOTION +0.111s 1 (1) 30.47/53.35 (76.97/89.35mm)
23
+ event4 TOUCH_FRAME +0.111s
24
+ event4 TOUCH_MOTION +0.121s 0 (0) 31.84/44.59 (80.45/74.67mm)
25
+ event4 TOUCH_MOTION +0.121s 1 (1) 31.65/53.73 (79.97/89.98mm)
26
+ event4 TOUCH_FRAME +0.121s
27
+ event4 TOUCH_MOTION +0.131s 0 (0) 32.56/44.76 (82.26/74.95mm)
28
+ event4 TOUCH_MOTION +0.131s 1 (1) 32.62/54.21 (82.42/90.79mm)
29
+ event4 TOUCH_FRAME +0.131s
30
+ event4 TOUCH_MOTION +0.141s 0 (0) 33.51/44.94 (84.66/75.26mm)
31
+ event4 TOUCH_MOTION +0.141s 1 (1) 33.49/54.46 (84.61/91.21mm)
32
+ event4 TOUCH_FRAME +0.141s
33
+ event4 TOUCH_MOTION +0.151s 0 (0) 34.88/45.38 (88.13/76.00mm)
34
+ event4 TOUCH_MOTION +0.151s 1 (1) 35.05/54.74 (88.55/91.67mm)
35
+ event4 TOUCH_FRAME +0.151s
36
+ event4 TOUCH_MOTION +0.162s 0 (0) 36.14/45.72 (91.32/76.56mm)
37
+ event4 TOUCH_MOTION +0.162s 1 (1) 36.62/55.28 (92.53/92.58mm)
38
+ event4 TOUCH_FRAME +0.162s
39
+ event4 TOUCH_MOTION +0.171s 0 (0) 37.53/46.12 (94.82/77.23mm)
40
+ event4 TOUCH_MOTION +0.171s 1 (1) 38.21/55.84 (96.55/93.51mm)
41
+ event4 TOUCH_FRAME +0.171s
42
+ event4 TOUCH_MOTION +0.181s 0 (0) 39.94/47.08 (100.92/78.84mm)
43
+ event4 TOUCH_MOTION +0.181s 1 (1) 39.91/56.03 (100.84/93.84mm)
44
+ event4 TOUCH_FRAME +0.181s
45
+ event4 TOUCH_UP +0.220s 0 (0)
46
+ event4 TOUCH_UP +0.220s 1 (1)
@@ -0,0 +1,9 @@
1
+ event4 TOUCH_DOWN +0.000s 0 (0) 58.64/44.04 (148.16/73.74mm)
2
+ event4 TOUCH_DOWN +0.000s 1 (1) 49.33/47.67 (124.63/79.84mm)
3
+ event4 TOUCH_DOWN +0.000s 2 (2) 43.54/64.23 (110.00/107.56mm)
4
+ event4 TOUCH_FRAME +0.000s
5
+ event4 TOUCH_UP +0.079s 2 (2)
6
+ event4 TOUCH_FRAME +0.079s
7
+ event4 TOUCH_UP +0.099s 1 (1)
8
+ event4 TOUCH_FRAME +0.099s
9
+ event4 TOUCH_UP +0.108s 0 (0)