00001
00002
00003
00004
00005
00011 #ifdef HAVE_CONFIG_H
00012 #include <config.h>
00013 #endif
00014
00015 #if defined(HAVE_V4L)
00016
00017 #ifndef V4LCamera_h
00018 #define V4LCamera_h
00019
00020 #include <sys/time.h>
00021 #include <sys/types.h>
00022 #include <sys/stat.h>
00023 #include <sys/ioctl.h>
00024 #include <sys/mman.h>
00025 #include <fcntl.h>
00026 #include <unistd.h>
00027 #include <stdlib.h>
00028 #include <stdio.h>
00029 #include <errno.h>
00030 #include <string.h>
00031 #include <assert.h>
00032 #include <string>
00033 #include <iostream>
00034
00035
00036 #include <linux/fs.h>
00037 #include <linux/videodev.h>
00038
00039 #include "Camera.h"
00040 #include "FW/labImage.h"
00041
00042
00043
00044 class V4LCamera : public Camera {
00045 int vid_fd;
00046 struct video_capability vid_cap;
00047 struct video_mbuf vid_mbuf;
00048 struct video_channel vid_chnl;
00049 struct video_mmap vid_mmap;
00050 struct video_picture vid_pic;
00051
00052 int width, height;
00053 int palette;
00054 int input;
00055 int norm;
00056 BYTE* video_map;
00057
00058 bool greyscale;
00059
00060 public:
00061 virtual bool open(void);
00062 virtual void close(void);
00063 virtual void read(Picture *p_frame);
00064 virtual bool iscolor(void);
00065 virtual void get_info(CamInfo *info);
00066 virtual void mmap_read(Picture *p_frame, int expected_size);
00067 virtual BYTE* set_up_mmap (int dev, int width, int height, int fmt);
00068 virtual void set_colour(int value);
00069 virtual void setBrightness(int value);
00070 virtual void setContrast(int value);
00071 virtual void setSaturation(int value);
00072 virtual void setAutoBrightness(bool on);
00073 virtual int getBrightness(void);
00074 virtual int getContrast(void);
00075 virtual int getSaturation(void);
00076 virtual bool getAutoBrightness(void);
00077 struct video_window vid_win;
00078 };
00079
00080 #endif
00081
00082 #endif