My Project
 All Classes Files Functions Variables Enumerations Enumerator Friends Macros Pages
FrameGrabber.h
1 #ifndef GCP_GRABBER_FRAMEGRABBER_H
2 #define GCP_GRABBER_FRAMEGRABBER_H
3 
11 #include <string>
12 #include <vector>
13 
14 #if HAVE_VIDEO
15 #include <linux/types.h>
16 #include <linux/videodev.h>
17 #endif
18 
19 namespace gcp {
20  namespace grabber {
21 
22  class FrameGrabber {
23  public:
24 
28  FrameGrabber();
29 
33  virtual ~FrameGrabber();
34 
35 #if HAVE_VIDEO
36  void setDeviceFileName(std::string devFileName);
37  void initialize();
38 
39  void queryProperties();
40  void printProperties();
41 
42  void queryCapabilities();
43  void printCapabilities();
44 
45  void queryWindow();
46  void printWindow();
47  void setWindow(unsigned short width = defaultWidth_,
48  unsigned short height = defaultHeight_);
49 
50  void queryChannel(unsigned short channel);
51  void printChannel(struct video_channel& cp);
52  void setTunerToPal();
53 
54 #endif
55 
56  void setChannel(unsigned short channel = defaultChannel_);
57  void setImageSize(int width, int height);
58  void getImage(std::vector<char> &theImage);
59 
60 #if HAVE_VIDEO
61  void queryImageBuffer();
62  void printImageBuffer();
63 
64  void queryPicture();
65  void printPicture();
66 
67  void setDepth(int depth=defaultPixelDepth_);
68  void setBrightness(unsigned short brightness = defaultBrightness_);
69  void setContrast(unsigned short contrast = defaultContrast_);
70 
71  void createCaptureBuffer();
72 
73  void queryTuner();
74  void printTuner();
75 
76  private:
77 
78  static std::string defaultDevFileName_;
79  static const unsigned short defaultWidth_ = 512;
80  static const unsigned short defaultHeight_ = 480;
81  static const int defaultPixelDepth_ = 8;
82  static const unsigned short defaultBrightness_ = 32768;
83  static const unsigned short defaultContrast_ = 27648;
84 #endif
85 
86  static const unsigned short defaultChannel_ = 1;
87 
88 #if HAVE_VIDEO
89  int fd_;
90  int width_;
91  int height_;
92  void* imageBuffer_;
93 
94  std::string devFileName_;
95 
96  struct video_capability vc_;
97  struct video_channel cp_;
98  struct video_picture vp_;
99  struct video_window vw_;
100  struct video_mbuf vm_;
101  struct video_mmap vb_;
102  struct video_tuner vt_;
103  struct v4l2_output v4out_;
104 
105  void openFrameGrabber(std::string devFileName);
106 
107  void printImageBuffer(struct video_mbuf& vm);
108  void printCapabilities(struct video_capability& vc);
109  void printWindow(struct video_window& vw);
110  void printPicture(struct video_picture& vp);
111  void printTuner(struct video_tuner& vt);
112 #endif
113 
114  }; // End class FrameGrabber
115 
116  } // End namespace grabber
117 }; // End namespace gcp
118 
119 #endif // End #ifndef GCP_GRABBER_FRAMEGRABBER_H
void queryWindow()
Definition: FrameGrabber.cc:531
int queryChannel()
Definition: FrameGrabber.cc:565
void setBrightness(unsigned short brightness=defaultBrightness_)
Definition: FrameGrabber.cc:674
void createCaptureBuffer()
Definition: FrameGrabber.cc:237
void setChannel(int channel=defaultChannel_)
Definition: FrameGrabber.cc:201
FrameGrabber()
Definition: frameshit.cc:44
virtual ~FrameGrabber()
Definition: FrameGrabber.cc:44
void setImageSize(int width=defaultWidth_, int height=defaultHeight_)
Definition: FrameGrabber.cc:440
void queryCapabilities()
Definition: FrameGrabber.cc:452
void setContrast(unsigned short contrast=defaultContrast_)
Definition: FrameGrabber.cc:700
void setDeviceFileName(std::string devFileName)
Definition: FrameGrabber.cc:57
void queryPicture()
Definition: FrameGrabber.cc:506