From 04e2d0aaf7f70a45acfc44fa9562d771fb649533 Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Sat, 27 Dec 2014 23:01:15 +0000 Subject: [PATCH] Add all static modules and finish factory --- app/ModulesHandle.cpp | 3 +-- modules/CMakeLists.txt | 20 +++++++++----------- modules/ModulesList.cmake | 13 ------------- modules/PlaYUVerModuleFactory.cpp | 4 ++-- modules/PlaYUVerModuleFactory.h | 2 ++ modules/PlaYUVerModuleIf.h | 7 ------- 6 files changed, 14 insertions(+), 35 deletions(-) delete mode 100644 modules/ModulesList.cmake diff --git a/app/ModulesHandle.cpp b/app/ModulesHandle.cpp index da3ea25..00e1de5 100644 --- a/app/ModulesHandle.cpp +++ b/app/ModulesHandle.cpp @@ -25,8 +25,6 @@ #include #include "ModulesHandle.h" -#include "ModulesListHeader.h" -#include "ModulesListMacro.h" #include "PlaYUVerModuleFactory.h" #include "DialogSubWindowSelector.h" #include "SubWindowHandle.h" @@ -130,6 +128,7 @@ QMenu* ModulesHandle::createMenu() else m_pcModulesMenu->addAction( currAction ); + pcCurrModuleIf->Delete(); } m_pcModulesMenu->addSeparator(); diff --git a/modules/CMakeLists.txt b/modules/CMakeLists.txt index 938930f..493d340 100644 --- a/modules/CMakeLists.txt +++ b/modules/CMakeLists.txt @@ -22,15 +22,6 @@ MACRO(ADD_MODULE name file ) ENDMACRO() - -# -# Init header -# -file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListMacro.h "// This files defines the macro to \n" - "// define a list of modules\n" - "#ifndef __MODULESLISTMACRO_H__\n#define __MODULESLISTMACRO_H__\n" - "#define REGISTER_ALL_MODULES ") - file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "// This files add the header files of each module\n" "#ifndef __MODULESLISTHEADER_H__\n#define __MODULESLISTHEADER_H__\n" ) @@ -39,13 +30,20 @@ file( WRITE ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "// This files add # # Modules List # -INCLUDE( ModulesList.cmake ) +ADD_MODULE( FilterComponentLuma "FilterComponent" ) +ADD_MODULE( FilterComponentChromaU "FilterComponent" ) +ADD_MODULE( FilterComponentChromaV "FilterComponent" ) +ADD_MODULE( FrameDifference "FrameDifference" ) +ADD_MODULE( AbsoluteFrameDifference "AbsoluteFrameDifference" ) +#ADD_MODULE( MeasurePSNR "MeasurePSNR" ) +IF( USE_OPENCV ) + ADD_MODULE( DisparityStereoVar "DisparityStereoVar" ) +ENDIF() # # Finish header # -file( APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListMacro.h "\n#endif // __MODULESLISTMACRO_H__\n" ) file( APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#endif // __MODULESLISTHEADER_H__\n" ) ADD_LIBRARY( PlaYUVerModules ${plaYUver_Mod_SRCS} ) diff --git a/modules/ModulesList.cmake b/modules/ModulesList.cmake deleted file mode 100644 index d70369f..0000000 --- a/modules/ModulesList.cmake +++ /dev/null @@ -1,13 +0,0 @@ -### -### Modules List -### - -ADD_MODULE( FilterComponentLuma "FilterComponent" ) -ADD_MODULE( FilterComponentChromaU "FilterComponent" ) -ADD_MODULE( FilterComponentChromaV "FilterComponent" ) -ADD_MODULE( FrameDifference "FrameDifference" ) -ADD_MODULE( AbsoluteFrameDifference "AbsoluteFrameDifference" ) -#ADD_MODULE( MeasurePSNR "MeasurePSNR" ) -IF( USE_OPENCV ) - ADD_MODULE( DisparityStereoVar "DisparityStereoVar" ) -ENDIF() diff --git a/modules/PlaYUVerModuleFactory.cpp b/modules/PlaYUVerModuleFactory.cpp index 5d44a1b..b50d1a9 100644 --- a/modules/PlaYUVerModuleFactory.cpp +++ b/modules/PlaYUVerModuleFactory.cpp @@ -26,7 +26,6 @@ #include #include "PlaYUVerModuleFactory.h" #include "ModulesListHeader.h" -#include "ModulesListMacro.h" namespace plaYUVer { @@ -36,8 +35,9 @@ PlaYUVerModuleFactory::PlaYUVerModuleFactory() Register( "FilterComponentLuma", &FilterComponentLuma::Create ); Register( "FilterComponentChromaU", &FilterComponentChromaU::Create ); Register( "FilterComponentChromaV", &FilterComponentChromaV::Create ); - Register( "AbsoluteFrameDifference", &AbsoluteFrameDifference::Create ); Register( "FrameDifference", &FrameDifference::Create ); + Register( "AbsoluteFrameDifference", &AbsoluteFrameDifference::Create ); + Register( "DisparityStereoVar", &DisparityStereoVar::Create ); } PlaYUVerModuleFactory::~PlaYUVerModuleFactory() diff --git a/modules/PlaYUVerModuleFactory.h b/modules/PlaYUVerModuleFactory.h index f708a26..36ddee7 100644 --- a/modules/PlaYUVerModuleFactory.h +++ b/modules/PlaYUVerModuleFactory.h @@ -31,6 +31,8 @@ namespace plaYUVer { +#define REGISTER_MODULE(X) Register( "X", &(X::Create) ); + typedef PlaYUVerModuleIf* (*CreateModuleFn)( void ); typedef std::map PlaYUVerModuleFactoryMap; diff --git a/modules/PlaYUVerModuleIf.h b/modules/PlaYUVerModuleIf.h index 32408ae..4db5a54 100644 --- a/modules/PlaYUVerModuleIf.h +++ b/modules/PlaYUVerModuleIf.h @@ -37,13 +37,6 @@ public: \ static PlaYUVerModuleIf* Create() { return new X(); } \ void Delete() { delete this; } - -#define REGISTER_MODULE(X) \ - { \ - X *pMod = new X(); \ - appendModule( pMod ); \ - } - enum // Module type { FRAME_PROCESSING_MODULE,