-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmultitouch.tracker.pd
350 lines (350 loc) · 8.73 KB
/
multitouch.tracker.pd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
#N canvas 407 196 1920 1023 12;
#X obj 95 50 inlet;
#X obj 74 819 outlet;
#X obj 91 655 pack f f;
#X obj 59 550 f, f 4;
#X obj 60 584 spigot;
#X obj 165 491 t b f b;
#X msg 229 540 1;
#X obj 322 386 select -1;
#X msg 248 505 0;
#X obj 92 334 route MT_POSITION_X MT_POSITION_Y;
#X msg 38 741 update \$1 \$2;
#X msg 312 621 remove;
#X obj 321 361 route MT_TRACKING_ID MT_TOUCH_LENGTH MT_TOUCH_WIDTH
;
#X obj 451 491 f, f 4;
#X obj 452 525 spigot;
#X obj 557 432 t b f b;
#X msg 621 481 1;
#X obj 483 596 *;
#X msg 483 625 pressure \$1;
#N canvas 400 91 1920 1023 multitouch.slot2 0;
#X obj 121 7 inlet;
#X obj 222 315 unpack f f;
#X obj 316 419 pack f f;
#X obj 222 339 t f f b;
#X obj 289 339 t f f b;
#X obj 248 379 f;
#X obj 325 379 f;
#X obj 222 421 pack f f, f 10;
#X obj 360 340 unpack f f;
#X obj 438 99 select -1;
#X msg 439 223 1;
#X msg 423 290 0;
#X obj 780 363 f \$0;
#X obj 780 386 v MULTITOUCH.SLOT.ID;
#X obj 568 314 v MULTITOUCH.SLOT.ID;
#X obj 568 337 select \$0;
#X msg 568 360 0;
#X obj 571 388 v MULTITOUCH.SLOT.ID;
#X obj 595 417 r \$0-slot;
#X obj 20 547 spigot 1;
#X obj 595 440 route send_to;
#X obj 578 669 s;
#X obj 597 556 symbol;
#X obj 456 523 pack f f;
#X obj 468 564 spigot;
#X obj 483 390 s \$0-mode;
#X obj 74 477 r \$0-mode;
#X obj 535 526 r \$0-mode;
#X obj 535 549 == 0;
#X obj 653 567 s \$0-mode;
#X msg 634 527 0;
#X obj 433 460 unpack f f;
#X obj 348 461 unpack f f;
#X obj 404 493 -;
#X obj 444 493 -;
#X obj 830 266 v TRACKED.SLOTS;
#X obj 811 238 t f b;
#X obj 811 291 +;
#X obj 811 314 max 0;
#X obj 811 338 v TRACKED.SLOTS;
#X msg 811 209 1;
#X msg 687 216 -1;
#X obj 280 166 v TRACKED.SLOTS;
#X obj 155 384 > 1;
#X obj 21 631 spigot 1, f 10;
#X text 205 724 \$0-mode == 0 => touch mode;
#X text 205 744 \$0-mode == 1 => native gui mode;
#X text 432 725 (le mode touch est pris en charge par le gui);
#X text 437 745 (le gui est natif à puredata : on envoie des messages
mouse/mousup au patch);
#X obj 222 265 t l l;
#X obj 155 408 || \$1;
#X text 754 610 message pour signifier au gestionnaire touch que lÓS
ne renvoie pas dejà d'evenements mouse, f 26;
#X text -4 115 le slot no 0 est celui qui replique les événements
monotouch \, tranformés par l'OS en événements mouse. il faut donc
un mécanisme pour ne pas renvoyer des messages en double, f 33;
#X obj 438 73 route MT_TRACKING_ID slot;
#X obj 778 179 t b b;
#X obj 359 315 t l b;
#X obj 358 289 spigot 1;
#X msg 35 404 no_mouse \$1;
#X obj 159 571 list append;
#X msg 173 303 0;
#X obj 279 189 t f f;
#X obj 310 215 change;
#X obj 314 238 select 2;
#X obj 318 263 s SLOT-0.MOUSEUP;
#X obj 160 542 r SLOT-\$1.MOUSEUP;
#X obj 155 433 t f f;
#X msg 406 194 0;
#X obj 238 142 t b l b;
#X obj 34 373 f;
#X obj 772 11 loadbang;
#X msg 772 30 1;
#X obj 772 120 s \$0-mode;
#X msg 463 432 no_mouse 0 \, remove;
#X msg 159 599 mouseup \$1 \$2 1;
#X obj 22 888 s MULTITOUCH_CLICKS;
#X obj 206 480 list append;
#X msg 21 574 mouse \$3 \$4 1 0 \, motion \$1 \$2 0 \, mouseup \$1
\$2 1, f 16;
#X obj 581 480 t a b;
#X obj 766 456 symbol \$0-nop;
#X obj 152 776 r slot-\$1;
#X obj 23 841 spigot 1;
#X obj 152 799 route bypass;
#X obj 152 822 == 0;
#X msg 561 222 bypass 0;
#X obj 74 499 == 1;
#X obj 434 171 t b b b b b b b;
#N canvas 4 54 1232 960 pack(x-y)messages_add_offsetX/Y 0;
#X obj 81 42 inlet;
#X obj 300 426 outlet;
#X obj 87 402 pack f f;
#X obj 81 245 f, f 4;
#X obj 85 290 spigot;
#X obj 193 163 t b f b;
#X msg 239 201 1;
#X msg 341 249 0;
#X obj 80 84 route MT_POSITION_X MT_POSITION_Y;
#X obj 85 353 +;
#X obj 157 288 r OFFSET_X;
#X obj 164 367 +;
#X obj 192 318 r OFFSET_Y;
#X obj 90 437 outlet;
#X obj 429 112 r \$0-release;
#X connect 0 0 8 0;
#X connect 2 0 13 0;
#X connect 3 0 4 0;
#X connect 4 0 9 0;
#X connect 5 0 3 0;
#X connect 5 1 11 0;
#X connect 5 2 6 0;
#X connect 6 0 4 1;
#X connect 7 0 4 1;
#X connect 8 0 3 0;
#X connect 8 1 5 0;
#X connect 8 2 1 0;
#X connect 9 0 2 0;
#X connect 10 0 9 1;
#X connect 11 0 2 1;
#X connect 12 0 11 1;
#X connect 14 0 7 0;
#X restore 242 17 pd pack(x-y)messages_add_offsetX/Y;
#X text 503 17 dépendant de OFFSET_X / Y généré par les clients
multitouch.enable, f 26;
#X text 254 800 <--- INUTILE ???;
#X obj 212 446 t l l l;
#X obj 20 676 t a b a;
#X obj 392 116 s \$0-release;
#X obj 438 141 r \$0-release;
#X connect 0 0 86 0;
#X connect 1 0 3 0;
#X connect 1 1 4 0;
#X connect 2 0 31 0;
#X connect 2 0 75 1;
#X connect 3 0 7 0;
#X connect 3 1 5 1;
#X connect 3 2 5 0;
#X connect 4 0 7 1;
#X connect 4 1 6 1;
#X connect 4 2 6 0;
#X connect 5 0 2 0;
#X connect 6 0 2 1;
#X connect 7 0 89 0;
#X connect 8 0 5 1;
#X connect 8 1 6 1;
#X connect 9 0 91 0;
#X connect 9 1 54 0;
#X connect 10 0 25 0;
#X connect 10 0 56 1;
#X connect 10 0 43 1;
#X connect 11 0 56 1;
#X connect 12 0 13 0;
#X connect 14 0 15 0;
#X connect 15 0 16 0;
#X connect 16 0 17 0;
#X connect 18 0 20 0;
#X connect 19 0 76 0;
#X connect 20 0 77 0;
#X connect 22 0 21 1;
#X connect 23 0 24 0;
#X connect 24 0 21 0;
#X connect 26 0 84 0;
#X connect 27 0 28 0;
#X connect 28 0 24 1;
#X connect 30 0 29 0;
#X connect 31 0 33 1;
#X connect 31 1 34 1;
#X connect 32 0 33 0;
#X connect 32 1 34 0;
#X connect 33 0 23 0;
#X connect 34 0 23 1;
#X connect 35 0 37 1;
#X connect 36 0 37 0;
#X connect 36 1 35 0;
#X connect 37 0 38 0;
#X connect 38 0 39 0;
#X connect 40 0 36 0;
#X connect 41 0 36 0;
#X connect 42 0 60 0;
#X connect 43 0 50 0;
#X connect 44 0 90 0;
#X connect 49 0 1 0;
#X connect 49 1 56 0;
#X connect 50 0 65 0;
#X connect 53 0 9 0;
#X connect 54 0 12 0;
#X connect 54 1 40 0;
#X connect 55 0 8 0;
#X connect 55 1 11 0;
#X connect 56 0 55 0;
#X connect 57 0 21 0;
#X connect 58 0 73 0;
#X connect 59 0 43 1;
#X connect 60 0 43 0;
#X connect 60 1 61 0;
#X connect 61 0 62 0;
#X connect 62 0 63 0;
#X connect 64 0 58 0;
#X connect 65 0 44 1;
#X connect 65 1 68 1;
#X connect 66 0 61 0;
#X connect 67 0 68 0;
#X connect 67 1 49 0;
#X connect 67 2 42 0;
#X connect 68 0 57 0;
#X connect 69 0 70 0;
#X connect 69 0 78 0;
#X connect 70 0 71 0;
#X connect 72 0 21 0;
#X connect 73 0 90 0;
#X connect 75 0 19 0;
#X connect 76 0 44 0;
#X connect 77 0 22 0;
#X connect 77 1 30 0;
#X connect 78 0 21 1;
#X connect 79 0 81 0;
#X connect 80 0 74 0;
#X connect 81 0 82 0;
#X connect 82 0 80 1;
#X connect 83 0 81 0;
#X connect 84 0 19 1;
#X connect 85 0 66 0;
#X connect 85 1 10 0;
#X connect 85 2 14 0;
#X connect 85 3 41 0;
#X connect 85 4 78 0;
#X connect 85 5 72 0;
#X connect 85 6 83 0;
#X connect 86 0 67 0;
#X connect 86 1 53 0;
#X connect 89 0 75 0;
#X connect 89 1 58 1;
#X connect 89 2 32 0;
#X connect 90 0 80 0;
#X connect 90 1 59 0;
#X connect 92 0 85 0;
#X restore 129 193 pd multitouch.slot2;
#X obj 197 264 spigot;
#X obj 263 224 r \$0-mode;
#X text 482 33 \$0-mode == 0 => touch mode;
#X text 481 60 \$0-mode == 1 => native gui mode;
#X text 733 55 (le gui est natif à puredata : on envoie des messages
mouse/mousup au patch);
#X text 585 241 virtual mouse event generator;
#X obj 94 91 list prepend 1;
#X obj 234 58 r \$0-mode;
#X text 483 95 \$0-mode == 2 => cooked mode;
#X text 728 33 (le mode touch est pris en charge par le gui - ancienne
methode), f 69;
#X text 728 97 (le mode touch est pris en charge par le gui - nouvelle
methode), f 69;
#X text 183 299 nouvelle methode;
#X text 594 277 + touch mode (ancienne methode);
#X obj 787 465 r slot.\$1;
#X obj 787 490 route set_mode;
#X obj 720 544 s \$0-mode;
#X text 793 432 Contrôle externe du mode;
#X obj 84 696 t l l;
#X msg 185 740 add \$1 \$2;
#X obj 176 792 t a b;
#X msg 304 678 0;
#X obj 183 702 spigot 1;
#X msg 265 584 1;
#X obj 163 157 t a a;
#X obj 222 405 select 0;
#X obj 285 459 t b b b;
#X obj 112 122 route 2 0 1;
#X floatatom 234 83 5 0 0 0 - - -;
#X obj 352 484 bng 15 250 50 0 empty empty empty 17 7 0 10 -262144
-1 -1;
#X obj 327 410 s \$0-release;
#X obj 292 437 r \$0-release;
#X connect 0 0 26 0;
#X connect 2 0 37 0;
#X connect 3 0 4 0;
#X connect 4 0 2 0;
#X connect 5 0 3 0;
#X connect 5 1 2 1;
#X connect 5 2 6 0;
#X connect 6 0 4 1;
#X connect 7 0 49 0;
#X connect 8 0 4 1;
#X connect 9 0 3 0;
#X connect 9 1 5 0;
#X connect 9 2 12 0;
#X connect 10 0 1 0;
#X connect 11 0 1 0;
#X connect 12 0 7 0;
#X connect 12 1 13 0;
#X connect 12 2 15 0;
#X connect 13 0 14 0;
#X connect 14 0 17 0;
#X connect 15 0 13 0;
#X connect 15 1 17 1;
#X connect 15 2 16 0;
#X connect 16 0 14 1;
#X connect 17 0 18 0;
#X connect 18 0 1 0;
#X connect 20 0 9 0;
#X connect 21 0 20 1;
#X connect 21 0 44 0;
#X connect 26 0 46 0;
#X connect 27 0 26 1;
#X connect 27 0 47 0;
#X connect 33 0 34 0;
#X connect 34 0 35 0;
#X connect 37 0 10 0;
#X connect 37 1 41 0;
#X connect 38 0 39 0;
#X connect 39 0 1 0;
#X connect 39 1 40 0;
#X connect 40 0 41 1;
#X connect 41 0 38 0;
#X connect 42 0 41 1;
#X connect 43 0 19 0;
#X connect 43 1 20 0;
#X connect 44 0 45 0;
#X connect 45 0 42 0;
#X connect 45 1 11 0;
#X connect 45 2 8 0;
#X connect 45 2 48 0;
#X connect 46 0 9 0;
#X connect 46 1 19 0;
#X connect 46 2 43 0;
#X connect 50 0 45 0;