fusuma-plugin-touchscreen 0.0.1.alpha

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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)