#ifndef IMAGE_V4LINPUT_H#define IMAGE_V4LINPUT_H#include "image_input.h"#include <linux/videodev.h>#include "rgba.h"namespace mimas {/** @addtogroup imageIO@{ *//** @addtogroup imageInput@{ *//** Class for reading images from a video4linux device.The class has been successfully tested for colour-images (i.e.T = rgba< unsigned char >) and the following devices:\li Logitech QuickCam Pro 4000\li BT848A video (Imagenation PXC20)\li BT878 (Unknown generic)See <A HREF="file:///usr/src/linux/Documentation/video4linux/API.html">V4L-API</A>for more information about video4linux.Here is a minimal example program on how to grab and display imageswith this class:\include webcam/minimal.cc@author Bala Amavasai (bala@amavasai.org)@author Jan Wedekind (jan@wedesoft.de)@date Wed Mar 2 14:58:34 GMT 2005 */template< typename T >class image_v4linput: public image_input< T >{public:image_v4linput( const std::string &_device,int channel = 0,int width = -1, int height = -1,int channel_norm = VIDEO_MODE_PAL ) throw (mimasexception);~image_v4linput(void);virtual void read( image<T> &img ) throw (mimasexception);int getWidth(void) const { return win.width; }int getHeight(void) const { return win.height; }void setSensivity( __u16 brightness,__u16 hue,__u16 colour,__u16 contrast ) throw (mimasexception);protected:int xioctl( int request, void *arg );void selectPalette(void) throw (mimasexception);std::string device;int fd;void *map;struct video_channel chan;struct video_picture pic;struct video_window win;struct video_mbuf buf;};///@}///@}};#include "image_v4linput.tcc"#endif