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 /** Plain dummy control.
00037  * Does nothing, supports nothing. Use to avoid unecessary NULL checks
00038  */
00039 class DummyCameraControl
00040 : public CameraControlColor,
00041   public CameraControlImage,
00042   public CameraControlPanTilt,
00043   public CameraControlZoom,
00044   public CameraControlEffect,
00045   public CameraControlFocus
00046 {
00047  public:
00048   // from CameraControlColor
00049   virtual bool         auto_gain();
00050   virtual void         set_auto_gain(bool enabled);
00051   virtual bool         auto_white_balance();
00052   virtual void         set_auto_white_balance(bool enabled);
00053   virtual bool         auto_exposure();
00054   virtual void         set_auto_exposure(bool enabled);
00055
00056   virtual int          red_balance();
00057   virtual void         set_red_balance(int red_balance);
00058   virtual int          blue_balance();
00059   virtual void         set_blue_balance(int blue_balance);
00060
00061   virtual int          u_balance();
00062   virtual void         set_u_balance(int u_balance);
00063   virtual int          v_balance();
00064   virtual void         set_v_balance(int v_balance);
00065
00066   virtual unsigned int brightness();
00067   virtual void         set_brightness(unsigned int brightness);
00068   virtual unsigned int contrast();
00069   virtual void         set_contrast(unsigned int contrast);
00070   virtual unsigned int saturation();
00071   virtual void         set_saturation(unsigned int saturation);
00072   virtual int          hue();
00073   virtual void         set_hue(int hue);
00074   virtual unsigned int exposure();
00075   virtual void         set_exposure(unsigned int exposure);
00076   virtual unsigned int gain();
00077   virtual void         set_gain(unsigned int gain);
00078
00079   // From CameraControlImage
00080   virtual const char * format();
00081   virtual void         set_format(const char *format);
00082   virtual unsigned int width();
00083   virtual unsigned int height();
00084   virtual void         size(unsigned int &width, unsigned int &height);
00085   virtual void         set_size(unsigned int width, unsigned int height);
00086   virtual bool         horiz_mirror();
00087   virtual bool         vert_mirror();
00088   virtual void         mirror(bool &horiz, bool &vert);
00089   virtual void         set_horiz_mirror(bool enabled);
00090   virtual void         set_vert_mirror(bool enabled);
00091   virtual void         set_mirror(bool horiz, bool vert);
00092
00093   virtual unsigned int fps();
00094   virtual void         set_fps(unsigned int fps);
00095
00096   virtual unsigned int lens_x_corr();
00097   virtual unsigned int lens_y_corr();
00098   virtual void         lens_corr(unsigned int &x_corr, unsigned int &y_corr);
00099   virtual void         set_lens_x_corr(unsigned int x_corr);
00100   virtual void         set_lens_y_corr(unsigned int y_corr);
00101   virtual void         set_lens_corr(unsigned int x_corr, unsigned int y_corr);
00102
00103   // From CameraControlPanTilt
00104   virtual void process_pantilt();
00105
00106   virtual bool supports_pan();
00107   virtual bool supports_tilt();
00108   virtual void set_pan(int pan);
00109   virtual void set_tilt(int tilt);
00110   virtual void set_pan_tilt(int pan, int tilt);
00111   virtual void set_pan_tilt_rad(float pan, float tilt);
00112   virtual int  pan();
00113   virtual int  tilt();
00114   virtual void start_get_pan_tilt();
00115   virtual void pan_tilt(int &pan, int &tilt);
00116   virtual void pan_tilt_rad(float &pan, float &tilt);
00117   virtual int  min_pan();
00118   virtual int  max_pan();
00119   virtual int  min_tilt();
00120   virtual int  max_tilt();
00121   virtual void reset_pan_tilt();
00122   virtual void set_pan_tilt_limit(int pan_left, int pan_right,
00123                                   int tilt_up, int tilt_down);
00124   virtual void reset_pan_tilt_limit();
00125
00126   // From CameraControlZoom
00127   virtual void         reset_zoom();
00128   virtual void         set_zoom(unsigned int zoom);
00129   virtual unsigned int zoom();
00130   virtual unsigned int zoom_max();
00131   virtual unsigned int zoom_min();
00132   virtual void         set_zoom_speed_tele(unsigned int speed);
00133   virtual void         set_zoom_speed_wide(unsigned int speed);
00134   virtual void         set_zoom_digital_enabled(bool enabled);
00135
00136   // from CameraControlEffect
00137   virtual bool         supports_effect(unsigned int effect);
00138   virtual void         set_effect(unsigned int effect);
00139   virtual unsigned int effect();
00140   virtual void         reset_effect();
00141
00142   // from CameraControlFocus
00143   virtual bool         auto_focus();
00144   virtual void         set_auto_focus(bool enabled);
00145   virtual unsigned int focus();
00146   virtual void         set_focus(unsigned int focus);
00147   virtual unsigned int focus_min();
00148   virtual unsigned int focus_max();
00149
00150 };
00151
00152 #endif