wmf - Tcl interface to cameras using Windows Media Foundation
package require tclwmf
wmf option ?arg ...?
This command provides several operations to interface cameras using the infrastructure provided by Windows Media Foundation. option indicates what to carry out on the Windows Media Foundation subsystem. Any unique abbreviation for option is acceptable. The valid options are:
wmf close devid
Closes the device identified by devid which has been opened before using wmf open.
Returns a list of device names which can be used for wmf open. Each device adds two elements to the list: its symbolic link to be used in wmf open and its friendly name for presentation.
wmf format devid ?index?
Returns or changes the media format of the device identified by devid. The optional parameter index is an integer number giving the index of the media format to be used as returned in wmf listformats. If omitted, the currently active index is returned. Changing the media format is only possible if the device is not capturing images.
wmf image devid ?photoImage?
Copies the most recent captured image of the device devid into the photo image identified by photoImage and returns non-zero on success or zero if no data transfer has taken place. If photoImage is omitted, a four element list is returned with the first element being the image width, the second the image height, the third the number of bytes per pixel, and the last the image's RGB values with 3 bytes per pixel in red, green, blue order as a byte array. In this case an error is indicated by throwing an exception.
wmf info devid
Returns information on open devices. If devid is specified, a list of two elements is returned, the first being the device symbolic link and the second the image callback command for that device, i.e. the same arguments which were used on wmf open. If devid is omitted, a list of devids, i.e. all currently opened devices is returned.
wmf listformats devid
Returns a dictionary keyed by a media format index as integer with the values being another dictionary with information about the frame size and rate of that media format. The respective index can be used in wmf format.
wmf mirror devid ?x y?
Retrieves or sets flags to mirror captured images along the X or Y axis. Parameters x and y if specified must be boolean values.
wmf open devname callback
Opens the device with device symbolic link devname and establishes callback as command to be invoked on captured images and finally returns a devid, i.e. a handle to further deal with the device. Two additional parameters are appended when callback is invoked: the devid of the device and the current capture state as in wmf state. For the format of devname see the description of wmf devices.
wmf orientation devid ?degrees?
Retrieves or sets the orientation of captured images regarding image rotation. degrees if specified must be an integer number.
wmf parameters devid ?key value ...?
Returns or changes device parameters for the device identified by devid given as key-value pairs, e.g. brightness 100 will change the brightness setting of captured images to the device dependent value 100. The command returns the current device parameters (after the potential change, when keys and values were given) as a key-value list which can be processed with array set or dict get.
wmf start devid
Starts capturing images of the device identified by devid. When an image is ready, the callback command set on wmf open is invoked.
wmf state devid
Returns the image capture state of the device identified by devid. The result is the string capture if the device is started, stopped if the device is stopped.
wmf stop devid
Stop capturing images of the device identified by devid.