home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 4 / Apprentice-Release4.iso / Source Code / C++ / Snippets / QuickCamObjects / Read.Me < prev   
Encoding:
Text File  |  1995-12-06  |  4.3 KB  |  82 lines  |  [TEXT/CWIE]

  1. What we have here is an object for controlling the QuickCam B&W camera.
  2. It provides some methods for doing some basic things like displaying to 
  3. a GrafPort (window) and controlling the brightness.  It even has a spot
  4. meter for automatic intensity control.  It can snap pictures and make
  5. maeasurements.  What it doesn't provide for right now is moov recording.
  6. I hope to add that in the next release.
  7.  
  8. //    © Paul B. Beeken, Work In Progress, 1994-5
  9. //    Knowledge Software Consulting.
  10. //
  11. //    Please, please, please, in the unlikely event you should use this stuff
  12. //    for some commercial application I would appreciate you contacting me.  If
  13. //    its for your own use, use away. Send email: knowsoft@ios.com
  14. //    My personal philosophy closely adheres to that of GNU software.  I offer this
  15. //    in the hope that others will improve and expand upon it.  Post your additions,
  16. //    leave this notice in place and add your own comments.
  17. //
  18. //    As always: this file is presented as is with no warrantees expressed or implied.
  19. //    Swim at your own risk, etc. etc.
  20. //
  21. //    CQuickCam
  22. //
  23. //    A c++ object library for the Connectix QuickCam using the
  24. //    standardized vdig functions outlined in the Ch. 8 of QTComponents.
  25. //    Yeah, you could do much of this seamlessly with Ch. 6 but with alot
  26. //    of loss of control and performance.  Some considerable experimentation
  27. //    has gone into this object and many related threads along this line.
  28. //    I think this provides the best trade off of flexability and control
  29. //
  30. //    Notes in general:  There are sometimes many ways to handle the 
  31. //        output of a vdig.  It can preview directly to the screen (if it is
  32. //        a cGrafPort) or to a pixmap.  Multiple buffering is an option and
  33. //        can be a very effective method given the serial data stream nature of 
  34. //        this kind of digitizer.  It can allow the greatest flexability
  35. //        and smoothness of updating.  It may not be the best solution for a
  36. //        particular application.
  37. //
  38. //    QuickCam in particular:
  39. //        The B&W camera is a 4 bit machine whose vdig doesn't do DMA.
  40. //        This object always buffers the data and the instatiator is responsible
  41. //        for updating.  Previewing is done by copying the GWorld pixmap to a 
  42. //        rectangle in a given cGrafport.  There are a couple of ways to accumulate
  43. //        data to the pixMap.  One is to use a buffers and the other is to write
  44. //        to a pixmap.  The former allows async grabs while the later does not.
  45. //        The routines outlined here allow either.  By specifying 0 for buffers,
  46. //        the vdig writes directly to the pixmap without any overhead associated
  47. //        with buffers.  Any value from 1 to 3 will allow you to write to different
  48. //        rectangles in the same pixmap but  will allow async grabs.  This may
  49. //        allow for some performance imporvements.
  50. //        The QuickCam vdig doesn't seem to like more than 3 buffers.  Why would you
  51. //        need more?  Actually this makes sense.  One would be the writethrubuffer
  52. //        the other two are the alternating capture buffers.
  53. //
  54. //
  55. //    Current version 0.8        © Paul B. Beeken, Knowledge Software Consulting.
  56. //
  57. //    11/08/95    Finished basic object after creating various types of LPane
  58. //            derivatives.  This object borrows the from the best of them.  Its
  59. //            creation also eliminates the dependance on MW PowerPlant.
  60. //    12/04/95    Completed spot metering and fixed a small memory leak.
  61. //
  62. //    Wishlist:    Sequential capture to moov.
  63. //                Include methods for capturing from a subset rect in vdig bounds.
  64. //                Motion triggering.
  65.  
  66.  
  67. Now for a simple application of this object:
  68. // ===========================================================================
  69. //    CQCamPane.cp                    A pane using the newly created CQuickCam obj
  70. // ===========================================================================
  71. //
  72. //    12/2/95        Finsihed CQuickCam enought to try this out.
  73. This file demonstrates a way to use the above object in to construct a PowerPlant
  74. Pane for controlling the QuickCam.  I have provided minimum functionality which is
  75. intended to simply illustrate the use of the object.  You could add controls, special
  76. tools to control the spot metering, etc.  
  77.  
  78. Like all code resources of this type I would hope that if you make significant improvements
  79. to this you post your additions along with the original author's comments and yours.
  80.  
  81. Thank you for your support.
  82. Paul B. Beeken            Knowledge Software Consulting               knowsoft@ios.com