Fawkes API  Fawkes Development Version
zoom.cpp
00001 
00002 /***************************************************************************
00003  *  zoom.cpp - Abstract class defining a camera zoom controller
00004  *
00005  *  Created: Wed Apr 22 10:50:53 2009
00006  *  Copyright  2009      Tobias Kellner
00007  *             2005-2009 Tim Niemueller [www.niemueller.de]
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. A runtime exception applies to
00015  *  this software (see LICENSE.GPL_WRE file mentioned below for details).
00016  *
00017  *  This program is distributed in the hope that it will be useful,
00018  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00019  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00020  *  GNU Library General Public License for more details.
00021  *
00022  *  Read the full text in the LICENSE.GPL_WRE file in the doc directory.
00023  */
00024 
00025 #include <fvcams/control/zoom.h>
00026 #include <core/exceptions/software.h>
00027 
00028 namespace firevision {
00029 #if 0 /* just to make Emacs auto-indent happy */
00030 }
00031 #endif
00032 
00033 /** @class CameraControlZoom <fvcams/control/zoom.h>
00034  * Camera zoom control interface.
00035  * Some cameras feature zooming.
00036  *
00037  * This interface shall be implemented by such cameras.
00038  *
00039  * @author Tim Niemueller
00040  * @author Tobias Kellner
00041  *
00042  * @fn void CameraControlZoom::reset_zoom() = 0
00043  * Reset zoom.
00044  * @throws NotImplementedException Not implemented by this control
00045  *
00046  * @fn void CameraControlZoom::set_zoom(unsigned int zoom) = 0
00047  * Set new camera-specific zoom value.
00048  * @param zoom zoom value
00049  *
00050  * @fn unsigned int CameraControlZoom::zoom() = 0
00051  * Get current zoom value.
00052  * @return current zoom value.
00053  *
00054  * @fn unsigned int CameraControlZoom::zoom_max() = 0
00055  * Maximum zoom value.
00056  * @return maximum zoom value
00057  *
00058  * @fn unsigned int CameraControlZoom::zoom_min() = 0
00059  * Minimum zoom value.
00060  * @return Minimum zoom value
00061  */
00062 
00063 using fawkes::NotImplementedException;
00064 
00065 /** Empty virtual destructor. */
00066 CameraControlZoom::~CameraControlZoom()
00067 {
00068 }
00069 
00070 
00071 /** Set speed in tele range.
00072  * @param speed camera-specific speed value
00073  * @throws NotImplementedException Not implemented by this control
00074  */
00075 void
00076 CameraControlZoom::set_zoom_speed_tele(unsigned int speed)
00077 {
00078   throw NotImplementedException("Not implemented");
00079 }
00080 
00081 
00082 /** Set speed in wide range.
00083  * @param speed camera-specific speed value.
00084  * @throws NotImplementedException Not implemented by this control
00085  */
00086 void
00087 CameraControlZoom::set_zoom_speed_wide(unsigned int speed)
00088 {
00089   throw NotImplementedException("Not implemented");
00090 }
00091 
00092 
00093 /** Set if digital zoom may be used.
00094  * @param enabled true, to enable digital zoom, false otherwise
00095  * @throws NotImplementedException Not implemented by this control
00096  */
00097 void
00098 CameraControlZoom::set_zoom_digital_enabled(bool enabled)
00099 {
00100   throw NotImplementedException("Not implemented");
00101 }
00102 
00103 } // end namespace firevision