Fawkes API Fawkes Development Version
|
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