VAT  3.0
Video Analysis Tool
module_macros.h
1 #ifndef MODULE_MACROS_H
2 #define MODULE_MACROS_H
3 
4 #define ADD_MODULE(module) \
5 ModuleInterface *ALLOCATE_##module (Datapool *i_data) { \
6  ModuleInterface *m = new module(i_data); \
7  m->name = #module; \
8  m->type = VideoAnalysis::moduleType[#module]; \
9  return m; }
10 
11 #define ALLOCATE_MODULE(module) ALLOCATE_##module()
12 
13 #define REGISTER_MODULE(name, type) \
14 VideoAnalysis::availableModules.insert(#name); \
15 VideoAnalysis::moduleType[#name] = type; \
16 VideoAnalysis::moduleConstructor[#name] = &ALLOCATE_##name; \
17 VideoAnalysis::modulesByType.insert(std::pair<ModuleType, std::string>(type, #name));
18 #endif // MODULE_MACROS_H