Subversion Repositories seema-scanner

Rev

Rev 18 | Rev 53 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

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