Subversion Repositories seema-scanner

Rev

Rev 4 | Rev 23 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4 Rev 18
Line 3... Line 3...
3
 
3
 
4
#include <iostream>
4
#include <iostream>
5
#include <vector>
5
#include <vector>
6
 
6
 
7
struct CameraFrame {
7
struct CameraFrame {
8
    unsigned char *memory;
8
    unsigned short *memory;
9
    unsigned int width;
9
    unsigned int width;
10
    unsigned int height;
10
    unsigned int height;
-
 
11
    unsigned int bitDepth;
11
    unsigned int sizeBytes;
12
    unsigned int sizeBytes;
12
    unsigned int timeStamp;
13
    unsigned int timeStamp;
13
    CameraFrame(): memory(NULL), width(0), height(0), sizeBytes(0), timeStamp(0){}
14
    CameraFrame(): memory(NULL), width(0), height(0), bitDepth(0), sizeBytes(0), timeStamp(0){}
14
};
15
};
15
 
16
 
16
struct CameraSettings {
17
struct CameraSettings {
17
    float gain;
18
    float gain;
18
    float shutter; // [ms]
19
    float shutter; // [ms]
Line 23... Line 24...
23
    std::string vendor;
24
    std::string vendor;
24
    std::string model;
25
    std::string model;
25
    unsigned int busID;
26
    unsigned int busID;
26
};
27
};
27
 
28
 
-
 
29
enum CameraTriggerMode {
-
 
30
    triggerModeHardware,
-
 
31
    triggerModeSoftware
-
 
32
};
-
 
33
 
28
// Abstract base class for camera implementations
34
// Camera factory methods and abstract base class for camera implementations
29
class Camera {
35
class Camera {
-
 
36
 
30
    public:
37
    public:
31
        // Static "camera factory" methods
38
        // Static "camera factory" methods
32
        static std::vector< std::vector<CameraInfo> > GetInterfaceCameraList();
39
        static std::vector< std::vector<CameraInfo> > GetInterfaceCameraList();
33
        static Camera* NewCamera(unsigned int interfaceNum, unsigned int camNum);
40
        static Camera* NewCamera(unsigned int interfaceNum, unsigned int camNum, CameraTriggerMode triggerMode);
34
        // Interface function
41
        // Interface function
35
        Camera() : capturing(false){}
42
        Camera(CameraTriggerMode _triggerMode) : capturing(false), triggerMode(_triggerMode){}
36
        virtual CameraSettings getCameraSettings() = 0;
-
 
37
        virtual void setCameraSettings(CameraSettings) = 0;
-
 
38
        virtual void startCapture() = 0;
43
        virtual void startCapture() = 0;
-
 
44
        bool isCapturing(){return capturing;}
39
        virtual void stopCapture() = 0;
45
        virtual void stopCapture() = 0;
40
        virtual CameraFrame lockFrame() = 0;
46
        virtual CameraFrame getFrame() = 0;
41
        virtual void unlockFrame() = 0;
-
 
42
        virtual CameraFrame getSingleFrame() = 0;
-
 
43
        virtual size_t getFrameSizeBytes() = 0;
47
        virtual size_t getFrameSizeBytes() = 0;
-
 
48
        virtual size_t getFrameWidth() = 0;
-
 
49
        virtual size_t getFrameHeight() = 0;
44
        virtual void getFrameWidthHeight(unsigned int *width, unsigned int *height) = 0;
50
        virtual CameraSettings getCameraSettings() = 0;
45
        bool isCapturing(){return capturing;}
51
        virtual void setCameraSettings(CameraSettings) = 0;
46
        virtual ~Camera(){}
52
        virtual ~Camera(){}
-
 
53
 
47
    protected:
54
    protected:
48
        bool capturing;
55
        bool capturing;
-
 
56
        CameraTriggerMode triggerMode;
49
};
57
};
50
 
58
 
51
#endif
59
#endif