Hex Artifact Content
Not logged in

Artifact 71b970f72efb8b399a08c6c727c559c7667cb053:

Wiki page [wmf command] by chw 2021-09-01 12:51:16.
0000: 44 20 32 30 32 31 2d 30 39 2d 30 31 54 31 32 3a  D 2021-09-01T12:
0010: 35 31 3a 31 36 2e 30 34 37 0a 4c 20 77 6d 66 5c  51:16.047.L wmf\
0020: 73 63 6f 6d 6d 61 6e 64 0a 50 20 61 38 64 32 35  scommand.P a8d25
0030: 62 39 61 35 35 32 35 38 37 62 66 35 37 35 31 38  b9a552587bf57518
0040: 35 64 37 39 33 66 66 64 66 34 32 64 37 37 30 64  5d793ffdf42d770d
0050: 65 61 37 0a 55 20 63 68 77 0a 57 20 39 33 39 35  ea7.U chw.W 9395
0060: 0a 3c 68 32 3e 77 6d 66 20 63 6f 6d 6d 61 6e 64  .<h2>wmf command
0070: 3c 2f 68 32 3e 0d 0a 0d 0a 3c 68 33 3e 4e 61 6d  </h2>....<h3>Nam
0080: 65 3c 2f 68 33 3e 0d 0a 0d 0a 3c 62 3e 77 6d 66  e</h3>....<b>wmf
0090: 3c 2f 62 3e 20 2d 20 54 63 6c 20 69 6e 74 65 72  </b> - Tcl inter
00a0: 66 61 63 65 20 74 6f 20 63 61 6d 65 72 61 73 20  face to cameras 
00b0: 75 73 69 6e 67 20 57 69 6e 64 6f 77 73 20 4d 65  using Windows Me
00c0: 64 69 61 20 46 6f 75 6e 64 61 74 69 6f 6e 0d 0a  dia Foundation..
00d0: 0d 0a 3c 68 33 3e 53 79 6e 6f 70 73 69 73 3c 2f  ..<h3>Synopsis</
00e0: 68 33 3e 0d 0a 0d 0a 3c 74 74 3e 70 61 63 6b 61  h3>....<tt>packa
00f0: 67 65 20 72 65 71 75 69 72 65 20 74 63 6c 77 6d  ge require tclwm
0100: 66 3c 2f 74 74 3e 3c 62 72 3e 0d 0a 3c 74 74 3e  f</tt><br>..<tt>
0110: 77 6d 66 20 3c 69 3e 6f 70 74 69 6f 6e 3c 2f 69  wmf <i>option</i
0120: 3e 20 3f 3c 69 3e 61 72 67 20 2e 2e 2e 3c 2f 69  > ?<i>arg ...</i
0130: 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 3c 68 33 3e 44  >?</tt>....<h3>D
0140: 65 73 63 72 69 70 74 69 6f 6e 3c 2f 68 33 3e 0d  escription</h3>.
0150: 0a 0d 0a 54 68 69 73 20 20 63 6f 6d 6d 61 6e 64  ...This  command
0160: 20 20 70 72 6f 76 69 64 65 73 20 73 65 76 65 72    provides sever
0170: 61 6c 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 6f  al operations to
0180: 20 69 6e 74 65 72 66 61 63 65 20 63 61 6d 65 72   interface camer
0190: 61 73 20 75 73 69 6e 67 20 74 68 65 20 69 6e 66  as using the inf
01a0: 72 61 73 74 72 75 63 74 75 72 65 20 70 72 6f 76  rastructure prov
01b0: 69 64 65 64 20 62 79 20 57 69 6e 64 6f 77 73 20  ided by Windows 
01c0: 4d 65 64 69 61 20 46 6f 75 6e 64 61 74 69 6f 6e  Media Foundation
01d0: 2e 20 3c 74 74 3e 3c 69 3e 6f 70 74 69 6f 6e 3c  . <tt><i>option<
01e0: 2f 69 3e 3c 2f 74 74 3e 20 69 6e 64 69 63 61 74  /i></tt> indicat
01f0: 65 73 20 77 68 61 74 20 74 6f 20 63 61 72 72 79  es what to carry
0200: 20 6f 75 74 20 6f 6e 20 20 74 68 65 20 20 57 69   out on  the  Wi
0210: 6e 64 6f 77 73 20 4d 65 64 69 61 20 46 6f 75 6e  ndows Media Foun
0220: 64 61 74 69 6f 6e 20 73 75 62 73 79 73 74 65 6d  dation subsystem
0230: 2e 20 41 6e 79 20 75 6e 69 71 75 65 20 61 62 62  . Any unique abb
0240: 72 65 76 69 61 74 69 6f 6e 20 66 6f 72 20 3c 74  reviation for <t
0250: 74 3e 3c 69 3e 6f 70 74 69 6f 6e 3c 2f 69 3e 3c  t><i>option</i><
0260: 2f 74 74 3e 20 69 73 20 61 63 63 65 70 74 61 62  /tt> is acceptab
0270: 6c 65 2e 20 54 68 65 20 76 61 6c 69 64 20 6f 70  le. The valid op
0280: 74 69 6f 6e 73 20 61 72 65 3a 0d 0a 0d 0a 3c 74  tions are:....<t
0290: 74 3e 77 6d 66 20 63 6c 6f 73 65 20 3c 69 3e 64  t>wmf close <i>d
02a0: 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d  evid</i></tt>...
02b0: 0a 20 20 20 20 43 6c 6f 73 65 73 20 74 68 65 20  .    Closes the 
02c0: 64 65 76 69 63 65 20 69 64 65 6e 74 69 66 69 65  device identifie
02d0: 64 20 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69  d by <tt><i>devi
02e0: 64 3c 2f 69 3e 3c 2f 74 74 3e 20 77 68 69 63 68  d</i></tt> which
02f0: 20 68 61 73 20 62 65 65 6e 20 6f 70 65 6e 65 64   has been opened
0300: 20 62 65 66 6f 72 65 20 75 73 69 6e 67 20 3c 74   before using <t
0310: 74 3e 77 6d 66 20 6f 70 65 6e 3c 2f 74 74 3e 2e  t>wmf open</tt>.
0320: 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20 64 65 76 69  ....<tt>wmf devi
0330: 63 65 73 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  ces</tt>....    
0340: 52 65 74 75 72 6e 73 20 61 20 6c 69 73 74 20 6f  Returns a list o
0350: 66 20 64 65 76 69 63 65 20 6e 61 6d 65 73 20 77  f device names w
0360: 68 69 63 68 20 63 61 6e 20 62 65 20 75 73 65 64  hich can be used
0370: 20 66 6f 72 20 3c 74 74 3e 77 6d 66 20 6f 70 65   for <tt>wmf ope
0380: 6e 3c 2f 74 74 3e 2e 20 45 61 63 68 20 64 65 76  n</tt>. Each dev
0390: 69 63 65 20 61 64 64 73 20 74 77 6f 20 65 6c 65  ice adds two ele
03a0: 6d 65 6e 74 73 20 74 6f 20 74 68 65 20 6c 69 73  ments to the lis
03b0: 74 3a 20 69 74 73 20 73 79 6d 62 6f 6c 69 63 20  t: its symbolic 
03c0: 6c 69 6e 6b 20 74 6f 20 62 65 20 75 73 65 64 20  link to be used 
03d0: 69 6e 20 3c 74 74 3e 77 6d 66 20 6f 70 65 6e 3c  in <tt>wmf open<
03e0: 2f 74 74 3e 20 61 6e 64 20 69 74 73 20 66 72 69  /tt> and its fri
03f0: 65 6e 64 6c 79 20 6e 61 6d 65 20 66 6f 72 20 70  endly name for p
0400: 72 65 73 65 6e 74 61 74 69 6f 6e 2e 0d 0a 0d 0a  resentation.....
0410: 3c 74 74 3e 77 6d 66 20 66 6f 72 6d 61 74 20 3c  <tt>wmf format <
0420: 69 3e 64 65 76 69 64 3c 2f 69 3e 20 3f 3c 69 3e  i>devid</i> ?<i>
0430: 69 6e 64 65 78 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d  index</i>?</tt>.
0440: 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 6f  ...    Returns o
0450: 72 20 63 68 61 6e 67 65 73 20 74 68 65 20 6d 65  r changes the me
0460: 64 69 61 20 66 6f 72 6d 61 74 20 6f 66 20 74 68  dia format of th
0470: 65 20 64 65 76 69 63 65 20 69 64 65 6e 74 69 66  e device identif
0480: 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 64 65  ied by <tt><i>de
0490: 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 54 68  vid</i></tt>. Th
04a0: 65 20 6f 70 74 69 6f 6e 61 6c 20 70 61 72 61 6d  e optional param
04b0: 65 74 65 72 20 3c 74 74 3e 3c 69 3e 69 6e 64 65  eter <tt><i>inde
04c0: 78 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20 61 6e  x</i></tt> is an
04d0: 20 69 6e 74 65 67 65 72 20 6e 75 6d 62 65 72 20   integer number 
04e0: 67 69 76 69 6e 67 20 74 68 65 20 69 6e 64 65 78  giving the index
04f0: 20 6f 66 20 74 68 65 20 6d 65 64 69 61 20 66 6f   of the media fo
0500: 72 6d 61 74 20 74 6f 20 62 65 20 75 73 65 64 20  rmat to be used 
0510: 61 73 20 72 65 74 75 72 6e 65 64 20 69 6e 20 3c  as returned in <
0520: 74 74 3e 77 6d 66 20 6c 69 73 74 66 6f 72 6d 61  tt>wmf listforma
0530: 74 73 3c 2f 74 74 3e 2e 20 49 66 20 6f 6d 69 74  ts</tt>. If omit
0540: 74 65 64 2c 20 74 68 65 20 63 75 72 72 65 6e 74  ted, the current
0550: 6c 79 20 61 63 74 69 76 65 20 69 6e 64 65 78 20  ly active index 
0560: 69 73 20 72 65 74 75 72 6e 65 64 2e 20 43 68 61  is returned. Cha
0570: 6e 67 69 6e 67 20 74 68 65 20 6d 65 64 69 61 20  nging the media 
0580: 66 6f 72 6d 61 74 20 69 73 20 6f 6e 6c 79 20 70  format is only p
0590: 6f 73 73 69 62 6c 65 20 69 66 20 74 68 65 20 64  ossible if the d
05a0: 65 76 69 63 65 20 69 73 20 6e 6f 74 20 63 61 70  evice is not cap
05b0: 74 75 72 69 6e 67 20 69 6d 61 67 65 73 2e 0d 0a  turing images...
05c0: 0d 0a 3c 74 74 3e 77 6d 66 20 67 72 65 79 69 6d  ..<tt>wmf greyim
05d0: 61 67 65 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e  age <i>devid</i>
05e0: 20 3f 3c 69 3e 70 68 6f 74 6f 49 6d 61 67 65 3c   ?<i>photoImage<
05f0: 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  /i>?</tt>....   
0600: 20 43 6f 70 69 65 73 20 74 68 65 20 6d 6f 73 74   Copies the most
0610: 20 72 65 63 65 6e 74 20 63 61 70 74 75 72 65 64   recent captured
0620: 20 69 6d 61 67 65 20 6f 66 20 74 68 65 20 64 65   image of the de
0630: 76 69 63 65 20 3c 74 74 3e 3c 69 3e 64 65 76 69  vice <tt><i>devi
0640: 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e 74 6f 20  d</i></tt> into 
0650: 74 68 65 20 70 68 6f 74 6f 20 69 6d 61 67 65 20  the photo image 
0660: 69 64 65 6e 74 69 66 69 65 64 20 62 79 20 3c 74  identified by <t
0670: 74 3e 3c 69 3e 70 68 6f 74 6f 49 6d 61 67 65 3c  t><i>photoImage<
0680: 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 72 65 74  /i></tt> and ret
0690: 75 72 6e 73 20 6e 6f 6e 2d 7a 65 72 6f 20 6f 6e  urns non-zero on
06a0: 20 73 75 63 63 65 73 73 20 6f 72 20 7a 65 72 6f   success or zero
06b0: 20 69 66 20 6e 6f 20 64 61 74 61 20 74 72 61 6e   if no data tran
06c0: 73 66 65 72 20 68 61 73 20 74 61 6b 65 6e 20 70  sfer has taken p
06d0: 6c 61 63 65 2e 20 54 68 65 20 20 70 68 6f 74 6f  lace. The  photo
06e0: 20 69 6d 61 67 65 20 69 73 20 66 69 6c 6c 65 64   image is filled
06f0: 20 77 69 74 68 20 67 72 65 79 20 76 61 6c 75 65   with grey value
0700: 73 2e 20 49 66 20 3c 74 74 3e 3c 69 3e 70 68 6f  s. If <tt><i>pho
0710: 74 6f 49 6d 61 67 65 3c 2f 69 3e 3c 2f 74 74 3e  toImage</i></tt>
0720: 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 61 20 66   is omitted, a f
0730: 6f 75 72 20 65 6c 65 6d 65 6e 74 20 6c 69 73 74  our element list
0740: 20 69 73 20 72 65 74 75 72 6e 65 64 20 77 69 74   is returned wit
0750: 68 20 74 68 65 20 66 69 72 73 74 20 65 6c 65 6d  h the first elem
0760: 65 6e 74 20 62 65 69 6e 67 20 74 68 65 20 69 6d  ent being the im
0770: 61 67 65 20 20 77 69 64 74 68 2c 20 74 68 65 20  age  width, the 
0780: 73 65 63 6f 6e 64 20 74 68 65 20 69 6d 61 67 65  second the image
0790: 20 68 65 69 67 68 74 2c 20 74 68 65 20 74 68 69   height, the thi
07a0: 72 64 20 74 68 65 20 6e 75 6d 62 65 72 20 6f 66  rd the number of
07b0: 20 62 79 74 65 73 20 70 65 72 20 70 69 78 65 6c   bytes per pixel
07c0: 2c 20 61 6e 64 20 74 68 65 20 6c 61 73 74 20 74  , and the last t
07d0: 68 65 20 69 6d 61 67 65 27 73 20 67 72 65 79 20  he image's grey 
07e0: 76 61 6c 75 65 73 20 61 73 20 61 20 62 79 74 65  values as a byte
07f0: 20 61 72 72 61 79 2e 20 49 6e 20 74 68 69 73 20   array. In this 
0800: 63 61 73 65 20 61 6e 20 65 72 72 6f 72 20 69 73  case an error is
0810: 20 69 6e 64 69 63 61 74 65 64 20 62 79 20 74 68   indicated by th
0820: 72 6f 77 69 6e 67 20 61 6e 20 65 78 63 65 70 74  rowing an except
0830: 69 6f 6e 2e 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20  ion.....<tt>wmf 
0840: 69 6d 61 67 65 20 3c 69 3e 64 65 76 69 64 3c 2f  image <i>devid</
0850: 69 3e 20 3f 3c 69 3e 70 68 6f 74 6f 49 6d 61 67  i> ?<i>photoImag
0860: 65 3c 2f 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20  e</i>?</tt>.... 
0870: 20 20 20 43 6f 70 69 65 73 20 74 68 65 20 6d 6f     Copies the mo
0880: 73 74 20 72 65 63 65 6e 74 20 63 61 70 74 75 72  st recent captur
0890: 65 64 20 69 6d 61 67 65 20 6f 66 20 74 68 65 20  ed image of the 
08a0: 64 65 76 69 63 65 20 3c 74 74 3e 3c 69 3e 64 65  device <tt><i>de
08b0: 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e 74  vid</i></tt> int
08c0: 6f 20 74 68 65 20 70 68 6f 74 6f 20 69 6d 61 67  o the photo imag
08d0: 65 20 69 64 65 6e 74 69 66 69 65 64 20 62 79 20  e identified by 
08e0: 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 49 6d 61 67  <tt><i>photoImag
08f0: 65 3c 2f 69 3e 3c 2f 74 74 3e 20 61 6e 64 20 72  e</i></tt> and r
0900: 65 74 75 72 6e 73 20 6e 6f 6e 2d 7a 65 72 6f 20  eturns non-zero 
0910: 6f 6e 20 73 75 63 63 65 73 73 20 6f 72 20 7a 65  on success or ze
0920: 72 6f 20 69 66 20 6e 6f 20 64 61 74 61 20 74 72  ro if no data tr
0930: 61 6e 73 66 65 72 20 68 61 73 20 74 61 6b 65 6e  ansfer has taken
0940: 20 70 6c 61 63 65 2e 20 49 66 20 3c 74 74 3e 3c   place. If <tt><
0950: 69 3e 70 68 6f 74 6f 49 6d 61 67 65 3c 2f 69 3e  i>photoImage</i>
0960: 3c 2f 74 74 3e 20 69 73 20 6f 6d 69 74 74 65 64  </tt> is omitted
0970: 2c 20 61 20 66 6f 75 72 20 65 6c 65 6d 65 6e 74  , a four element
0980: 20 6c 69 73 74 20 69 73 20 72 65 74 75 72 6e 65   list is returne
0990: 64 20 77 69 74 68 20 74 68 65 20 66 69 72 73 74  d with the first
09a0: 20 65 6c 65 6d 65 6e 74 20 62 65 69 6e 67 20 74   element being t
09b0: 68 65 20 69 6d 61 67 65 20 77 69 64 74 68 2c 20  he image width, 
09c0: 74 68 65 20 73 65 63 6f 6e 64 20 74 68 65 20 69  the second the i
09d0: 6d 61 67 65 20 68 65 69 67 68 74 2c 20 74 68 65  mage height, the
09e0: 20 74 68 69 72 64 20 74 68 65 20 6e 75 6d 62 65   third the numbe
09f0: 72 20 6f 66 20 62 79 74 65 73 20 70 65 72 20 70  r of bytes per p
0a00: 69 78 65 6c 2c 20 61 6e 64 20 74 68 65 20 6c 61  ixel, and the la
0a10: 73 74 20 74 68 65 20 69 6d 61 67 65 27 73 20 52  st the image's R
0a20: 47 42 20 76 61 6c 75 65 73 20 77 69 74 68 20 33  GB values with 3
0a30: 20 62 79 74 65 73 20 70 65 72 20 70 69 78 65 6c   bytes per pixel
0a40: 20 69 6e 20 72 65 64 2c 20 67 72 65 65 6e 2c 20   in red, green, 
0a50: 62 6c 75 65 20 6f 72 64 65 72 20 61 73 20 61 20  blue order as a 
0a60: 62 79 74 65 20 61 72 72 61 79 2e 20 49 6e 20 74  byte array. In t
0a70: 68 69 73 20 63 61 73 65 20 61 6e 20 65 72 72 6f  his case an erro
0a80: 72 20 69 73 20 69 6e 64 69 63 61 74 65 64 20 62  r is indicated b
0a90: 79 20 74 68 72 6f 77 69 6e 67 20 61 6e 20 65 78  y throwing an ex
0aa0: 63 65 70 74 69 6f 6e 2e 0d 0a 0d 0a 3c 74 74 3e  ception.....<tt>
0ab0: 77 6d 66 20 69 6e 66 6f 20 3c 69 3e 64 65 76 69  wmf info <i>devi
0ac0: 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20  d</i></tt>....  
0ad0: 20 20 52 65 74 75 72 6e 73 20 69 6e 66 6f 72 6d    Returns inform
0ae0: 61 74 69 6f 6e 20 6f 6e 20 6f 70 65 6e 20 64 65  ation on open de
0af0: 76 69 63 65 73 2e 20 49 66 20 3c 74 74 3e 3c 69  vices. If <tt><i
0b00: 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20  >devid</i></tt> 
0b10: 69 73 20 73 70 65 63 69 66 69 65 64 2c 20 61 20  is specified, a 
0b20: 6c 69 73 74 20 6f 66 20 74 77 6f 20 65 6c 65 6d  list of two elem
0b30: 65 6e 74 73 20 69 73 20 72 65 74 75 72 6e 65 64  ents is returned
0b40: 2c 20 74 68 65 20 66 69 72 73 74 20 62 65 69 6e  , the first bein
0b50: 67 20 74 68 65 20 64 65 76 69 63 65 20 73 79 6d  g the device sym
0b60: 62 6f 6c 69 63 20 6c 69 6e 6b 20 61 6e 64 20 74  bolic link and t
0b70: 68 65 20 73 65 63 6f 6e 64 20 74 68 65 20 69 6d  he second the im
0b80: 61 67 65 20 63 61 6c 6c 62 61 63 6b 20 63 6f 6d  age callback com
0b90: 6d 61 6e 64 20 66 6f 72 20 74 68 61 74 20 64 65  mand for that de
0ba0: 76 69 63 65 2c 20 69 2e 65 2e 20 74 68 65 20 73  vice, i.e. the s
0bb0: 61 6d 65 20 61 72 67 75 6d 65 6e 74 73 20 77 68  ame arguments wh
0bc0: 69 63 68 20 77 65 72 65 20 75 73 65 64 20 6f 6e  ich were used on
0bd0: 20 3c 74 74 3e 77 6d 66 20 6f 70 65 6e 3c 2f 74   <tt>wmf open</t
0be0: 74 3e 2e 20 49 66 20 3c 74 74 3e 3c 69 3e 64 65  t>. If <tt><i>de
0bf0: 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73 20  vid</i></tt> is 
0c00: 6f 6d 69 74 74 65 64 2c 20 61 20 6c 69 73 74 20  omitted, a list 
0c10: 6f 66 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c  of <tt><i>devid<
0c20: 2f 69 3e 3c 2f 74 74 3e 73 2c 20 69 2e 65 2e 20  /i></tt>s, i.e. 
0c30: 61 6c 6c 20 63 75 72 72 65 6e 74 6c 79 20 6f 70  all currently op
0c40: 65 6e 65 64 20 64 65 76 69 63 65 73 20 69 73 20  ened devices is 
0c50: 72 65 74 75 72 6e 65 64 2e 0d 0a 0d 0a 3c 74 74  returned.....<tt
0c60: 3e 77 6d 66 20 6c 69 73 74 66 6f 72 6d 61 74 73  >wmf listformats
0c70: 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74   <i>devid</i></t
0c80: 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 75 72 6e  t>....    Return
0c90: 73 20 61 20 64 69 63 74 69 6f 6e 61 72 79 20 6b  s a dictionary k
0ca0: 65 79 65 64 20 62 79 20 61 20 6d 65 64 69 61 20  eyed by a media 
0cb0: 66 6f 72 6d 61 74 20 69 6e 64 65 78 20 61 73 20  format index as 
0cc0: 69 6e 74 65 67 65 72 20 77 69 74 68 20 74 68 65  integer with the
0cd0: 20 76 61 6c 75 65 73 20 62 65 69 6e 67 20 61 6e   values being an
0ce0: 6f 74 68 65 72 20 64 69 63 74 69 6f 6e 61 72 79  other dictionary
0cf0: 20 77 69 74 68 20 69 6e 66 6f 72 6d 61 74 69 6f   with informatio
0d00: 6e 20 61 62 6f 75 74 20 74 68 65 20 66 72 61 6d  n about the fram
0d10: 65 20 73 69 7a 65 20 61 6e 64 20 72 61 74 65 20  e size and rate 
0d20: 6f 66 20 74 68 61 74 20 6d 65 64 69 61 20 66 6f  of that media fo
0d30: 72 6d 61 74 2e 20 54 68 65 20 72 65 73 70 65 63  rmat. The respec
0d40: 74 69 76 65 20 69 6e 64 65 78 20 63 61 6e 20 62  tive index can b
0d50: 65 20 75 73 65 64 20 69 6e 20 3c 74 74 3e 77 6d  e used in <tt>wm
0d60: 66 20 66 6f 72 6d 61 74 3c 2f 74 74 3e 2e 0d 0a  f format</tt>...
0d70: 0d 0a 3c 74 74 3e 77 6d 66 20 6d 62 63 6f 70 79  ..<tt>wmf mbcopy
0d80: 20 3c 69 3e 62 79 74 65 61 72 72 61 79 31 20 62   <i>bytearray1 b
0d90: 79 74 65 61 72 72 61 79 32 20 6d 61 73 6b 3c 2f  ytearray2 mask</
0da0: 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 43  i></tt>....    C
0db0: 6f 70 69 65 73 20 74 68 65 20 63 6f 6e 74 65 6e  opies the conten
0dc0: 74 20 6f 66 20 52 47 42 20 62 79 74 65 20 61 72  t of RGB byte ar
0dd0: 72 61 79 20 3c 74 74 3e 3c 69 3e 62 79 74 65 61  ray <tt><i>bytea
0de0: 72 72 61 79 32 3c 2f 69 3e 3c 2f 74 74 3e 20 69  rray2</i></tt> i
0df0: 6e 74 6f 20 74 68 65 20 62 79 74 65 20 61 72 72  nto the byte arr
0e00: 61 79 20 3c 74 74 3e 3c 69 3e 62 79 74 65 61 72  ay <tt><i>bytear
0e10: 72 61 79 31 3c 2f 69 3e 3c 2f 74 74 3e 20 75 73  ray1</i></tt> us
0e20: 69 6e 67 20 61 6e 20 52 47 42 20 3c 74 74 3e 3c  ing an RGB <tt><
0e30: 69 3e 6d 61 73 6b 3c 2f 69 3e 3c 2f 74 74 3e 2e  i>mask</i></tt>.
0e40: 20 42 6f 74 68 20 62 79 74 65 20 61 72 72 61 79   Both byte array
0e50: 73 20 6d 75 73 74 20 68 61 76 65 20 69 64 65 6e  s must have iden
0e60: 74 69 63 61 6c 20 6c 65 6e 67 74 68 20 77 68 69  tical length whi
0e70: 63 68 20 6d 75 73 74 20 62 65 20 61 20 6d 75 6c  ch must be a mul
0e80: 74 69 70 6c 65 20 6f 66 20 33 20 28 66 6f 72 20  tiple of 3 (for 
0e90: 52 47 42 29 2e 20 54 68 65 20 6d 61 69 6e 20 70  RGB). The main p
0ea0: 75 72 70 6f 73 65 20 6f 66 20 74 68 69 73 20 63  urpose of this c
0eb0: 6f 6d 6d 61 6e 64 20 69 73 20 74 6f 20 63 6f 6d  ommand is to com
0ec0: 62 69 6e 65 20 69 6d 61 67 65 73 20 66 72 6f 6d  bine images from
0ed0: 20 74 77 6f 20 63 61 6d 65 72 61 73 20 69 6e 74   two cameras int
0ee0: 6f 20 61 6e 20 61 6e 61 67 6c 79 70 68 20 33 44  o an anaglyph 3D
0ef0: 2c 20 77 68 65 72 65 20 28 66 6f 72 20 61 20 20  , where (for a  
0f00: 72 65 64 2d 63 79 61 6e 20 20 61 6e 61 67 6c 79  red-cyan  anagly
0f10: 70 68 29 20 74 68 65 20 6c 65 66 74 20 63 61 6d  ph) the left cam
0f20: 65 72 61 20 69 6d 61 67 65 20 75 73 65 73 20 6d  era image uses m
0f30: 61 73 6b 20 30 78 46 46 30 30 30 30 20 28 72 65  ask 0xFF0000 (re
0f40: 64 20 63 6f 6d 70 6f 6e 65 6e 74 29 20 61 6e 64  d component) and
0f50: 20 74 68 65 20 72 69 67 68 74 20 63 61 6d 65 72   the right camer
0f60: 61 20 69 6d 61 67 65 20 75 73 65 73 20 6d 61 73  a image uses mas
0f70: 6b 20 30 78 30 30 46 46 46 46 20 28 67 72 65 65  k 0x00FFFF (gree
0f80: 6e 20 61 6e 64 20 62 6c 75 65 20 63 6f 6d 70 6f  n and blue compo
0f90: 6e 65 6e 74 73 29 2e 0d 0a 0d 0a 3c 74 74 3e 77  nents).....<tt>w
0fa0: 6d 66 20 6d 63 6f 70 79 20 3c 69 3e 70 68 6f 74  mf mcopy <i>phot
0fb0: 6f 31 20 70 68 6f 74 6f 32 20 6d 61 73 6b 3c 2f  o1 photo2 mask</
0fc0: 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 43  i></tt>....    C
0fd0: 6f 70 69 65 73 20 74 68 65 20 63 6f 6e 74 65 6e  opies the conten
0fe0: 74 20 6f 66 20 74 68 65 20 70 68 6f 74 6f 20 69  t of the photo i
0ff0: 6d 61 67 65 20 3c 74 74 3e 3c 69 3e 70 68 6f 74  mage <tt><i>phot
1000: 6f 32 3c 2f 69 3e 3c 2f 74 74 3e 20 69 6e 74 6f  o2</i></tt> into
1010: 20 74 68 65 20 70 68 6f 74 6f 20 69 6d 61 67 65   the photo image
1020: 20 3c 74 74 3e 3c 69 3e 70 68 6f 74 6f 31 3c 2f   <tt><i>photo1</
1030: 69 3e 3c 2f 74 74 3e 20 75 73 69 6e 67 20 61 6e  i></tt> using an
1040: 20 41 52 47 42 20 3c 74 74 3e 3c 69 3e 6d 61 73   ARGB <tt><i>mas
1050: 6b 3c 2f 69 3e 3c 2f 74 74 3e 2e 20 42 6f 74 68  k</i></tt>. Both
1060: 20 70 68 6f 74 6f 20 69 6d 61 67 65 73 20 6d 75   photo images mu
1070: 73 74 20 68 61 76 65 20 69 64 65 6e 74 69 63 61  st have identica
1080: 6c 20 77 69 64 74 68 2c 20 68 65 69 67 68 74 2c  l width, height,
1090: 20 61 6e 64 20 64 65 70 74 68 2e 20 54 68 65 20   and depth. The 
10a0: 6d 61 69 6e 20 70 75 72 70 6f 73 65 20 6f 66 20  main purpose of 
10b0: 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20  this command is 
10c0: 74 6f 20 63 6f 6d 62 69 6e 65 20 69 6d 61 67 65  to combine image
10d0: 73 20 66 72 6f 6d 20 74 77 6f 20 63 61 6d 65 72  s from two camer
10e0: 61 73 20 69 6e 74 6f 20 61 6e 20 61 6e 61 67 6c  as into an anagl
10f0: 79 70 68 20 33 44 2c 20 77 68 65 72 65 20 28 66  yph 3D, where (f
1100: 6f 72 20 61 20 72 65 64 2d 63 79 61 6e 20 61 6e  or a red-cyan an
1110: 61 67 6c 79 70 68 29 20 74 68 65 20 6c 65 66 74  aglyph) the left
1120: 20 63 61 6d 65 72 61 20 69 6d 61 67 65 20 75 73   camera image us
1130: 65 73 20 6d 61 73 6b 20 30 78 30 30 46 46 30 30  es mask 0x00FF00
1140: 30 30 20 28 72 65 64 20 63 6f 6d 70 6f 6e 65 6e  00 (red componen
1150: 74 29 20 61 6e 64 20 74 68 65 20 72 69 67 68 74  t) and the right
1160: 20 63 61 6d 65 72 61 20 69 6d 61 67 65 20 20 75   camera image  u
1170: 73 65 73 20 6d 61 73 6b 20 30 78 30 30 30 30 46  ses mask 0x0000F
1180: 46 46 46 20 28 67 72 65 65 6e 20 61 6e 64 20 62  FFF (green and b
1190: 6c 75 65 20 63 6f 6d 70 6f 6e 65 6e 74 73 29 2e  lue components).
11a0: 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20 6d 69 72 72  ....<tt>wmf mirr
11b0: 6f 72 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20  or <i>devid</i> 
11c0: 3f 3c 69 3e 78 20 79 3c 2f 69 3e 3f 3c 2f 74 74  ?<i>x y</i>?</tt
11d0: 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 72 69 65 76  >....    Retriev
11e0: 65 73 20 6f 72 20 73 65 74 73 20 66 6c 61 67 73  es or sets flags
11f0: 20 74 6f 20 6d 69 72 72 6f 72 20 63 61 70 74 75   to mirror captu
1200: 72 65 64 20 69 6d 61 67 65 73 20 61 6c 6f 6e 67  red images along
1210: 20 74 68 65 20 58 20 6f 72 20 59 20 61 78 69 73   the X or Y axis
1220: 2e 20 50 61 72 61 6d 65 74 65 72 73 20 3c 74 74  . Parameters <tt
1230: 3e 3c 69 3e 78 3c 2f 69 3e 3c 2f 74 74 3e 20 61  ><i>x</i></tt> a
1240: 6e 64 20 3c 74 74 3e 3c 69 3e 79 3c 2f 69 3e 3c  nd <tt><i>y</i><
1250: 2f 74 74 3e 20 69 66 20 73 70 65 63 69 66 69 65  /tt> if specifie
1260: 64 20 6d 75 73 74 20 62 65 20 62 6f 6f 6c 65 61  d must be boolea
1270: 6e 20 76 61 6c 75 65 73 2e 0d 0a 0d 0a 3c 74 74  n values.....<tt
1280: 3e 77 6d 66 20 6f 70 65 6e 20 3c 69 3e 64 65 76  >wmf open <i>dev
1290: 6e 61 6d 65 20 63 61 6c 6c 62 61 63 6b 3c 2f 69  name callback</i
12a0: 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 4f 70  ></tt>....    Op
12b0: 65 6e 73 20 74 68 65 20 64 65 76 69 63 65 20 77  ens the device w
12c0: 69 74 68 20 64 65 76 69 63 65 20 73 79 6d 62 6f  ith device symbo
12d0: 6c 69 63 20 6c 69 6e 6b 20 3c 74 74 3e 3c 69 3e  lic link <tt><i>
12e0: 64 65 76 6e 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e  devname</i></tt>
12f0: 20 61 6e 64 20 65 73 74 61 62 6c 69 73 68 65 73   and establishes
1300: 20 3c 74 74 3e 3c 69 3e 63 61 6c 6c 62 61 63 6b   <tt><i>callback
1310: 3c 2f 69 3e 3c 2f 74 74 3e 20 61 73 20 63 6f 6d  </i></tt> as com
1320: 6d 61 6e 64 20 74 6f 20 62 65 20 69 6e 76 6f 6b  mand to be invok
1330: 65 64 20 6f 6e 20 63 61 70 74 75 72 65 64 20 69  ed on captured i
1340: 6d 61 67 65 73 20 61 6e 64 20 66 69 6e 61 6c 6c  mages and finall
1350: 79 20 72 65 74 75 72 6e 73 20 61 20 3c 74 74 3e  y returns a <tt>
1360: 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74  <i>devid</i></tt
1370: 3e 2c 20 69 2e 65 2e 20 61 20 68 61 6e 64 6c 65  >, i.e. a handle
1380: 20 74 6f 20 66 75 72 74 68 65 72 20 64 65 61 6c   to further deal
1390: 20 77 69 74 68 20 74 68 65 20 64 65 76 69 63 65   with the device
13a0: 2e 20 54 77 6f 20 61 64 64 69 74 69 6f 6e 61 6c  . Two additional
13b0: 20 70 61 72 61 6d 65 74 65 72 73 20 61 72 65 20   parameters are 
13c0: 61 70 70 65 6e 64 65 64 20 77 68 65 6e 20 3c 74  appended when <t
13d0: 74 3e 3c 69 3e 63 61 6c 6c 62 61 63 6b 3c 2f 69  t><i>callback</i
13e0: 3e 3c 2f 74 74 3e 20 69 73 20 69 6e 76 6f 6b 65  ></tt> is invoke
13f0: 64 3a 20 74 68 65 20 3c 74 74 3e 3c 69 3e 64 65  d: the <tt><i>de
1400: 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 20 6f 66 20  vid</i></tt> of 
1410: 74 68 65 20 64 65 76 69 63 65 20 61 6e 64 20 74  the device and t
1420: 68 65 20 63 75 72 72 65 6e 74 20 63 61 70 74 75  he current captu
1430: 72 65 20 73 74 61 74 65 20 61 73 20 69 6e 20 3c  re state as in <
1440: 74 74 3e 77 6d 66 20 73 74 61 74 65 3c 2f 74 74  tt>wmf state</tt
1450: 3e 2e 20 46 6f 72 20 74 68 65 20 66 6f 72 6d 61  >. For the forma
1460: 74 20 6f 66 20 3c 74 74 3e 3c 69 3e 64 65 76 6e  t of <tt><i>devn
1470: 61 6d 65 3c 2f 69 3e 3c 2f 74 74 3e 20 73 65 65  ame</i></tt> see
1480: 20 74 68 65 20 64 65 73 63 72 69 70 74 69 6f 6e   the description
1490: 20 6f 66 20 3c 74 74 3e 77 6d 66 20 64 65 76 69   of <tt>wmf devi
14a0: 63 65 73 3c 2f 74 74 3e 2e 0d 0a 0d 0a 3c 74 74  ces</tt>.....<tt
14b0: 3e 77 6d 66 20 6f 72 69 65 6e 74 61 74 69 6f 6e  >wmf orientation
14c0: 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20 3f 3c   <i>devid</i> ?<
14d0: 69 3e 64 65 67 72 65 65 73 3c 2f 69 3e 3f 3c 2f  i>degrees</i>?</
14e0: 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74 72 69  tt>....    Retri
14f0: 65 76 65 73 20 6f 72 20 73 65 74 73 20 74 68 65  eves or sets the
1500: 20 6f 72 69 65 6e 74 61 74 69 6f 6e 20 6f 66 20   orientation of 
1510: 63 61 70 74 75 72 65 64 20 69 6d 61 67 65 73 20  captured images 
1520: 72 65 67 61 72 64 69 6e 67 20 69 6d 61 67 65 20  regarding image 
1530: 72 6f 74 61 74 69 6f 6e 2e 20 3c 74 74 3e 3c 69  rotation. <tt><i
1540: 3e 64 65 67 72 65 65 73 3c 2f 69 3e 3c 2f 74 74  >degrees</i></tt
1550: 3e 20 69 66 20 73 70 65 63 69 66 69 65 64 20 6d  > if specified m
1560: 75 73 74 20 62 65 20 61 6e 20 69 6e 74 65 67 65  ust be an intege
1570: 72 20 6e 75 6d 62 65 72 2e 0d 0a 0d 0a 3c 74 74  r number.....<tt
1580: 3e 77 6d 66 20 70 61 72 61 6d 65 74 65 72 73 20  >wmf parameters 
1590: 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20 3f 3c 69  <i>devid</i> ?<i
15a0: 3e 6b 65 79 20 76 61 6c 75 65 20 2e 2e 2e 3c 2f  >key value ...</
15b0: 69 3e 3f 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20  i>?</tt>....    
15c0: 52 65 74 75 72 6e 73 20 6f 72 20 63 68 61 6e 67  Returns or chang
15d0: 65 73 20 64 65 76 69 63 65 20 70 61 72 61 6d 65  es device parame
15e0: 74 65 72 73 20 66 6f 72 20 74 68 65 20 64 65 76  ters for the dev
15f0: 69 63 65 20 69 64 65 6e 74 69 66 69 65 64 20 62  ice identified b
1600: 79 20 3c 74 74 3e 3c 69 3e 64 65 76 69 64 3c 2f  y <tt><i>devid</
1610: 69 3e 3c 2f 74 74 3e 20 67 69 76 65 6e 20 61 73  i></tt> given as
1620: 20 6b 65 79 2d 76 61 6c 75 65 20 70 61 69 72 73   key-value pairs
1630: 2c 20 65 2e 67 2e 20 3c 74 74 3e 62 72 69 67 68  , e.g. <tt>brigh
1640: 74 6e 65 73 73 20 31 30 30 3c 2f 74 74 3e 20 77  tness 100</tt> w
1650: 69 6c 6c 20 63 68 61 6e 67 65 20 74 68 65 20 62  ill change the b
1660: 72 69 67 68 74 6e 65 73 73 20 73 65 74 74 69 6e  rightness settin
1670: 67 20 6f 66 20 63 61 70 74 75 72 65 64 20 69 6d  g of captured im
1680: 61 67 65 73 20 74 6f 20 74 68 65 20 64 65 76 69  ages to the devi
1690: 63 65 20 64 65 70 65 6e 64 65 6e 74 20 76 61 6c  ce dependent val
16a0: 75 65 20 31 30 30 2e 20 54 68 65 20 63 6f 6d 6d  ue 100. The comm
16b0: 61 6e 64 20 72 65 74 75 72 6e 73 20 74 68 65 20  and returns the 
16c0: 63 75 72 72 65 6e 74 20 64 65 76 69 63 65 20 70  current device p
16d0: 61 72 61 6d 65 74 65 72 73 20 28 61 66 74 65 72  arameters (after
16e0: 20 74 68 65 20 70 6f 74 65 6e 74 69 61 6c 20 63   the potential c
16f0: 68 61 6e 67 65 2c 20 77 68 65 6e 20 6b 65 79 73  hange, when keys
1700: 20 61 6e 64 20 76 61 6c 75 65 73 20 77 65 72 65   and values were
1710: 20 67 69 76 65 6e 29 20 61 73 20 61 20 6b 65 79   given) as a key
1720: 2d 76 61 6c 75 65 20 6c 69 73 74 20 77 68 69 63  -value list whic
1730: 68 20 63 61 6e 20 62 65 20 70 72 6f 63 65 73 73  h can be process
1740: 65 64 20 77 69 74 68 20 3c 74 74 3e 61 72 72 61  ed with <tt>arra
1750: 79 20 73 65 74 3c 2f 74 74 3e 20 6f 72 20 3c 74  y set</tt> or <t
1760: 74 3e 64 69 63 74 20 67 65 74 3c 2f 74 74 3e 2e  t>dict get</tt>.
1770: 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20 72 65 63 6f  ....<tt>wmf reco
1780: 72 64 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20  rd <i>devid</i> 
1790: 66 72 61 6d 65 20 3c 69 3e 77 69 64 74 68 20 68  frame <i>width h
17a0: 65 69 67 68 74 20 62 70 70 20 62 79 74 65 61 72  eight bpp bytear
17b0: 72 61 79 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a  ray</i></tt>....
17c0: 20 20 20 20 54 72 61 6e 73 63 6f 64 65 73 20 74      Transcodes t
17d0: 68 65 20 66 72 61 6d 65 20 64 65 73 63 72 69 62  he frame describ
17e0: 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 77 69 64  ed by <tt><i>wid
17f0: 74 68 3c 2f 69 3e 3c 2f 74 74 3e 2c 20 3c 74 74  th</i></tt>, <tt
1800: 3e 3c 69 3e 68 65 69 67 68 74 3c 2f 69 3e 3c 2f  ><i>height</i></
1810: 74 74 3e 2c 20 3c 74 74 3e 3c 69 3e 62 70 70 3c  tt>, <tt><i>bpp<
1820: 2f 69 3e 3c 2f 74 74 3e 2c 20 61 6e 64 20 3c 74  /i></tt>, and <t
1830: 74 3e 3c 69 3e 62 79 74 65 61 72 72 61 79 3c 2f  t><i>bytearray</
1840: 69 3e 3c 2f 74 74 3e 20 74 6f 20 4a 50 45 47 20  i></tt> to JPEG 
1850: 61 6e 64 20 77 72 69 74 65 73 20 74 68 65 20 72  and writes the r
1860: 65 73 75 6c 74 20 74 6f 20 74 68 65 20 72 65 63  esult to the rec
1870: 6f 72 64 69 6e 67 20 66 69 6c 65 20 6f 72 20 73  ording file or s
1880: 74 72 65 61 6d 2e 20 54 68 65 20 72 65 63 6f 72  tream. The recor
1890: 64 69 6e 67 20 6d 75 73 74 20 68 61 76 65 20 62  ding must have b
18a0: 65 65 6e 20 73 74 61 72 74 65 64 20 77 69 74 68  een started with
18b0: 20 74 68 65 20 3c 74 74 3e 2d 75 73 65 72 3c 2f   the <tt>-user</
18c0: 74 74 3e 20 6f 70 74 69 6f 6e 2e 20 54 68 65 20  tt> option. The 
18d0: 62 69 74 73 20 70 65 72 20 70 69 78 65 6c 20 70  bits per pixel p
18e0: 61 72 61 6d 65 74 65 72 20 3c 74 74 3e 3c 69 3e  arameter <tt><i>
18f0: 62 70 70 3c 2f 69 3e 3c 2f 74 74 3e 20 6d 75 73  bpp</i></tt> mus
1900: 74 20 62 65 20 33 2e 20 41 6e 20 69 6e 74 65 67  t be 3. An integ
1910: 65 72 20 6e 75 6d 62 65 72 20 69 73 20 72 65 74  er number is ret
1920: 75 72 6e 65 64 20 61 73 20 72 65 73 75 6c 74 3a  urned as result:
1930: 20 31 20 69 6e 64 69 63 61 74 65 73 20 73 75 63   1 indicates suc
1940: 63 65 73 73 66 75 6c 20 77 72 69 74 65 2c 20 30  cessful write, 0
1950: 20 6e 6f 20 77 72 69 74 65 20 64 75 65 20 74 6f   no write due to
1960: 20 66 72 61 6d 65 20 72 61 74 65 20 63 6f 6e 73   frame rate cons
1970: 74 72 61 69 6e 74 73 2c 20 61 6e 64 20 2d 31 20  traints, and -1 
1980: 61 6e 20 65 72 72 6f 72 20 64 75 72 69 6e 67 20  an error during 
1990: 74 68 65 20 77 72 69 74 65 2e 0d 0a 0d 0a 3c 74  the write.....<t
19a0: 74 3e 77 6d 66 20 72 65 63 6f 72 64 20 3c 69 3e  t>wmf record <i>
19b0: 64 65 76 69 64 3c 2f 69 3e 20 70 61 75 73 65 3c  devid</i> pause<
19c0: 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 50 61 75 73  /tt>....    Paus
19d0: 65 73 20 72 65 63 6f 72 64 69 6e 67 20 74 6f 20  es recording to 
19e0: 61 20 66 69 6c 65 20 6f 72 20 73 74 72 65 61 6d  a file or stream
19f0: 2e 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20 72 65 63  .....<tt>wmf rec
1a00: 6f 72 64 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e  ord <i>devid</i>
1a10: 20 72 65 73 75 6d 65 3c 2f 74 74 3e 0d 0a 0d 0a   resume</tt>....
1a20: 20 20 20 20 43 6f 6e 74 69 6e 75 65 73 20 72 65      Continues re
1a30: 63 6f 72 64 69 6e 67 20 74 6f 20 61 20 66 69 6c  cording to a fil
1a40: 65 20 6f 72 20 73 74 72 65 61 6d 2e 0d 0a 0d 0a  e or stream.....
1a50: 3c 74 74 3e 77 6d 66 20 72 65 63 6f 72 64 20 3c  <tt>wmf record <
1a60: 69 3e 64 65 76 69 64 3c 2f 69 3e 20 73 74 61 72  i>devid</i> star
1a70: 74 20 3c 69 3e 6f 70 74 69 6f 6e 73 20 2e 2e 2e  t <i>options ...
1a80: 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20  </i></tt>....   
1a90: 20 53 74 61 72 74 73 20 72 65 63 6f 72 64 69 6e   Starts recordin
1aa0: 67 20 74 6f 20 61 20 66 69 6c 65 20 6f 72 20 73  g to a file or s
1ab0: 74 72 65 61 6d 2e 20 3c 74 74 3e 3c 69 3e 6f 70  tream. <tt><i>op
1ac0: 74 69 6f 6e 73 3c 2f 69 3e 3c 2f 74 74 3e 20 63  tions</i></tt> c
1ad0: 6f 6e 74 72 6f 6c 20 74 68 65 20 64 61 74 61 20  ontrol the data 
1ae0: 66 6f 72 6d 61 74 2c 20 66 72 61 6d 65 73 20 70  format, frames p
1af0: 65 72 20 73 65 63 6f 6e 64 2c 20 61 6e 64 20 6f  er second, and o
1b00: 75 74 70 75 74 20 63 68 61 6e 6e 65 6c 2e 20 54  utput channel. T
1b10: 68 65 20 6f 70 74 69 6f 6e 20 3c 74 74 3e 2d 66  he option <tt>-f
1b20: 70 73 3c 2f 74 74 3e 20 73 70 65 63 69 66 69 65  ps</tt> specifie
1b30: 73 20 74 68 65 20 61 70 70 72 6f 78 69 6d 61 74  s the approximat
1b40: 65 20 72 61 74 65 20 69 6e 20 66 72 61 6d 65 73  e rate in frames
1b50: 20 70 65 72 20 73 65 63 6f 6e 64 20 61 73 20 61   per second as a
1b60: 20 66 6c 6f 61 74 69 6e 67 20 70 6f 69 6e 74 20   floating point 
1b70: 6e 75 6d 62 65 72 2e 20 54 68 65 20 6f 70 74 69  number. The opti
1b80: 6f 6e 20 3c 74 74 3e 2d 63 68 61 6e 3c 2f 74 74  on <tt>-chan</tt
1b90: 3e 20 73 70 65 63 69 66 69 65 73 20 74 68 65 20  > specifies the 
1ba0: 63 68 61 6e 6e 65 6c 20 74 6f 20 77 68 69 63 68  channel to which
1bb0: 20 74 68 65 20 66 72 61 6d 65 73 20 61 72 65 20   the frames are 
1bc0: 77 72 69 74 74 65 6e 2e 20 54 68 69 73 20 63 68  written. This ch
1bd0: 61 6e 6e 65 6c 20 69 73 20 64 65 74 61 63 68 65  annel is detache
1be0: 64 20 66 72 6f 6d 20 74 68 65 20 54 63 6c 20 69  d from the Tcl i
1bf0: 6e 74 65 72 70 72 65 74 65 72 20 61 6e 64 20 63  nterpreter and c
1c00: 6f 6e 74 72 6f 6c 6c 65 64 20 73 6f 6c 65 6c 79  ontrolled solely
1c10: 20 62 79 20 74 68 65 20 3c 74 74 3e 77 6d 66 20   by the <tt>wmf 
1c20: 72 65 63 6f 72 64 3c 2f 74 74 3e 20 63 6f 6d 6d  record</tt> comm
1c30: 61 6e 64 2e 20 54 68 65 20 3c 74 74 3e 2d 62 6f  and. The <tt>-bo
1c40: 75 6e 64 61 72 79 3c 2f 74 74 3e 20 6f 70 74 69  undary</tt> opti
1c50: 6f 6e 20 73 70 65 63 69 66 69 65 73 20 61 20 4d  on specifies a M
1c60: 49 4d 45 20 6d 75 6c 74 69 70 61 72 74 20 62 6f  IME multipart bo
1c70: 75 6e 64 61 72 79 20 73 74 72 69 6e 67 20 61 6e  undary string an
1c80: 64 20 73 65 6c 65 63 74 73 20 74 68 65 20 4d 49  d selects the MI
1c90: 4d 45 20 74 79 70 65 20 3c 62 3e 6d 75 6c 74 69  ME type <b>multi
1ca0: 70 61 72 74 2f 78 2d 6d 69 78 65 64 2d 72 65 70  part/x-mixed-rep
1cb0: 6c 61 63 65 3c 2f 62 3e 20 73 75 69 74 61 62 6c  lace</b> suitabl
1cc0: 65 20 66 6f 72 20 73 74 72 65 61 6d 69 6e 67 20  e for streaming 
1cd0: 74 6f 20 61 20 77 65 62 20 62 72 6f 77 73 65 72  to a web browser
1ce0: 2e 20 54 68 65 20 63 6f 6e 74 65 6e 74 20 74 79  . The content ty
1cf0: 70 65 20 64 65 6c 69 76 65 72 65 64 20 74 6f 20  pe delivered to 
1d00: 74 68 65 20 62 72 6f 77 73 65 72 20 69 73 20 3c  the browser is <
1d10: 62 3e 69 6d 61 67 65 2f 6a 70 65 67 3c 2f 62 3e  b>image/jpeg</b>
1d20: 2e 20 49 66 20 74 68 65 20 3c 74 74 3e 2d 62 6f  . If the <tt>-bo
1d30: 75 6e 64 61 72 79 3c 2f 74 74 3e 20 6f 70 74 69  undary</tt> opti
1d40: 6f 6e 20 69 73 20 6f 6d 69 74 74 65 64 2c 20 74  on is omitted, t
1d50: 68 65 20 6f 75 74 70 75 74 20 66 6f 72 6d 61 74  he output format
1d60: 20 69 73 20 72 61 77 20 41 56 49 20 61 6e 64 20   is raw AVI and 
1d70: 72 65 71 75 69 72 65 73 20 74 68 65 20 63 68 61  requires the cha
1d80: 6e 6e 65 6c 20 74 6f 20 62 65 20 73 65 65 6b 61  nnel to be seeka
1d90: 62 6c 65 2e 20 54 68 65 20 6f 70 74 69 6f 6e 20  ble. The option 
1da0: 3c 74 74 3e 2d 6d 6a 70 65 67 3c 2f 74 74 3e 20  <tt>-mjpeg</tt> 
1db0: 66 6f 72 63 65 73 20 74 68 65 20 72 65 63 6f 72  forces the recor
1dc0: 64 65 64 20 64 61 74 61 20 74 6f 20 4a 50 45 47  ded data to JPEG
1dd0: 20 66 6f 72 6d 61 74 2c 20 69 2e 65 2e 20 61 20   format, i.e. a 
1de0: 74 72 61 6e 73 63 6f 64 69 6e 67 20 74 6f 20 4a  transcoding to J
1df0: 50 45 47 20 77 69 6c 6c 20 62 65 20 70 65 72 66  PEG will be perf
1e00: 6f 72 6d 65 64 20 69 6e 20 73 6f 66 74 77 61 72  ormed in softwar
1e10: 65 2c 20 69 66 20 74 68 65 20 64 65 76 69 63 65  e, if the device
1e20: 20 64 6f 65 73 6e 27 74 20 61 6c 72 65 61 64 79   doesn't already
1e30: 20 64 65 6c 69 76 65 72 20 61 20 4a 50 45 47 20   deliver a JPEG 
1e40: 73 74 72 65 61 6d 2e 20 54 68 65 20 6f 70 74 69  stream. The opti
1e50: 6f 6e 20 3c 74 74 3e 2d 75 73 65 72 3c 2f 74 74  on <tt>-user</tt
1e60: 3e 20 74 75 72 6e 73 20 6f 66 66 20 61 75 74 6f  > turns off auto
1e70: 6d 61 74 69 63 20 66 72 61 6d 65 20 77 72 69 74  matic frame writ
1e80: 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 74 6f 20  e operations to 
1e90: 74 68 65 20 72 65 63 6f 72 64 69 6e 67 20 66 69  the recording fi
1ea0: 6c 65 20 6f 72 20 73 74 72 65 61 6d 20 77 68 65  le or stream whe
1eb0: 6e 20 61 20 66 72 61 6d 65 20 69 73 20 64 65 6c  n a frame is del
1ec0: 69 76 65 72 65 64 20 66 72 6f 6d 20 74 68 65 20  ivered from the 
1ed0: 64 65 76 69 63 65 2e 20 49 6e 73 74 65 61 64 2c  device. Instead,
1ee0: 20 3c 74 74 3e 77 6d 66 20 72 65 63 6f 72 64 20   <tt>wmf record 
1ef0: 3c 69 3e 64 65 76 69 64 3c 2f 69 3e 20 66 72 61  <i>devid</i> fra
1f00: 6d 65 3c 2f 74 74 3e 20 6d 75 73 74 20 62 65 20  me</tt> must be 
1f10: 69 6e 76 6f 6b 65 64 20 69 6e 20 74 68 65 20 63  invoked in the c
1f20: 61 6c 6c 62 61 63 6b 20 66 75 6e 63 74 69 6f 6e  allback function
1f30: 2e 20 54 68 65 20 3c 74 74 3e 2d 75 73 65 72 3c  . The <tt>-user<
1f40: 2f 74 74 3e 20 6f 70 74 69 6f 6e 20 69 6d 70 6c  /tt> option impl
1f50: 69 65 73 20 3c 74 74 3e 2d 6d 6a 70 65 67 3c 2f  ies <tt>-mjpeg</
1f60: 74 74 3e 2e 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20  tt>.....<tt>wmf 
1f70: 72 65 63 6f 72 64 20 3c 69 3e 64 65 76 69 64 3c  record <i>devid<
1f80: 2f 69 3e 20 73 74 61 74 65 3c 2f 74 74 3e 0d 0a  /i> state</tt>..
1f90: 0d 0a 20 20 20 20 52 65 74 75 72 6e 73 20 74 68  ..    Returns th
1fa0: 65 20 63 75 72 72 65 6e 74 20 72 65 63 6f 72 64  e current record
1fb0: 69 6e 67 20 73 74 61 74 65 20 61 73 20 3c 62 3e  ing state as <b>
1fc0: 73 74 6f 70 3c 2f 62 3e 2c 20 3c 62 3e 72 65 63  stop</b>, <b>rec
1fd0: 6f 72 64 69 6e 67 3c 2f 62 3e 2c 20 20 3c 62 3e  ording</b>,  <b>
1fe0: 70 61 75 73 65 3c 2f 62 3e 2c 20 6f 72 20 3c 62  pause</b>, or <b
1ff0: 3e 65 72 72 6f 72 3c 2f 62 3e 2e 20 54 68 65 20  >error</b>. The 
2000: 73 74 61 74 65 20 3c 62 3e 65 72 72 6f 72 3c 2f  state <b>error</
2010: 62 3e 20 69 6e 64 69 63 61 74 65 73 20 61 20 77  b> indicates a w
2020: 72 69 74 65 20 65 72 72 6f 72 20 6f 6e 20 74 68  rite error on th
2030: 65 20 66 69 6c 65 20 6f 72 20 73 74 72 65 61 6d  e file or stream
2040: 2e 20 49 6e 20 74 68 69 73 20 63 61 73 65 20 6e  . In this case n
2050: 6f 20 66 75 72 74 68 65 72 20 66 72 61 6d 65 73  o further frames
2060: 20 77 69 6c 6c 20 62 65 20 77 72 69 74 74 65 6e   will be written
2070: 2e 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20 72 65 63  .....<tt>wmf rec
2080: 6f 72 64 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e  ord <i>devid</i>
2090: 20 73 74 6f 70 3c 2f 74 74 3e 0d 0a 0d 0a 20 20   stop</tt>....  
20a0: 20 20 46 69 6e 69 73 68 65 73 20 72 65 63 6f 72    Finishes recor
20b0: 64 69 6e 67 20 74 6f 20 61 20 66 69 6c 65 20 6f  ding to a file o
20c0: 72 20 73 74 72 65 61 6d 20 61 6e 64 20 63 6c 6f  r stream and clo
20d0: 73 65 73 20 74 68 65 20 75 6e 64 65 72 6c 79 69  ses the underlyi
20e0: 6e 67 20 63 68 61 6e 6e 65 6c 2e 0d 0a 0d 0a 3c  ng channel.....<
20f0: 74 74 3e 77 6d 66 20 73 74 61 72 74 20 3c 69 3e  tt>wmf start <i>
2100: 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a  devid</i></tt>..
2110: 0d 0a 20 20 20 20 53 74 61 72 74 73 20 63 61 70  ..    Starts cap
2120: 74 75 72 69 6e 67 20 69 6d 61 67 65 73 20 6f 66  turing images of
2130: 20 74 68 65 20 64 65 76 69 63 65 20 69 64 65 6e   the device iden
2140: 74 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69  tified by <tt><i
2150: 3e 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e  >devid</i></tt>.
2160: 20 57 68 65 6e 20 61 6e 20 69 6d 61 67 65 20 69   When an image i
2170: 73 20 72 65 61 64 79 2c 20 74 68 65 20 63 61 6c  s ready, the cal
2180: 6c 62 61 63 6b 20 63 6f 6d 6d 61 6e 64 20 73 65  lback command se
2190: 74 20 6f 6e 20 3c 74 74 3e 77 6d 66 20 6f 70 65  t on <tt>wmf ope
21a0: 6e 3c 2f 74 74 3e 20 69 73 20 69 6e 76 6f 6b 65  n</tt> is invoke
21b0: 64 2e 0d 0a 0d 0a 3c 74 74 3e 77 6d 66 20 73 74  d.....<tt>wmf st
21c0: 61 74 65 20 3c 69 3e 64 65 76 69 64 3c 2f 69 3e  ate <i>devid</i>
21d0: 3c 2f 74 74 3e 0d 0a 0d 0a 20 20 20 20 52 65 74  </tt>....    Ret
21e0: 75 72 6e 73 20 74 68 65 20 69 6d 61 67 65 20 63  urns the image c
21f0: 61 70 74 75 72 65 20 73 74 61 74 65 20 6f 66 20  apture state of 
2200: 74 68 65 20 64 65 76 69 63 65 20 69 64 65 6e 74  the device ident
2210: 69 66 69 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e  ified by <tt><i>
2220: 64 65 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 20  devid</i></tt>. 
2230: 54 68 65 20 72 65 73 75 6c 74 20 69 73 20 74 68  The result is th
2240: 65 20 73 74 72 69 6e 67 20 3c 62 3e 63 61 70 74  e string <b>capt
2250: 75 72 65 3c 2f 62 3e 20 69 66 20 74 68 65 20 64  ure</b> if the d
2260: 65 76 69 63 65 20 69 73 20 73 74 61 72 74 65 64  evice is started
2270: 2c 20 3c 62 3e 73 74 6f 70 70 65 64 3c 2f 62 3e  , <b>stopped</b>
2280: 20 69 66 20 74 68 65 20 64 65 76 69 63 65 20 69   if the device i
2290: 73 20 73 74 6f 70 70 65 64 2e 0d 0a 0d 0a 3c 74  s stopped.....<t
22a0: 74 3e 77 6d 66 20 73 74 6f 70 20 3c 69 3e 64 65  t>wmf stop <i>de
22b0: 76 69 64 3c 2f 69 3e 3c 2f 74 74 3e 0d 0a 0d 0a  vid</i></tt>....
22c0: 20 20 20 20 53 74 6f 70 20 63 61 70 74 75 72 69      Stop capturi
22d0: 6e 67 20 69 6d 61 67 65 73 20 6f 66 20 74 68 65  ng images of the
22e0: 20 64 65 76 69 63 65 20 69 64 65 6e 74 69 66 69   device identifi
22f0: 65 64 20 62 79 20 3c 74 74 3e 3c 69 3e 64 65 76  ed by <tt><i>dev
2300: 69 64 3c 2f 69 3e 3c 2f 74 74 3e 2e 0d 0a 0d 0a  id</i></tt>.....
2310: 3c 74 74 3e 77 6d 66 20 74 6f 70 68 6f 74 6f 20  <tt>wmf tophoto 
2320: 3c 69 3e 77 69 64 74 68 20 68 65 69 67 68 74 20  <i>width height 
2330: 62 70 70 20 62 79 74 65 61 72 72 61 79 3c 2f 69  bpp bytearray</i
2340: 3e 20 3f 3c 69 3e 72 6f 74 20 6d 69 72 72 6f 72  > ?<i>rot mirror
2350: 78 20 6d 69 72 72 6f 72 79 3c 2f 69 3e 3f 3c 2f  x mirrory</i>?</
2360: 74 74 3e 0d 0a 0d 0a 20 20 20 20 4d 61 6b 65 73  tt>....    Makes
2370: 20 74 68 65 20 52 47 42 20 28 3c 74 74 3e 3c 69   the RGB (<tt><i
2380: 3e 62 70 70 3c 2f 69 3e 3c 2f 74 74 3e 20 69 73  >bpp</i></tt> is
2390: 20 33 29 20 6f 72 20 67 72 65 79 20 28 3c 74 74   3) or grey (<tt
23a0: 3e 3c 69 3e 62 70 70 3c 2f 69 3e 3c 2f 74 74 3e  ><i>bpp</i></tt>
23b0: 20 69 73 20 31 29 20 62 79 74 65 20 61 72 72 61   is 1) byte arra
23c0: 79 20 3c 74 74 3e 3c 69 3e 62 79 74 65 61 72 72  y <tt><i>bytearr
23d0: 61 79 3c 2f 69 3e 3c 2f 74 74 3e 20 6f 66 20 3c  ay</i></tt> of <
23e0: 74 74 3e 3c 69 3e 77 69 64 74 68 3c 2f 69 3e 3c  tt><i>width</i><
23f0: 2f 74 74 3e 20 74 69 6d 65 73 20 3c 74 74 3e 3c  /tt> times <tt><
2400: 69 3e 68 65 69 67 68 74 3c 2f 69 3e 3c 2f 74 74  i>height</i></tt
2410: 3e 20 70 69 78 65 6c 73 20 69 6e 74 6f 20 61 20  > pixels into a 
2420: 54 6b 20 70 68 6f 74 6f 20 69 6d 61 67 65 2e 20  Tk photo image. 
2430: 4f 70 74 69 6f 6e 61 6c 6c 79 2c 20 74 68 65 20  Optionally, the 
2440: 64 61 74 61 20 69 73 20 72 6f 74 61 74 65 64 20  data is rotated 
2450: 62 79 20 3c 74 74 3e 3c 69 3e 72 6f 74 3c 2f 69  by <tt><i>rot</i
2460: 3e 3c 2f 74 74 3e 20 64 65 67 72 65 65 73 20 28  ></tt> degrees (
2470: 70 6f 73 73 69 62 6c 65 20 76 61 6c 75 65 73 20  possible values 
2480: 30 2c 20 39 30 2c 20 31 38 30 2c 20 32 37 30 29  0, 90, 180, 270)
2490: 20 61 6e 64 2f 6f 72 20 6d 69 72 72 6f 72 65 64   and/or mirrored
24a0: 20 61 6c 6f 6e 67 20 74 68 65 20 58 20 61 6e 64   along the X and
24b0: 2f 6f 72 20 59 20 61 78 69 73 20 61 73 20 73 70  /or Y axis as sp
24c0: 65 63 69 66 69 65 64 20 62 79 20 74 68 65 20 62  ecified by the b
24d0: 6f 6f 6c 65 61 6e 20 76 61 6c 75 65 73 20 3c 74  oolean values <t
24e0: 74 3e 3c 69 3e 6d 69 72 72 6f 72 78 3c 2f 69 3e  t><i>mirrorx</i>
24f0: 3c 2f 74 74 3e 20 61 6e 64 20 3c 74 74 3e 3c 69  </tt> and <tt><i
2500: 3e 6d 69 72 72 6f 72 79 3c 2f 69 3e 3c 2f 74 74  >mirrory</i></tt
2510: 3e 2e 0d 0a 0a 5a 20 33 61 32 33 36 38 30 36 33  >....Z 3a2368063
2520: 65 35 36 34 62 34 33 61 66 61 35 62 33 36 36 36  e564b43afa5b3666
2530: 66 63 63 36 39 32 31 0a                          fcc6921.