cam2mouse.pd 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429
  1. #N canvas 145 90 871 639 10;
  2. #X text 451 6 GEM object;
  3. #X obj 8 46 cnv 15 540 100 empty empty empty 20 12 0 14 -233017 -66577
  4. 0;
  5. #X obj 559 47 cnv 15 280 500 empty empty empty 20 12 0 14 -228992 -66577
  6. 0;
  7. #X text 71 21 Class: pix object (pix source);
  8. #X text 453 27 Example:;
  9. #X text 50 2 Synopsis: [pix_video];
  10. #X text 29 47 Description: open a camera and get input;
  11. #X obj 9 182 cnv 15 540 365 empty empty empty 20 12 0 14 -233017 -66577
  12. 0;
  13. #X obj 9 149 cnv 15 540 30 empty empty empty 20 12 0 14 -195568 -66577
  14. 0;
  15. #X text 18 148 Arguments:;
  16. #X text 17 486 Outlet 1: gemlist;
  17. #X text 17 198 Inlet 1: gemlist;
  18. #X text 16 308 Inlet 1: colorspace "RGBA|YUV|Grey": decodes the current
  19. film into the specified colorspace.;
  20. #X text 64 159 none;
  21. #X text 33 184 Inlet:;
  22. #X text 33 472 Outlet:;
  23. #X obj 717 460 cnv 15 100 60 empty empty empty 20 12 0 14 -195568 -66577
  24. 0;
  25. #N canvas 1 55 450 300 gemwin 1;
  26. #X obj 132 136 gemwin;
  27. #X obj 67 89 outlet;
  28. #X obj 67 10 inlet;
  29. #X msg 67 70 set destroy;
  30. #X msg 205 149 destroy;
  31. #X msg 156 71 set create;
  32. #X obj 67 41 route create;
  33. #X msg 132 112 border 0 \, dimen 1920 1080 \, offset 1920 0 \, create
  34. \, 1;
  35. #X connect 2 0 6 0;
  36. #X connect 3 0 1 0;
  37. #X connect 4 0 0 0;
  38. #X connect 5 0 1 0;
  39. #X connect 6 0 3 0;
  40. #X connect 6 0 7 0;
  41. #X connect 6 1 5 0;
  42. #X connect 6 1 4 0;
  43. #X connect 7 0 0 0;
  44. #X restore 722 499 pd gemwin;
  45. #X msg 722 477 create;
  46. #X text 718 456 Create window:;
  47. #X obj 563 86 cnv 15 230 280 empty empty empty 20 12 0 14 -24198 -66577
  48. 0;
  49. #X obj 567 526 rectangle 4 3;
  50. #X obj 567 502 pix_texture;
  51. #X text 17 216 Inlet 1: device <spec>: the number or file path to the
  52. input device;
  53. #X text 16 339 Inlet 1: dimen <number> <number>: set various dimensions
  54. for the image (does not work on all capture devices);
  55. #X text 15 371 Inlet 1: enumerate: list all devices to the console
  56. ;
  57. #X text 17 245 Inlet 1: driver <number>: switch between different drivers
  58. \, e.g. v4l \, ieee1394 \, etc.;
  59. #X text 16 276 Inlet 1: driver <symbol>: switch between different drivers
  60. \, e.g. v4l \, v4l2 \, dv...;
  61. #X text 13 66 [pix_video] opens a wide array of cameras \, USB to FireWire
  62. to capture cards \, as long as the camera is supported by your operating
  63. system.;
  64. #X obj 567 53 gemhead;
  65. #X msg 596 124 dimen 64 64;
  66. #X msg 586 99 dimen 256 128;
  67. #X msg 635 261 enumerate;
  68. #X msg 641 283 dialog;
  69. #X msg 604 153 colorspace RGBA;
  70. #X msg 609 211 device 1;
  71. #X msg 642 312 driver dv;
  72. #N canvas 515 117 572 549 properties 0;
  73. #X msg 41 203 enumProps;
  74. #X obj 31 21 cnv 15 400 80 empty empty readProperties 20 12 0 14 -233017
  75. -66577 0;
  76. #X obj 39 47 hradio 15 1 0 8 \$0-propreadId \$0-propreadId empty 0
  77. -8 0 10 -262144 -1 -1 0;
  78. #X obj 40 70 cnv 15 260 20 empty \$0-propreadName <none> 10 9 0 14
  79. -203904 -66577 0;
  80. #N canvas 185 50 450 537 PropertyLogic 0;
  81. #N canvas 1408 84 774 460 id2property 0;
  82. #X obj 353 106 r \$0-info;
  83. #X obj 353 130 route proplist;
  84. #X obj 353 152 route read numread;
  85. #X obj 405 176 t b f;
  86. #X obj 353 174 list;
  87. #X obj 353 219 list prepend;
  88. #X msg 353 196 \$1;
  89. #X obj 353 239 t l l;
  90. #X obj 95 197 list prepend;
  91. #X obj 525 176 t b f;
  92. #X obj 473 174 list;
  93. #X obj 473 219 list prepend;
  94. #X msg 473 196 \$1;
  95. #X obj 473 239 t l l;
  96. #X obj 473 152 route write numwrite;
  97. #X obj 95 69 inlet readID;
  98. #X obj 225 70 inlet writeID;
  99. #X obj 123 378 outlet readName;
  100. #X obj 253 356 outlet writeName;
  101. #X obj 95 176 t b f;
  102. #X obj 95 219 list split;
  103. #X obj 123 266 symbol;
  104. #X msg 123 241 symbol \$1;
  105. #X obj 225 197 list prepend;
  106. #X obj 225 176 t b f;
  107. #X obj 225 219 list split;
  108. #X obj 253 266 symbol;
  109. #X msg 253 241 symbol \$1;
  110. #X obj 95 91 route float;
  111. #X obj 225 92 route float;
  112. #X msg 432 333 number \$1;
  113. #X msg 552 333 number \$1;
  114. #X obj 432 353 s \$0-propreadId;
  115. #X obj 552 353 s \$0-propwriteId;
  116. #X obj 602 254 t f f;
  117. #X msg 602 232 0;
  118. #X obj 602 211 loadbang;
  119. #X connect 0 0 1 0;
  120. #X connect 1 0 2 0;
  121. #X connect 2 0 4 0;
  122. #X connect 2 1 3 0;
  123. #X connect 2 2 14 0;
  124. #X connect 3 0 5 1;
  125. #X connect 3 1 30 0;
  126. #X connect 4 0 6 0;
  127. #X connect 5 0 7 0;
  128. #X connect 6 0 5 0;
  129. #X connect 7 0 8 1;
  130. #X connect 7 1 5 1;
  131. #X connect 8 0 20 0;
  132. #X connect 9 0 11 1;
  133. #X connect 9 1 31 0;
  134. #X connect 10 0 12 0;
  135. #X connect 11 0 13 0;
  136. #X connect 12 0 11 0;
  137. #X connect 13 0 23 1;
  138. #X connect 13 1 11 1;
  139. #X connect 14 0 10 0;
  140. #X connect 14 1 9 0;
  141. #X connect 15 0 28 0;
  142. #X connect 16 0 29 0;
  143. #X connect 19 0 8 0;
  144. #X connect 19 1 20 1;
  145. #X connect 20 1 22 0;
  146. #X connect 21 0 17 0;
  147. #X connect 22 0 21 0;
  148. #X connect 23 0 25 0;
  149. #X connect 24 0 23 0;
  150. #X connect 24 1 25 1;
  151. #X connect 25 1 27 0;
  152. #X connect 26 0 18 0;
  153. #X connect 27 0 26 0;
  154. #X connect 28 0 19 0;
  155. #X connect 29 0 24 0;
  156. #X connect 30 0 32 0;
  157. #X connect 31 0 33 0;
  158. #X connect 34 0 30 0;
  159. #X connect 34 1 31 0;
  160. #X connect 35 0 34 0;
  161. #X connect 36 0 35 0;
  162. #X restore 188 192 pd id2property;
  163. #X obj 320 407 list prepend set;
  164. #X obj 320 429 list trim;
  165. #X obj 320 451 t b a;
  166. #N canvas 437 141 450 300 getProp 0;
  167. #X obj 44 177 s \$0-propreadName;
  168. #X msg 44 156 label \$1;
  169. #X msg 165 156 get \$1;
  170. #X obj 44 81 inlet;
  171. #X obj 165 178 outlet;
  172. #X obj 290 57 r \$0-info;
  173. #X obj 290 79 route prop;
  174. #N canvas 3 50 450 300 sroute 0;
  175. #X obj 73 12 inlet;
  176. #X obj 312 9 inlet;
  177. #X obj 73 113 outlet;
  178. #X obj 73 34 list split 1;
  179. #X obj 73 56 select s;
  180. #X obj 73 78 list prepend;
  181. #X connect 0 0 3 0;
  182. #X connect 1 0 4 1;
  183. #X connect 3 0 4 0;
  184. #X connect 3 1 5 1;
  185. #X connect 4 0 5 0;
  186. #X connect 5 0 2 0;
  187. #X restore 290 113 pd sroute;
  188. #X obj 44 123 t s s s;
  189. #X msg 290 226 label \$1;
  190. #X obj 290 247 s \$0-propreadValue;
  191. #X obj 290 135 route float;
  192. #X obj 290 157 makefilename %g;
  193. #X obj 106 29 loadbang;
  194. #X obj 106 51 t b b;
  195. #X msg 106 73 symbol <none>;
  196. #X msg 196 74 symbol --;
  197. #X connect 1 0 0 0;
  198. #X connect 2 0 4 0;
  199. #X connect 3 0 8 0;
  200. #X connect 5 0 6 0;
  201. #X connect 6 0 7 0;
  202. #X connect 7 0 11 0;
  203. #X connect 8 0 1 0;
  204. #X connect 8 1 2 0;
  205. #X connect 8 2 7 1;
  206. #X connect 9 0 10 0;
  207. #X connect 11 0 12 0;
  208. #X connect 12 0 9 0;
  209. #X connect 13 0 14 0;
  210. #X connect 14 0 15 0;
  211. #X connect 14 1 16 0;
  212. #X connect 15 0 1 0;
  213. #X connect 16 0 9 0;
  214. #X restore 320 318 pd getProp;
  215. #X obj 172 158 r \$0-propreadId;
  216. #X obj 282 158 r \$0-propwriteId;
  217. #N canvas 432 95 450 467 setProp 0;
  218. #X msg 44 156 label \$1;
  219. #X msg 165 156 get \$1;
  220. #X obj 44 31 inlet;
  221. #X obj 218 324 outlet;
  222. #X obj 290 57 r \$0-info;
  223. #X obj 290 79 route prop;
  224. #N canvas 4 50 450 300 sroute 0;
  225. #X obj 73 12 inlet;
  226. #X obj 312 9 inlet;
  227. #X obj 73 113 outlet;
  228. #X obj 73 34 list split 1;
  229. #X obj 73 56 select s;
  230. #X obj 73 78 list prepend;
  231. #X connect 0 0 3 0;
  232. #X connect 1 0 4 1;
  233. #X connect 3 0 4 0;
  234. #X connect 3 1 5 1;
  235. #X connect 4 0 5 0;
  236. #X connect 5 0 2 0;
  237. #X restore 290 113 pd sroute;
  238. #X obj 290 135 route float;
  239. #X obj 44 177 s \$0-propwriteName;
  240. #X obj 290 247 s \$0-propwriteValue;
  241. #X msg 290 226 set \$1;
  242. #X obj 50 276 r \$0-propwriteValue;
  243. #X obj 50 298 route float;
  244. #X obj 50 320 pack 0 s;
  245. #X msg 50 342 set \$2 \$1;
  246. #X obj 44 73 t s s s s;
  247. #X obj 127 27 loadbang;
  248. #X obj 127 49 t b b;
  249. #X msg 127 71 symbol <none>;
  250. #X connect 0 0 8 0;
  251. #X connect 1 0 3 0;
  252. #X connect 2 0 15 0;
  253. #X connect 4 0 5 0;
  254. #X connect 5 0 6 0;
  255. #X connect 6 0 7 0;
  256. #X connect 7 0 10 0;
  257. #X connect 10 0 9 0;
  258. #X connect 11 0 12 0;
  259. #X connect 12 0 13 0;
  260. #X connect 13 0 14 0;
  261. #X connect 14 0 3 0;
  262. #X connect 15 0 0 0;
  263. #X connect 15 1 1 0;
  264. #X connect 15 2 6 1;
  265. #X connect 15 3 13 1;
  266. #X connect 16 0 17 0;
  267. #X connect 17 0 18 0;
  268. #X connect 18 0 0 0;
  269. #X restore 199 315 pd setProp;
  270. #X obj 199 404 list prepend set;
  271. #X obj 199 426 list trim;
  272. #X obj 199 448 t b a;
  273. #X obj 199 361 list prepend get;
  274. #X obj 199 339 route get set;
  275. #X obj 309 361 list prepend set;
  276. #X obj 199 477 s \$0-propset;
  277. #X obj 320 480 s \$0-propget;
  278. #X obj 54 38 inlet;
  279. #X obj 54 66 s \$0-ctl;
  280. #X connect 0 0 4 0;
  281. #X connect 0 1 7 0;
  282. #X connect 1 0 2 0;
  283. #X connect 2 0 3 0;
  284. #X connect 3 0 15 0;
  285. #X connect 3 1 15 0;
  286. #X connect 4 0 12 0;
  287. #X connect 5 0 0 0;
  288. #X connect 6 0 0 1;
  289. #X connect 7 0 12 0;
  290. #X connect 8 0 9 0;
  291. #X connect 9 0 10 0;
  292. #X connect 10 0 14 0;
  293. #X connect 10 1 14 0;
  294. #X connect 11 0 1 0;
  295. #X connect 12 0 11 0;
  296. #X connect 12 1 13 0;
  297. #X connect 13 0 8 0;
  298. #X connect 16 0 17 0;
  299. #X restore 41 526 pd PropertyLogic;
  300. #X obj 310 70 cnv 15 100 20 empty \$0-propreadValue -- 10 9 0 14 -261234
  301. -66577 0;
  302. #X obj 31 111 cnv 15 400 80 empty empty writeProperties 20 12 0 14
  303. -233017 -66577 0;
  304. #X obj 39 137 hradio 15 1 0 8 \$0-propwriteId \$0-propwriteId empty
  305. 0 -8 0 10 -262144 -1 -1 0;
  306. #X obj 40 160 cnv 15 260 20 empty \$0-propwriteName <none> 10 9 0 14
  307. -203904 -66577 0;
  308. #X obj 311 160 nbx 5 20 -1e+37 1e+37 0 0 \$0-propwriteValue \$0-propwriteValue
  309. empty 0 -8 0 14 -204786 -1 -1 0 256;
  310. #X msg 66 315 get 50_fields;
  311. #X msg 83 392 set quality 5;
  312. #X obj 66 294 r \$0-propget;
  313. #X obj 83 372 r \$0-propset;
  314. #X msg 87 340 get Hue Saturation;
  315. #X text 208 340 you can query several properties at once;
  316. #X text 146 295 query a (readable) property via a message "get <propname>"
  317. ;
  318. #X text 161 372 set a (writable) property via a message "set <prop>
  319. <value>";
  320. #X text 70 224 this will return 2 lists of readable and writeable properties
  321. through the "info" outlet of [pix_video].;
  322. #X text 72 257 NOTE that propertynames are always single symbols that
  323. might contain spaces (and other weird characters);
  324. #X text 103 203 INIT: query names of all available properties;
  325. #X text 83 423 ATOMIC setting of multiple properties;
  326. #X msg 99 441 clearProps;
  327. #X msg 99 503 applyProps;
  328. #X msg 99 481 setProps Hue 10;
  329. #X msg 99 461 setProps Contrast 40;
  330. #X text 247 443 clear the current property list;
  331. #X text 247 461 add values to the property list (don't apply yet);
  332. #X text 247 479 add values to the property list (don't apply yet);
  333. #X text 247 499 apply current property list;
  334. #X connect 0 0 4 0;
  335. #X connect 10 0 4 0;
  336. #X connect 11 0 4 0;
  337. #X connect 12 0 10 0;
  338. #X connect 13 0 11 0;
  339. #X connect 14 0 4 0;
  340. #X connect 22 0 4 0;
  341. #X connect 23 0 4 0;
  342. #X connect 24 0 4 0;
  343. #X connect 25 0 4 0;
  344. #X restore 336 430 pd properties;
  345. #X obj 618 459 t a a;
  346. #X obj 618 480 print info;
  347. #X obj 655 459 s \$0-info;
  348. #X obj 586 376 t a a;
  349. #N canvas 166 121 570 420 device 0;
  350. #X obj 204 60 cnv 20 20 20 empty \$0-open-canvas 1 4 10 0 16 -233017
  351. -1 0;
  352. #X obj 60 61 hradio 18 1 0 8 empty empty empty 0 -6 0 8 -225271 -1
  353. -1 1;
  354. #X obj 60 13 inlet;
  355. #X msg 160 254 label \$1;
  356. #X obj 160 232 makefilename %d;
  357. #X obj 60 108 int;
  358. #X obj 60 337 outlet;
  359. #X obj 160 277 send \$0-open-canvas;
  360. #X msg 130 170 device \$1;
  361. #X obj 60 130 t b f;
  362. #X obj 130 192 t a a;
  363. #X obj 130 298 list prepend set;
  364. #X obj 130 320 list trim;
  365. #X obj 160 211 route device;
  366. #X obj 130 116 loadbang;
  367. #X msg 130 138 0;
  368. #X connect 1 0 5 0;
  369. #X connect 2 0 1 0;
  370. #X connect 3 0 7 0;
  371. #X connect 4 0 3 0;
  372. #X connect 5 0 9 0;
  373. #X connect 8 0 10 0;
  374. #X connect 9 0 6 0;
  375. #X connect 9 1 8 0;
  376. #X connect 10 0 11 0;
  377. #X connect 10 1 13 0;
  378. #X connect 11 0 12 0;
  379. #X connect 12 0 6 0;
  380. #X connect 13 0 4 0;
  381. #X connect 14 0 15 0;
  382. #X connect 15 0 8 0;
  383. #X coords 0 -1 1 1 165 20 1 60 60;
  384. #X restore 609 187 pd device;
  385. #X obj 36 565 cnv 15 400 30 empty empty empty 20 12 0 14 -260097 -66577
  386. 0;
  387. #X text 48 565 NOTE: usually you cannot use a camera more than once
  388. at the same time!;
  389. #X obj 563 413 cnv 15 80 30 empty empty empty 20 12 0 14 -24198 -66577
  390. 0;
  391. #X obj 567 418 pix_video;
  392. #X obj 657 393 print videoctl;
  393. #X obj 647 346 tgl 15 0 empty empty empty 17 7 0 10 -262144 -1 -1 0
  394. 1;
  395. #X msg 665 345 driver \$1;
  396. #X text 686 286 (if available);
  397. #X text 16 388 Inlet 1: dialog: open a dialog to configure the input
  398. device (depending on driver / Operating System);
  399. #X text 18 501 Outlet 2: info (for enumerating devices \, querying
  400. properties \, ...);
  401. #X text 15 423 Inlet 1: enumProps \, get \, set \, clearProps \, setProps
  402. \, applyProps: interact with driver/device properties;
  403. #X obj 657 374 r \$0-ctl;
  404. #X text 54 600 you can use [pix_buffer] to distribute the same pix
  405. to different parts of your render-chain;
  406. #X msg 625 235 device /dev/fw1;
  407. #X connect 17 0 18 0;
  408. #X connect 18 0 17 0;
  409. #X connect 22 0 21 0;
  410. #X connect 29 0 46 0;
  411. #X connect 30 0 41 0;
  412. #X connect 31 0 41 0;
  413. #X connect 32 0 41 0;
  414. #X connect 33 0 41 0;
  415. #X connect 34 0 41 0;
  416. #X connect 35 0 41 0;
  417. #X connect 36 0 41 0;
  418. #X connect 38 0 39 0;
  419. #X connect 38 1 40 0;
  420. #X connect 41 0 46 0;
  421. #X connect 41 1 47 0;
  422. #X connect 42 0 35 0;
  423. #X connect 46 0 22 0;
  424. #X connect 46 1 38 0;
  425. #X connect 48 0 49 0;
  426. #X connect 49 0 41 0;
  427. #X connect 54 0 41 0;
  428. #X connect 56 0 41 0;