Fawkes API Fawkes Development Version

dummy.h

00001 
00002 /***************************************************************************
00003  *  dummy.h - controller that controls nothing, sounds like a stupid
00004  *                    idea but this avoids NULL checks in software using
00005  *                    a camera controller
00006  *
00007  *  Created: Wed Jun 15 12:45:57 2005
00008  *  Copyright  2005-2009  Tim Niemueller [www.niemueller.de]
00009  *
00010  ****************************************************************************/
00011 
00012 /*  This program is free software; you can redistribute it and/or modify
00013  *  it under the terms of the GNU General Public License as published by
00014  *  the Free Software Foundation; either version 2 of the License, or
00015  *  (at your option) any later version. A runtime exception applies to
00016  *  this software (see LICENSE.GPL_WRE file mentioned below for details).
00017  *
00018  *  This program is distributed in the hope that it will be useful,
00019  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00020  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00021  *  GNU Library General Public License for more details.
00022  *
00023  *  Read the full text in the LICENSE.GPL_WRE file in the doc directory.
00024  */
00025 
00026 #ifndef __FIREVISION_CAMS_DUMMY_CONTROL_H_
00027 #define __FIREVISION_CAMS_DUMMY_CONTROL_H_
00028 
00029 #include <cams/control/color.h>
00030 #include <cams/control/image.h>
00031 #include <cams/control/pantilt.h>
00032 #include <cams/control/zoom.h>
00033 #include <cams/control/effect.h>
00034 #include <cams/control/focus.h>
00035 
00036 namespace firevision {
00037 #if 0 /* just to make Emacs auto-indent happy */
00038 }
00039 #endif
00040 
00041 /** Plain dummy control.
00042  * Does nothing, supports nothing. Use to avoid unecessary NULL checks
00043  */
00044 class DummyCameraControl
00045 : public CameraControlColor,
00046   public CameraControlImage,
00047   public CameraControlPanTilt,
00048   public CameraControlZoom,
00049   public CameraControlEffect,
00050   public CameraControlFocus
00051 {
00052  public:
00053   // from CameraControlColor
00054   virtual bool         auto_gain();
00055   virtual void         set_auto_gain(bool enabled);
00056   virtual bool         auto_white_balance();
00057   virtual void         set_auto_white_balance(bool enabled);
00058   virtual bool         auto_exposure();
00059   virtual void         set_auto_exposure(bool enabled);
00060 
00061   virtual int          red_balance();
00062   virtual void         set_red_balance(int red_balance);
00063   virtual int          blue_balance();
00064   virtual void         set_blue_balance(int blue_balance);
00065 
00066   virtual int          u_balance();
00067   virtual void         set_u_balance(int u_balance);
00068   virtual int          v_balance();
00069   virtual void         set_v_balance(int v_balance);
00070 
00071   virtual unsigned int brightness();
00072   virtual void         set_brightness(unsigned int brightness);
00073   virtual unsigned int contrast();
00074   virtual void         set_contrast(unsigned int contrast);
00075   virtual unsigned int saturation();
00076   virtual void         set_saturation(unsigned int saturation);
00077   virtual int          hue();
00078   virtual void         set_hue(int hue);
00079   virtual unsigned int exposure();
00080   virtual void         set_exposure(unsigned int exposure);
00081   virtual unsigned int gain();
00082   virtual void         set_gain(unsigned int gain);
00083 
00084   // From CameraControlImage
00085   virtual const char * format();
00086   virtual void         set_format(const char *format);
00087   virtual unsigned int width();
00088   virtual unsigned int height();
00089   virtual void         size(unsigned int &width, unsigned int &height);
00090   virtual void         set_size(unsigned int width, unsigned int height);
00091   virtual bool         horiz_mirror();
00092   virtual bool         vert_mirror();
00093   virtual void         mirror(bool &horiz, bool &vert);
00094   virtual void         set_horiz_mirror(bool enabled);
00095   virtual void         set_vert_mirror(bool enabled);
00096   virtual void         set_mirror(bool horiz, bool vert);
00097 
00098   virtual unsigned int fps();
00099   virtual void         set_fps(unsigned int fps);
00100 
00101   virtual unsigned int lens_x_corr();
00102   virtual unsigned int lens_y_corr();
00103   virtual void         lens_corr(unsigned int &x_corr, unsigned int &y_corr);
00104   virtual void         set_lens_x_corr(unsigned int x_corr);
00105   virtual void         set_lens_y_corr(unsigned int y_corr);
00106   virtual void         set_lens_corr(unsigned int x_corr, unsigned int y_corr);
00107 
00108   // From CameraControlPanTilt
00109   virtual void process_pantilt();
00110 
00111   virtual bool supports_pan();
00112   virtual bool supports_tilt();
00113   virtual void set_pan(int pan);
00114   virtual void set_tilt(int tilt);
00115   virtual void set_pan_tilt(int pan, int tilt);
00116   virtual void set_pan_tilt_rad(float pan, float tilt);
00117   virtual int  pan();
00118   virtual int  tilt();
00119   virtual void start_get_pan_tilt();
00120   virtual void pan_tilt(int &pan, int &tilt);
00121   virtual void pan_tilt_rad(float &pan, float &tilt);
00122   virtual int  min_pan();
00123   virtual int  max_pan();
00124   virtual int  min_tilt();
00125   virtual int  max_tilt();
00126   virtual void reset_pan_tilt();
00127   virtual void set_pan_tilt_limit(int pan_left, int pan_right,
00128                                   int tilt_up, int tilt_down);
00129   virtual void reset_pan_tilt_limit();
00130 
00131   // From CameraControlZoom
00132   virtual void         reset_zoom();
00133   virtual void         set_zoom(unsigned int zoom);
00134   virtual unsigned int zoom();
00135   virtual unsigned int zoom_max();
00136   virtual unsigned int zoom_min();
00137   virtual void         set_zoom_speed_tele(unsigned int speed);
00138   virtual void         set_zoom_speed_wide(unsigned int speed);
00139   virtual void         set_zoom_digital_enabled(bool enabled);
00140 
00141   // from CameraControlEffect
00142   virtual bool         supports_effect(unsigned int effect);
00143   virtual void         set_effect(unsigned int effect);
00144   virtual unsigned int effect();
00145   virtual void         reset_effect();
00146 
00147   // from CameraControlFocus
00148   virtual bool         auto_focus();
00149   virtual void         set_auto_focus(bool enabled);
00150   virtual unsigned int focus();
00151   virtual void         set_focus(unsigned int focus);
00152   virtual unsigned int focus_min();
00153   virtual unsigned int focus_max();
00154 
00155 };
00156 
00157 } // end namespace firevision
00158 
00159 #endif
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends