diff --git a/CMakeLists.txt b/CMakeLists.txt index b25cb6b..ea744ae 100755 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -73,8 +73,19 @@ INCLUDE( cmake/LibFFmpeg.cmake ) SET( MODULES_DIR ${SRC_DIR}/modules ) INCLUDE_DIRECTORIES( ${MODULES_DIR} ) FILE( GLOB ModuleCMakeFiles cmake/Module*.cmake ) + +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" ) INCLUDE( ${ModuleCMakeFiles} ) +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" ) + ###################################################################################### # Main config.h ###################################################################################### diff --git a/cmake/CMakeMacros.cmake b/cmake/CMakeMacros.cmake index df9dc09..d4e9725 100644 --- a/cmake/CMakeMacros.cmake +++ b/cmake/CMakeMacros.cmake @@ -105,7 +105,8 @@ macro(ADD_MODULE name file ) set(MODULES_LIBS ${MODULES_LIBS} ${__modulename}) add_definitions( -DUSE_${name} ) LIST(APPEND MODULES_LIST ${name} ) - file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/moduleslist.cpp "REGISTER_MODULE( ${name} );") + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListHeader.h "#include \"${name}.h\"\n") + file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/ModulesListMacro.h "\\\n REGISTER_MODULE( ${name} ); ") endif() unset(__modulename) endmacro() diff --git a/source/app/ModulesHandle.cpp b/source/app/ModulesHandle.cpp index 1739eff..decd84b 100644 --- a/source/app/ModulesHandle.cpp +++ b/source/app/ModulesHandle.cpp @@ -26,23 +26,12 @@ #include "ModulesHandle.h" #include "SubWindowHandle.h" - -// List of modules includes -#include "FilterFrame.h" -#include "FrameDifference.h" +#include "ModulesListHeader.h" +#include "ModulesListMacro.h" namespace plaYUVer { -Void ModulesHandle::ModulesList( Bool bCreate ) -{ - - // Register Modules - REGISTER_MODULE( FilterFrame ); - REGISTER_MODULE( FrameDifference ); - -} - ModulesHandle::ModulesHandle( QWidget * parent, QMdiArea *mdiArea ) : QObject( parent ), m_pcParent( parent ), @@ -52,7 +41,8 @@ ModulesHandle::ModulesHandle( QWidget * parent, QMdiArea *mdiArea ) : { // configure class setParent( m_pcParent ); - ModulesList( true ); + // Register Modules + REGISTER_ALL_MODULES } ModulesHandle::~ModulesHandle() diff --git a/source/app/ModulesHandle.h b/source/app/ModulesHandle.h index 826a9f1..30db126 100644 --- a/source/app/ModulesHandle.h +++ b/source/app/ModulesHandle.h @@ -78,7 +78,6 @@ private: QVector m_arrayActions; Void appendModule( PlaYUVerModuleIf* ); - Void ModulesList( Bool bCreate ); private Q_SLOTS: void selectModule( int index ); diff --git a/source/app/PlaYUVerModuleIf.h b/source/app/PlaYUVerModuleIf.h index 3681b47..67b81e2 100644 --- a/source/app/PlaYUVerModuleIf.h +++ b/source/app/PlaYUVerModuleIf.h @@ -56,11 +56,8 @@ enum __PlaYUVerModuleRequirements { \ if( USE_##X ) \ { \ - if( bCreate ) \ - { \ - X *pMod = new X(); \ - appendModule( pMod ); \ - } \ + X *pMod = new X(); \ + appendModule( pMod ); \ } \ }