00001 #ifndef RECOGNITIONMODULE_H
00002 #define RECOGNITIONMODULE_H
00003
00004 #include "../opencvext.h"
00005 #include <iostream>
00006 #include <list>
00007
00008 using namespace std;
00009
00010 #ifdef DEBUG
00011 #define ENTER(LEVEL, TEXT) if(DEBUGLEVEL>=LEVEL) \
00012 cerr << "->" << __PRETTY_FUNCTION__ << TEXT;
00013 #else
00014 #define ENTER(LEVEL, TEXT)
00015 #endif
00016
00017 namespace seemicro
00018 {
00019
00020
00021 extern int DEBUGLEVEL;
00022
00031 class RecognitionModule
00032 {
00033 public:
00040 bool paramChanged;
00041
00048 bool outputChanged;
00049
00053 long timeForFrame, timeForKeyFrame;
00054
00055 RecognitionModule()
00056 {
00057 paramChanged = false;
00058 outputChanged = true;
00059 }
00060
00066 virtual ~RecognitionModule() { };
00067
00071 virtual void processFrame(myrect *ROI=NULL)
00072 {
00073 paramChanged = false;
00074 };
00075
00076 virtual void processKeyFrame(void)
00077 {
00078 #ifdef DEBUG
00079 if(DEBUGLEVEL>=3) cerr << "RecognitionModule::processKeyFrame()\n";
00080 #endif
00081 paramChanged = false;
00082 };
00083
00084 void registerMe(std::list<RecognitionModule*>& l)
00085 {
00086 #ifdef DEBUG
00087 if(DEBUGLEVEL>=2) cerr << "Registering this...";
00088 #endif
00089 l.push_back(this);
00090 }
00091
00092 void unregisterMe(std::list<RecognitionModule*>& l)
00093 {
00094 #ifdef DEBUG
00095 if(DEBUGLEVEL>=2) cerr << "Unregistering this...";
00096 #endif
00097 l.remove(this);
00098 }
00099
00100 };
00101
00102 }
00103
00104 #endif // RECOGNITIONMODULE_H
00105