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 <cams/control/zoom.h>
00026 #include <core/exceptions/software.h>
00027 
00028 /** @class CameraControlZoom <cams/control/zoom.h>
00029  * Camera zoom control interface.
00030  * Some cameras feature zooming.
00031  *
00032  * This interface shall be implemented by such cameras.
00033  *
00034  * @author Tim Niemueller
00035  * @author Tobias Kellner
00036  *
00037  * @fn void CameraControlZoom::reset_zoom() = 0
00038  * Reset zoom.
00039  * @throws NotImplementedException Not implemented by this control
00040  *
00041  * @fn void CameraControlZoom::set_zoom(unsigned int zoom) = 0
00042  * Set new camera-specific zoom value.
00043  * @param zoom zoom value
00044  *
00045  * @fn unsigned int CameraControlZoom::zoom() = 0
00046  * Get current zoom value.
00047  * @return current zoom value.
00048  *
00049  * @fn unsigned int CameraControlZoom::zoom_max() = 0
00050  * Maximum zoom value.
00051  * @return maximum zoom value
00052  *
00053  * @fn unsigned int CameraControlZoom::zoom_min() = 0
00054  * Minimum zoom value.
00055  * @return Minimum zoom value
00056  */
00057
00058 using fawkes::NotImplementedException;
00059 
00060 /** Empty virtual destructor. */
00061 CameraControlZoom::~CameraControlZoom()
00062 {
00063 }
00064
00065 
00066 /** Set speed in tele range.
00067  * @param speed camera-specific speed value
00068  * @throws NotImplementedException Not implemented by this control
00069  */
00070 void
00071 CameraControlZoom::set_zoom_speed_tele(unsigned int speed)
00072 {
00073   throw NotImplementedException("Not implemented");
00074 }
00075
00076 
00077 /** Set speed in wide range.
00078  * @param speed camera-specific speed value.
00079  * @throws NotImplementedException Not implemented by this control
00080  */
00081 void
00082 CameraControlZoom::set_zoom_speed_wide(unsigned int speed)
00083 {
00084   throw NotImplementedException("Not implemented");
00085 }
00086
00087 
00088 /** Set if digital zoom may be used.
00089  * @param enabled true, to enable digital zoom, false otherwise
00090  * @throws NotImplementedException Not implemented by this control
00091  */
00092 void
00093 CameraControlZoom::set_zoom_digital_enabled(bool enabled)
00094 {
00095   throw NotImplementedException("Not implemented");
00096 }