00001 #ifndef FCAM_EVENT_H 00002 #define FCAM_EVENT_H 00003 00006 00007 #include <string> 00008 00009 #include "Time.h" 00010 #include "TSQueue.h" 00011 00012 00013 namespace FCam { 00014 00018 class EventGenerator { 00019 }; 00020 00023 class Event { 00024 public: 00025 EventGenerator *creator; 00026 int type; 00027 int data; 00028 Time time; 00029 std::string description; 00030 00039 enum {Error = 0, 00040 Warning, 00041 FocusPressed, 00042 FocusReleased, 00043 ShutterPressed, 00044 ShutterReleased, 00045 N900LensClosed = 10000, 00046 N900LensOpened, 00047 N900SlideOpened, 00048 N900SlideClosed, 00049 F2LensRemoved = 20000, 00050 F2LensInstalled, 00051 F2ZoomChanged, 00052 F2FocusChanged 00053 }; 00054 00059 enum {Unknown = 0, 00060 InternalError, 00061 DriverLockedError, 00062 DriverMissingError, 00063 DriverError, 00064 ImageTargetLocked, 00065 ResolutionMismatch, 00066 FormatMismatch, 00067 OutOfMemory, 00068 FrameLimitHit, 00069 LensHistoryError, 00070 FlashHistoryError, 00071 DemosaicError, 00072 ImageLockError, 00073 BadCast, 00074 FileLoadError, 00075 FileLoadWarning, 00076 FileSaveError, 00077 FileSaveWarning, 00078 SensorStoppedError, 00079 ParseError, 00080 FrameDataError, 00081 ImageDroppedError, 00082 OutOfRange, 00083 }; 00084 }; 00085 00110 bool getNextEvent(Event *); 00114 bool getNextEvent(Event *, int type); 00118 bool getNextEvent(Event *, int type, int data); 00122 bool getNextEvent(Event *, int type, EventGenerator *creator); 00127 bool getNextEvent(Event *, int type, int data, EventGenerator *creator); 00132 bool getNextEvent(Event *, EventGenerator *creator); 00133 00135 void postEvent(Event); 00136 00139 void postEvent(int type, int code, const std::string &msg, EventGenerator *creator = NULL); 00140 00142 void error(int code, EventGenerator *creator, const char *fmt, ...); 00143 00145 void warning(int code, EventGenerator *creator, const char *fmt, ...); 00146 00148 void error(int code, const char *fmt, ...); 00149 00151 void warning(int code, const char *fmt, ...); 00152 00154 extern TSQueue<Event> _eventQueue; 00155 } 00156 00157 #endif