Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

l1394_camera.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           l1394_camera.h  -  description
00003                              -------------------
00004     begin                : Fri Nov 24 2000
00005     copyright            : (C) 2000-2004 by Michael Repplinger
00006     email                : repplinger@cs.uni-sb.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 #ifndef CAMERA_H
00019 #define CAMERA_H
00020 #include "l1394_cameraregister.h"
00021 #include "l1394_device.h"
00022 namespace L1394
00023 {
00024 #define RED 0
00025 #define BLUE 1
00026 
00027 /*! \class Camera
00028   *  \ingroup L1394_Device
00029   * \brief   This class defines the interface for cameras.
00030   *
00031   * This class is base class for all cameras and defines functions for the most common
00032   *  features. <BR>
00033   *  To access a feature, you must call the corresponding function. Normally this
00034   *  method returns a pointer to a so called L1394 Register object. The Register object
00035   *  provides functions to define how to execute the feature. Class CameraRegister defines
00036   *  the functions of the L1394 Register objects for cameras.
00037   *
00038   * Here is a little example to show the idea.<BR>
00039   *
00040   * \code
00041   * Session*  session  = GetSession();
00042   * Camera*  camera  = session->findCamera();
00043   * if (camera == NULL)
00044   * {
00045   *   cout << "No camera found" << endl;
00046   *   exit(0);
00047   * }
00048   * if (camera->zoom()->hasFeature())  //if the camera support zoom
00049   *   camera->zoom()->setValue(camera->zoom()->getMinValue()); //set zoom value to the minimum value.
00050   * else
00051   *   cout << " Feature not supported " << endl;
00052   * \endcode
00053   * For more information see the tutorial.
00054   *
00055   *  @author Michael Repplinger
00056   */
00057 
00058 
00059 class Camera : public Device
00060 {
00061 public:
00062 /*! \name Camera constructor
00063   * These functions creates the Camera objects
00064   */
00065 //@{
00066   Camera (Node* parent_node);
00067 /*! \fn ~Camera
00068   * \brief destructor
00069   */
00070   virtual ~Camera(){};
00071 
00072 //@}
00073   virtual DeviceType getDeviceType() const { return _Camera;}
00074 /*! \name Camera Interface
00075   * This functions describe the interface of any camera. There are combinations
00076   *  to create an illegal command. These commands are ignored.
00077   */
00078 //@{
00079   //! Access 'Brightness' feature register
00080   virtual const CameraRegister* brightness()          =0;
00081 
00082   //! Access 'Auto-Exposure' feature register
00083   virtual const CameraRegister* autoExposure()       =0;
00084 
00085   //! Access 'Sharpness' feature register
00086   virtual const CameraRegister* sharpness()            =0;
00087 
00088   //! Access 'White-Balance' feature register (change both RED and BLUE)
00089   virtual const CameraRegister* whiteBalance()        =0;
00090 
00091   //! Access 'White-Balance' feature register 1 = RED ,BLUE = 0
00092   virtual const CameraRegister* whiteBalance(int)     =0;
00093 
00094   //! Access 'Hue' feature register
00095   virtual const CameraRegister* hue()                 =0;
00096 
00097   //! Access 'Saturation' feature register
00098   virtual const CameraRegister* saturation()         =0;
00099 
00100   //! Access 'Gamma' feature register
00101   virtual const CameraRegister* gamma()                =0;
00102 
00103   //! Access 'Shutter' feature register
00104   virtual const CameraRegister* shutter()             =0;
00105 
00106   //! Access 'Gain' feature register
00107   virtual const CameraRegister* gain()               =0;
00108 
00109   //! Access 'Iris' feature register
00110   virtual const CameraRegister* iris()               =0;
00111 
00112   //! Access 'Focus' feature register
00113   virtual const CameraRegister* focus()               =0;
00114 
00115   //! Access 'Temperature' feature register
00116   virtual const CameraRegister* temperature()         =0;
00117 
00118   //! Access 'Trigger' feature register
00119   virtual const CameraRegister* trigger()             =0;
00120 
00121   //! Access 'Zoom' feature register
00122   virtual const CameraRegister* zoom()               =0;
00123 
00124   //! Access 'Pan' feature register
00125   virtual const CameraRegister* pan()                 =0;
00126 
00127   //! Access 'Tilt' feature register
00128   virtual const CameraRegister* tilt()               =0;
00129 
00130   //! Access 'Filter' feature register
00131   virtual const CameraRegister* filter()             =0;
00132 //@}
00133 
00134 };
00135 }
00136 #endif

Generated on Wed Aug 24 00:36:39 2005 for L1394 by doxygen 1.4.2
L1394 library (NMM) grahics.cs.uni-sb.de/~repplix/l1394_home/