00001 /* 00002 * LadybugCamera.h 00003 * 00004 * Created on: Sep 2, 2010 00005 * Author: petrito1@cmp.felk.cvut.cz 00006 */ 00007 00008 #ifndef NIFTI_DC1394_LADYBUGCAMERA_H_ 00009 #define NIFTI_DC1394_LADYBUGCAMERA_H_ 00010 00011 #include "LadybugCamera.h" 00012 00013 #include "Camera.h" 00014 00015 using nifti::dc1394::Camera; 00016 00017 namespace nifti { 00018 namespace dc1394 { 00019 00020 class LadybugCamera: public Camera { 00021 public: 00022 static const int NUM_CAMERAS = 6; 00023 static const int NUM_BAYER_CHANNELS = 4; 00024 static const uint64_t IMAGE_SELECTION_REGISTER; 00025 static const uint32_t ALL_CAMERAS; 00026 static const uint32_t CAMERA_0; 00027 static const uint32_t CAMERA_1; 00028 static const uint32_t CAMERA_2; 00029 static const uint32_t CAMERA_3; 00030 static const uint32_t CAMERA_4; 00031 static const uint32_t CAMERA_5; 00032 static const uint32_t CAMERA_0_BAYER_CHANNEL_0; 00033 static const uint32_t CAMERA_0_BAYER_CHANNEL_1; 00034 static const uint32_t CAMERA_0_BAYER_CHANNEL_2; 00035 static const uint32_t CAMERA_0_BAYER_CHANNEL_3; 00036 static const uint32_t CAMERA_1_BAYER_CHANNEL_0; 00037 static const uint32_t CAMERA_1_BAYER_CHANNEL_1; 00038 static const uint32_t CAMERA_1_BAYER_CHANNEL_2; 00039 static const uint32_t CAMERA_1_BAYER_CHANNEL_3; 00040 static const uint32_t CAMERA_2_BAYER_CHANNEL_0; 00041 static const uint32_t CAMERA_2_BAYER_CHANNEL_1; 00042 static const uint32_t CAMERA_2_BAYER_CHANNEL_2; 00043 static const uint32_t CAMERA_2_BAYER_CHANNEL_3; 00044 static const uint32_t CAMERA_3_BAYER_CHANNEL_0; 00045 static const uint32_t CAMERA_3_BAYER_CHANNEL_1; 00046 static const uint32_t CAMERA_3_BAYER_CHANNEL_2; 00047 static const uint32_t CAMERA_3_BAYER_CHANNEL_3; 00048 static const uint32_t CAMERA_4_BAYER_CHANNEL_0; 00049 static const uint32_t CAMERA_4_BAYER_CHANNEL_1; 00050 static const uint32_t CAMERA_4_BAYER_CHANNEL_2; 00051 static const uint32_t CAMERA_4_BAYER_CHANNEL_3; 00052 static const uint32_t CAMERA_5_BAYER_CHANNEL_0; 00053 static const uint32_t CAMERA_5_BAYER_CHANNEL_1; 00054 static const uint32_t CAMERA_5_BAYER_CHANNEL_2; 00055 static const uint32_t CAMERA_5_BAYER_CHANNEL_3; 00056 00057 static const uint32_t CAMERAS[NUM_CAMERAS]; 00058 static const uint32_t BAYER_CHANNELS[NUM_CAMERAS][NUM_BAYER_CHANNELS]; 00059 00060 static const int RAW_WIDTH; 00061 static const int RAW_HEIGHT; 00062 static const int RAW_HALF_HEIGHT; 00063 static const int RAW_NUM_IMAGES; 00064 static const int MONO_WIDTH; 00065 static const int MONO_HEIGHT; 00066 static const int MONO_HALF_HEIGHT; 00067 static const int MONO_NUM_IMAGES; 00068 static void format7FrameInfo(const dc1394video_mode_t videoMode, int& frameWidth, int& frameHeight, int& imageWidth, int& imageHeight, int& numImages); 00069 00070 LadybugCamera(dc1394camera_t* camera); 00071 LadybugCamera(); 00072 virtual ~LadybugCamera(); 00073 00074 void setFormat7Roi(dc1394video_mode_t videoMode, int32_t packetSize = 9792); 00075 00076 uint32_t getSelectedImages(); 00077 void setSelectedImages(uint32_t images); 00078 bool areImagesSelected(uint32_t images); 00079 int getNumSelectedImages(); 00080 private: 00081 uint32_t selectedImages; 00082 }; 00083 00084 } 00085 } 00086 00087 #endif /* NIFTI_DC1394_LADYBUGCAMERA_H_ */