$Id$ ABSTRACT ======== Capture images from your iSight camera. Directly copy them to the pasteboard for reuse in other applications. Also, offer an AppleScript interface for third parties to grab images and quickly place them in other applications (such as iChat). Try to be as friendly as possible, offering as much access as possible to the properties of your iSight. HOMEPAGE ======== Visit http://www.mulle-kybernetik.com/software/MulleSight for up-to-date information. Application Support =================== The following locations are being searched upon startup: - ~/Library/Application Support/MulleSight - /Library/Application Support/MulleSight - /System/Library/Application Support/MulleSight - /Network/Library/Application Support/MulleSight AppleScripts ============ Files in "Application Support" (see above) which have an .applescript extension are being added on application startup to the "Capture/Execute AppleScript" menu. I've provided some AppleScripts, suitable for i.e. iChatStatus (http://www.ittpoi.com/index.php?product=com.ittpoi.ichatstatus&type=frameset). New in 1.0.8 is an ImageProcessing AppleScript which demonstrates some advanced use of the application. Quartz Composer =============== Files in "Application Support" (see above) which have a .qtz extension are being added on application startup to the "Video/Use Effect" menu. When developing own effects please note that it's not important to name the input/output keys in a specific way. However, MulleSight will use any key of type QCPortTypeImage in inputKeys and outputKeys as input/output respectively (which I consider a sane thing to do). Also, an inputKey of type QCPortTypeBoolean will be considered a "flip image" toggle. If no such key is found, the image won't be flippable. TODO ==== - AppleScript ideas: - should be able to stop/start capturing via AppleScript - capture framerate should be adjustable - capture resolution should be adjustable - selection rectangle should be adjustable - resizing should be adjustable - idle timer interval should be adjustable (to save CPU on slower machines) BUGS ==== - if mouse is in tracking rect (SelectiveView) and user presses Apple-C, the captured picture includes the grip of the tracking rect -> drawing SHOULD be disabled prior to capturing ANNOYANCES DURING CODING ======================== AppleScript support in Cocoa sucks. No wait, AppleScript itself sucks. I don't have a clue why I have to provide "codes" for the selectors, it seems to be an artifact from MacOS 9 days. It took me a while to figure out that there are man pages for 'sdp' (/Developer/Tools/sdp) and 'sdef'. However, I didn't find a documented way to teach the sdef the proper definition of my "Image" value type (which is an NSData representing a TIFF image). I used 'sdp' to generate the initial scriptSuite and scriptTerminology and modified the result according to the iChat script suite. I barely understand AppleScript syntax. Browsing the web, it seems others tend to share this opinion. It's possible to do neat tricks with AppleScript, however it's often very hard to get there. ACKNOWLEDGEMENTS ================ Quartz Composer is very cool stuff. French translation by Ronald Leroux . REFERENCES ========== All knowledge about Quicktime gathered via ADC sample code, see http://developer.apple.com/samplecode/Cocoa_-_SGDataProc/Cocoa_-_SGDataProc.html and http://developer.apple.com/samplecode/HackTVCarbon/HackTVCarbon.html for details.