00001 #ifndef FCAM_SHOT_H 00002 #define FCAM_SHOT_H 00003 00006 00007 #include "Base.h" 00008 #include "Histogram.h" 00009 #include "SharpnessMap.h" 00010 #include "Image.h" 00011 #include <set> 00012 #include <pthread.h> 00013 00014 namespace FCam { 00015 00016 class Action; 00017 00031 class Shot { 00032 public: 00041 Image image; 00042 00044 int exposure; 00045 00053 int frameTime; 00054 00059 float gain; 00060 00063 int whiteBalance; 00064 00066 HistogramConfig histogram; 00067 00069 SharpnessMapConfig sharpness; 00070 00074 bool wanted; 00075 00077 void addAction(const Action &); 00078 00080 void clearActions(); 00081 00084 const std::set<Action *> &actions() const {return _actions;} 00085 00088 int id; 00089 00090 Shot(); 00091 ~Shot(); 00092 00095 Shot(const Shot &other); 00096 00099 const Shot &operator=(const Shot &other); 00100 00101 private: 00102 static int _id; 00103 static pthread_mutex_t _idLock; 00104 00106 std::set<Action *> _actions; 00107 00108 }; 00109 00110 } 00111 #endif