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