camera_firewire
CamFireWire.h
Go to the documentation of this file.
1 /*
2  * File: CamFireWire.h
3  * Author: Christopher Gaudig, DFKI Bremen
4  *
5  * Created on February 23, 2010, 4:57 PM
6  */
7 
8 #ifndef _CAMFIREWIRE_H
9 #define _CAMFIREWIRE_H
10 
11 #include "camera_interface/CamInterface.h"
12 #include "base/samples/Frame.hpp"
13 #include "./filter/frame2rggb.h"
14 #include "./cam_fw_types.h"
15 #include <dc1394/types.h>
16 #include <dc1394/log.h>
17 #include <dc1394/video.h>
18 
19 struct __dc1394_camera;
20 typedef __dc1394_camera dc1394camera_t;
21 struct __dc1394_t;
22 typedef __dc1394_t dc1394_t;
23 
24 namespace camera
25 {
26 class CamFireWire : public CamInterface
27 {
28 public:
29  CamFireWire();
30  virtual ~CamFireWire();
31 
32  int listCameras(std::vector<CamInfo>&cam_infos)const;
33  bool open(const CamInfo &cam,const AccessMode mode);
34  bool isOpen()const;
35  bool close();
36  //grab() may change the filedescriptor, and mode==Stop closes it
37  bool grab(const GrabMode mode, const int buffer_len);
38  bool retrieveFrame(base::samples::frame::Frame &frame,const int timeout);
39  bool setFrameSettings(const base::samples::frame::frame_size_t size,
40  const base::samples::frame::frame_mode_t mode,
41  const uint8_t color_depth,
42  const bool resize_frames);
43  bool isFrameAvailable();
44  bool isAttribAvail(const int_attrib::CamAttrib attrib);
45  bool isAttribAvail(const double_attrib::CamAttrib attrib);
46  bool isAttribAvail(const str_attrib::CamAttrib attrib);
47  bool isAttribAvail(const enum_attrib::CamAttrib attrib);
48  int getAttrib(const int_attrib::CamAttrib attrib);
49  double getAttrib(const double_attrib::CamAttrib attrib);
50  bool setAttrib(const int_attrib::CamAttrib attrib,const int value);
51  bool setAttrib(const enum_attrib::CamAttrib attrib);
52  bool setAttrib(const double_attrib::CamAttrib attrib, const double value);
53  bool isReadyForOneShot();
54  bool clearBuffer();
55  bool cleanup();
56  bool setDevice(dc1394_t *dev);
57 
64  int getFileDescriptor() const;
65 
66 public:
68 
69 private:
70  bool isVideoModeSupported(const dc1394video_mode_t mode);
71  bool isFramerateSupported(const dc1394framerate_t framerate);
72  bool isVideo7RAWModeSupported(int depth);
73  dc1394error_t setTriggerSource(const dc1394trigger_source_t trigger_source);
74 
80  bool checkForTriggerSource(const dc1394trigger_source_t source);
81 
87  bool checkHandleError(dc1394error_t error) const;
88 
89  dc1394_t *dc_device;
90  base::samples::frame::Frame unconverted_frame;
91  base::samples::frame::frame_mode_t frame_mode;
92  int data_depth;
93  bool hdr_enabled;
94  int frame_size_in_byte_;
95  int multi_shot_count;
96 
97 
98 };
99 }
100 
101 #endif /* _CAMFIREWIRE_H */
102 
bool clearBuffer()
Definition: CamFireWire.cpp:1517
bool setFrameSettings(const base::samples::frame::frame_size_t size, const base::samples::frame::frame_mode_t mode, const uint8_t color_depth, const bool resize_frames)
Definition: CamFireWire.cpp:316
bool isFrameAvailable()
Definition: CamFireWire.cpp:1498
bool isAttribAvail(const int_attrib::CamAttrib attrib)
Definition: CamFireWire.cpp:579
bool setDevice(dc1394_t *dev)
Definition: CamFireWire.cpp:66
int listCameras(std::vector< CamInfo > &cam_infos) const
Definition: CamFireWire.cpp:76
bool retrieveFrame(base::samples::frame::Frame &frame, const int timeout)
Definition: CamFireWire.cpp:272
CamFireWire()
Definition: CamFireWire.cpp:23
bool open(const CamInfo &cam, const AccessMode mode)
Definition: CamFireWire.cpp:130
virtual ~CamFireWire()
Definition: CamFireWire.cpp:55
bool close()
Definition: CamFireWire.cpp:166
Definition: cam_fw_types.h:4
int getFileDescriptor() const
Definition: CamFireWire.cpp:1545
bool cleanup()
Definition: CamFireWire.cpp:33
Definition: CamFireWire.h:26
__dc1394_camera dc1394camera_t
Definition: CamFireWire.h:19
int getAttrib(const int_attrib::CamAttrib attrib)
Definition: CamFireWire.cpp:1026
dc1394camera_t * dc_camera
Definition: CamFireWire.h:67
bool grab(const GrabMode mode, const int buffer_len)
Definition: CamFireWire.cpp:178
bool isOpen() const
Definition: CamFireWire.cpp:157
bool setAttrib(const int_attrib::CamAttrib attrib, const int value)
Definition: CamFireWire.cpp:843
bool isReadyForOneShot()
Definition: CamFireWire.cpp:515
__dc1394_t dc1394_t
Definition: CamFireWire.h:21