Rev Author Line No. Line
178 kaklik 1 #ifndef IMAGE_V4LINPUT_H
2 #define IMAGE_V4LINPUT_H
3  
4 #include "image_input.h"
5 #include <linux/videodev.h>
6 #include "rgba.h"
7  
8 namespace mimas {
9  
10 /** @addtogroup imageIO
11 @{ */
12 /** @addtogroup imageInput
13 @{ */
14 /** Class for reading images from a video4linux device.
15 The class has been successfully tested for colour-images (i.e.
16 T = rgba< unsigned char >) and the following devices:
17 \li Logitech QuickCam Pro 4000
18 \li BT848A video (Imagenation PXC20)
19 \li BT878 (Unknown generic)
20  
21 See <A HREF="file:///usr/src/linux/Documentation/video4linux/API.html">V4L-API</A>
22 for more information about video4linux.
23  
24 Here is a minimal example program on how to grab and display images
25 with this class:
26 \include webcam/minimal.cc
27  
28 @author Bala Amavasai (bala@amavasai.org)
29 @author Jan Wedekind (jan@wedesoft.de)
30 @date Wed Mar 2 14:58:34 GMT 2005 */
31 template< typename T >
32 class image_v4linput: public image_input< T >
33 {
34 public:
35 image_v4linput( const std::string &_device,
36 int channel = 0,
37 int width = -1, int height = -1,
38 int channel_norm = VIDEO_MODE_PAL ) throw (mimasexception);
39 ~image_v4linput(void);
40 virtual void read( image<T> &img ) throw (mimasexception);
41 int getWidth(void) const { return win.width; }
42 int getHeight(void) const { return win.height; }
43 void setSensivity( __u16 brightness,
44 __u16 hue,
45 __u16 colour,
46 __u16 contrast ) throw (mimasexception);
47 protected:
48 int xioctl( int request, void *arg );
49 void selectPalette(void) throw (mimasexception);
50 std::string device;
51 int fd;
52 void *map;
53 struct video_channel chan;
54 struct video_picture pic;
55 struct video_window win;
56 struct video_mbuf buf;
57 };
58  
59 ///@}
60  
61 ///@}
62  
63 };
64  
65 #include "image_v4linput.tcc"
66  
67 #endif
68