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 DriverError,
00062 ImageTargetLocked,
00063 ResolutionMismatch,
00064 OutOfMemory,
00065 FrameLimitHit,
00066 LensHistoryError,
00067 FlashHistoryError,
00068 DemosaicError,
00069 ImageLockError,
00070 BadCast,
00071 FileLoadError,
00072 FileLoadWarning,
00073 FileSaveError,
00074 FileSaveWarning,
00075 SensorStoppedError,
00076 ParseError,
00077 FrameDataError,
00078 OutOfRange,
00079 };
00080 };
00081
00106 bool getNextEvent(Event *);
00110 bool getNextEvent(Event *, int type);
00114 bool getNextEvent(Event *, int type, int data);
00118 bool getNextEvent(Event *, int type, EventGenerator *creator);
00123 bool getNextEvent(Event *, int type, int data, EventGenerator *creator);
00128 bool getNextEvent(Event *, EventGenerator *creator);
00129
00131 void postEvent(Event);
00132
00135 void postEvent(int type, int code, const std::string &msg, EventGenerator *creator = NULL);
00136
00138 void error(int code, EventGenerator *creator, const char *fmt, ...);
00139
00141 void warning(int code, EventGenerator *creator, const char *fmt, ...);
00142
00144 void error(int code, const char *fmt, ...);
00145
00147 void warning(int code, const char *fmt, ...);
00148
00150 extern TSQueue<Event> _eventQueue;
00151 }
00152
00153 #endif