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

l1394_avccameraregister.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                           l1394_avccameraregister.h  -  description
00003                              -------------------
00004     begin                : Wed Oct 25 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 L1394AVCCAMERAREGISTER_H
00019 #define L1394AVCCAMERAREGISTER_H
00020 
00021 #include "l1394_cameraregister.h"
00022 #include "l1394_qarray.h"
00023 #include "l1394_resource.h"
00024 #include "l1394_avcregister.h"
00025 
00026 
00027 namespace L1394{
00028 
00029 /*! \class AvcCameraRegister
00030   * \ingroup L1394_Register
00031   * \brief Class AvcCameraRegister implements the interface of class CameraRegister for AvcCameras.
00032   *
00033   * As described in class CameraRegister, class AvcCameraRegister defines how to execute a
00034   *  feature of a Camera based on the AV/C camera subunit Specification (Version 2.1).
00035   *
00036   * For example-code see class Camera and AvcCamera.
00037   *
00038   * Illegal combinations are ignored.
00039   *
00040   *@author Michael Repplinger
00041   */
00042 class FcpNode;
00043 class AvcCameraRegister : public CameraRegister, public AvcRegister
00044 {
00045 public:
00046 
00047 /*! \name CameraRegister constructor
00048   * These functions implement the CameraRegister interface for AvcCameras
00049   */
00050 //@{
00051 
00052 /*! \fn AvcCameraRegister(const FcpNode* parent_node, const int subunit_value)
00053   * \brief This method creates a CameraRegister object for AvcCameras.
00054   * \param FcpNode* : pointer to the parent node.
00055   * \param subunit_value : The subunit value defines the subunit-type and the subunit-id of the device.
00056   */
00057   AvcCameraRegister(const FcpNode* parent_node, const int subunit_value);
00058 
00059 
00060 /*! \fn ~AvcCameraRegister()
00061   * \brief destructor
00062   */
00063   ~AvcCameraRegister();
00064 //@}
00065 
00066 /*! \name Camera_register Interface
00067   * These functions implement the CameraRegister interface for AvcCameras
00068   */
00069 //@{
00070 /*! \fn onePush(const bool one_push = true)  const
00071   * \brief This method activates or deactivates one-push mode of a feature
00072   * \param one_push : enables or disables one_push
00073   * \return bool : new status of one-push mode.
00074   */
00075    virtual bool onePush(const bool one_push = true)  const;
00076 
00077 
00078 /*! \fn automatic(const bool on = true)      const
00079   * \brief This method activates or deactivates the auto-mode of a feature.
00080   * \param on : enables or disables automatic mode of a feature.
00081   * \return bool : new status of automatic mode.
00082   */
00083    virtual bool automatic(const bool on = true)      const;
00084 
00085 
00086 /*! \fn setValue(const int value) const
00087   * \brief This method changes the value of a feature.
00088   * \param value : new value that should be set.
00089   * \return int : the new value of the feature.
00090   */
00091    virtual int setValue(const int value)            const;
00092 
00093 
00094 /*! \fn setTriggerMode(const int value) const
00095   * \brief This method sets the value of the trigger mode.
00096   * \param value : new value for trigger mode.
00097   * \return int : value after changing the trigger mode.
00098   */
00099    virtual int setTriggerMode(const int value)      const;
00100 
00101 
00102 /*! \fn setTriggerPolarity(const bool value) const
00103   * \brief This method enables or disables the trigger polarity
00104   * \param value : new value that should be set.
00105   * \return int : the new value of the feature.
00106   */
00107    virtual bool setTriggerPolarity(const bool value)const;
00108 
00109 
00110 /*! \fn getValue() const
00111   * \brief This method returns the actual value of a feature.
00112   * \return int : actual value of a feature.
00113   */
00114    virtual int getValue()                           const;
00115 
00116 
00117 /*! \fn getMinValue()  const
00118   * \brief This method returns the minimum value of a feature
00119   * \return int : minimum value of a feature
00120   */
00121    virtual int getMinValue()                        const;
00122 
00123 
00124 /*! \fn getMaxValue()  const
00125   * \brief This method returns the maximum value of a feature.
00126   * \return int : maximum value of a feature.
00127   */
00128    virtual int getMaxValue()                        const;
00129 
00130 
00131 /*! \fn on(const bool set) const
00132   * \brief This method enable or disable a feature.
00133   *
00134   * After disabling a feature, no write access has affect until enabling
00135   * the feature again.So this method can be used, to lock (unlock) a
00136   * feature to a value.
00137   * \param set : true enable, false disable the feature.
00138   */
00139    virtual bool on(const bool =true) const {cout << "not impl." << endl; return false;}
00140 
00141 
00142 /*! \fn hasFeature() const
00143   * \brief This method tests if a feature is supported by the camera.
00144   * \return bool : true if the feature is supported, false if not.
00145   */
00146    virtual bool hasFeature()                        const;
00147 
00148 
00149 /*! \fn hasOnePush() const
00150   * \brief This method check, if one-push mode is supported by the camera
00151   * \return bool : true if a feature supported this mode, false if not.
00152   */
00153    virtual bool hasOnePush()                        const;
00154 
00155 
00156 /*! \fn hasReadout() const
00157   * \brief This method tests for readout mode of a feature.
00158   * \return bool : true if a feature supports this mode, false if not.
00159   */
00160    virtual bool hasReadout()                        const;
00161 
00162 
00163 /*! \fn hasOnOff()  const
00164   * \brief This method tests, if on-off mode is support by a feature
00165   * \return bool : true if a feature support this mode, false if not.
00166   */
00167    virtual bool hasOnOff()                          const;
00168 
00169 
00170 /*! \fn hasAuto()  const
00171   * \brief This method tests for auto mode of a feature.
00172   * \return bool : true if mode is supported, false if not.
00173   */
00174    virtual bool hasAuto()                            const;
00175 
00176 
00177 /*! \fn hasManual() const
00178   * \brief This method tests for manual mode of a feature.
00179   * \return bool : true if feature has manual support, false if not.
00180   */
00181    virtual bool hasManual()                          const;
00182 //@}
00183 /*! \name Some internal functions
00184   * These functions help to implement the interface.
00185   */
00186 //@{
00187    void setOffset(int) {}
00188 //@}
00189   private:
00190 
00191   AvcCameraRegister(const AvcCameraRegister&);
00192 
00193 
00194 
00195 };
00196 }    //namespace L1394
00197 #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/