00001 #ifndef FCAM_N900_FLASH_H
00002 #define FCAM_N900_FLASH_H
00003
00007 #include "../Flash.h"
00008 #include "../CircularBuffer.h"
00009 #include "../Time.h"
00010 #include <vector>
00011
00012 namespace FCam {
00013 namespace N900 {
00014
00016 class Flash : public FCam::Flash {
00017 public:
00018 Flash();
00019 ~Flash();
00020
00022 int minDuration() {return 55600;}
00023
00025 int maxDuration() {return 492400;}
00026
00027 float minBrightness() {return 2.0f;}
00028 float maxBrightness() {return 19.0f;}
00029
00030
00031 void fire(float brightness, int duration);
00032 int fireLatency() {return 500;}
00033
00034
00036 float getBrightness(Time) {return 0.0f;}
00037
00039 float getBrightness(Time, Time) {return 0.0f;}
00040
00042 void tagFrame(FCam::Frame *) {return;}
00043
00044 private:
00045
00046 void setDuration(int);
00047 void setBrightness(float);
00048
00049 struct FlashState {
00050 Time time;
00051 bool state;
00052 };
00053
00054 CircularBuffer<FlashState> flashHistory;
00055 };
00056 }
00057 }
00058
00059
00060 #endif