Main Page   Class Hierarchy   Alphabetical List   Data Structures   File List   Data Fields   Related Pages  

V4L2Camera.h

00001 /* V4L2Camera.h
00002  * Last modified: 
00003  * Authors: Daniel Venkitachalam <venki-d@ee.uwa.edu.au>
00004  *          Leon Koch <leon@redfishsoftware.com.au>
00005  */
00011 #ifdef HAVE_CONFIG_H
00012 #include <config.h>
00013 #endif
00014 
00015 #if defined(HAVE_V4L2)
00016 
00017 #ifndef V4L2Camera_H
00018 #define V4L2Camera_H
00019 
00020 #include <sys/mman.h>
00021 #include <sys/ioctl.h>
00022 #include <sys/time.h>
00023 #include <fcntl.h>
00024 #include <stdlib.h>
00025 #include <unistd.h>
00026 #include <stdio.h>
00027 #include <errno.h>
00028 #include <iostream>
00029 #include <string.h>
00030 #include <assert.h>
00031 
00032 #include <linux/fs.h>
00033 #include <linux/kernel.h>
00034 #include <linux/videodev2.h>
00035 
00036 #include "Camera.h"
00037 #include "FW/labImage.h"
00038 
00039 #define DEFAULT_VIDEO_DEVICE  "/dev/video0"
00040 #define VIDEO_STANDARD        "PAL"
00041 #define DEFAULT_IMAGE_WIDTH   160
00042 #define DEFAULT_IMAGE_HEIGHT  120
00043 #define STREAMBUFS            4
00044 
00045 class V4L2Camera : public Camera {
00049         struct {
00050                 v4l2_buffer vidbuf;
00051                 char *data;
00052         } vimage[STREAMBUFS];
00053         
00055         int vid_fd;
00056         
00058         struct v4l2_format fmt;
00059   
00061         int pic_size_x;
00063         int pic_size_y;
00065         int pic_size;
00066 
00068         int x_offset;
00070         int y_offset;
00071 
00073         int autobrightness;
00074   
00075         public:
00076                 virtual bool open(void);
00077                 virtual void close(void);
00078                 virtual void read(Picture *p_frame);
00079                 virtual void setBrightness(int value);
00080                 virtual void setContrast(int value);
00081                 virtual void setSaturation(int value);
00082                 virtual void setAutoBrightness(bool on);
00083                 virtual int getBrightness(void);
00084                 virtual int getContrast(void);
00085                 virtual int getSaturation(void);
00086                 virtual bool getAutoBrightness(void);
00087 
00088                 virtual bool iscolor(void);
00089                 virtual void get_info(CamInfo *info);
00090                 virtual int map_to_v4l2_format(pixel_format format);
00091 };
00092 
00093 #endif /* V4L2Camera_h */
00094 
00095 #endif /* HAVE_V4L2 */

Generated on Tue Apr 1 11:01:17 2003 for ImprovQT by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002