Finish first version of the modules inferface. still missing the proper

connections
This commit is contained in:
jfmcarreira committed 2014-02-09 04:23:05 +00:00
1 parent 8d5d98c8ac
commit 589622f18a
6 files changed
+118 -19

No files matched your search

+3 -2
View File
@@ -70,11 +70,12 @@ INCLUDE( cmake/LibFFmpeg.cmake )
# PlaYUVer modules build
######################################################################################
SET( MODULES_DIR ${SRC_DIR}/modules )
INCLUDE_DIRECTORIES( ${MODULES_DIR} )
FILE( GLOB ModuleCMakeFiles cmake/Module*.cmake )
INCLUDE( ${ModuleCMakeFiles} )
######################################################################################
# Create config.h
# Main config.h
######################################################################################
CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h )
@@ -83,7 +84,7 @@ CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/config.h.in ${CMAKE_CURRENT_BINARY_D
######################################################################################
ADD_EXECUTABLE( ${PROJECT_NAME} ${SOURCES_FILES} ${HEADERS_MOC_FILES} ${FORMS_HEADERS_FILES} ${RESOURCES_RCC_FILES} )
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${LINKER_LIBS} )
TARGET_LINK_LIBRARIES( ${PROJECT_NAME} ${MODULES_LIBS} ${LINKER_LIBS} )
IF( NOT USE_QT4)
QT5_USE_MODULES( ${PROJECT_NAME} ${CURR_QT_MODULES} )
+10 -1
View File
@@ -94,4 +94,13 @@ function(status text)
else()
message(STATUS "${text}")
endif()
endfunction()
endfunction()
macro(ADD_MODULE name files )
set(__modulename "Module${name}")
add_library( ${__modulename} ${files} )
set(MODULES_LIBS ${MODULES_LIBS} ${__modulename})
ADD_DEFINITIONS( -DUSE_${name} )
unset(__modulename)
endmacro()
+35 -5
View File
@@ -24,14 +24,18 @@
#include <cstdio>
#include "ModulesHandle.h"
#include "FilterFrame.h"
namespace plaYUVer
{
ModulesHandle::ModulesHandle()
ModulesHandle::ModulesHandle( QWidget * parent )
{
setParent( parent );
m_uiModulesCount = 0;
// Register Modules
REGISTER_MODULE( FilterFrame );
}
ModulesHandle::~ModulesHandle()
@@ -39,11 +43,37 @@ ModulesHandle::~ModulesHandle()
}
Void ModulesHandle::createMenus( QMenuBar *MainAppMenuBar )
Void ModulesHandle::appendModule( PlaYUVerModuleIf* pIfModule )
{
MainAppMenuBar->addMenu( "&Modules" );
m_pcPlaYUVerModules.append( pIfModule );
m_uiModulesCount++;
}
Void ModulesHandle::createMenus( QMenuBar *MainAppMenuBar )
{
PlaYUVerModuleIf* currModuleIf;
QAction* currAction;
m_pcModulesMenu = MainAppMenuBar->addMenu( "&Modules" );
//m_arrayModulesActions.resize( m_uiModulesCount );
for( Int i = 0; i < m_pcPlaYUVerModules.size(); i++ )
{
currModuleIf = m_pcPlaYUVerModules.at( i );
currAction = new QAction( tr( currModuleIf->m_pchModuleName ), parent() );
currAction->setStatusTip( tr( currModuleIf->m_pchModuleTooltip ) );
m_arrayModulesActions.append( currAction );
m_pcModulesMenu->addAction( currAction );
}
//MainAppMenuBar->
}
} // NAMESPACE
+20 -5
View File
@@ -37,24 +37,39 @@
#endif
#include "TypeDef.h"
#include "PlaYUVerModuleIf.h"
namespace plaYUVer
{
class ModulesHandle
{
#define REGISTER_MODULE(X) \
{ \
if( USE_##X ) \
{ \
X *pMod = new X(); \
appendModule( pMod ); \
} \
}
class ModulesHandle : public QObject
{
Q_OBJECT
public:
ModulesHandle();
ModulesHandle( QWidget * parent = 0 );
~ModulesHandle();
Void createMenus( QMenuBar *MainAppMenuBar );
private:
QMenu* m_pcModulesMenu;
UInt m_uiModulesCount;
QList<PlaYUVerModuleIf*> m_pcPlaYUVerModules;
QVector<QAction*> m_arrayModulesActions;
Void appendModule( PlaYUVerModuleIf* );
};
} // NAMESPACE
#endif // __MODULESHANDLE_H__
+48 -6
View File
@@ -32,23 +32,65 @@
#include "TypeDef.h"
#include "PlaYUVerFrame.h"
class QImage;
namespace plaYUVer
{
#define REGISTER_MODULE_NAME( type, name, tooltip ) \
m_pchModuleType = type; \
m_pchModuleName = name; \
m_pchModuleTooltip = tooltip;
class PlaYUVerModuleIf
{
public:
virtual Void create();
PlaYUVerModuleIf() :
m_pchModuleType( NULL ), m_pchModuleName( NULL ), m_pchModuleTooltip( NULL )
{
}
virtual ~PlaYUVerModuleIf()
{
}
virtual Void process();
virtual PlaYUVerFrame* process( PlaYUVerFrame* InputFrame );
const Char* m_pchModuleType;
const Char* m_pchModuleName;
const Char* m_pchModuleTooltip;
virtual Void close();
virtual Void create()
{
}
virtual Void create( QImage* )
{
}
virtual Void create( PlaYUVerFrame* )
{
}
virtual Void process()
{
}
virtual QImage* process( QImage* )
{
return NULL;
}
virtual PlaYUVerFrame* process( PlaYUVerFrame* )
{
return NULL;
}
virtual Void destroy()
{
}
virtual ~PlaYUVerModuleIf() {}
};
} // NAMESPACE
#endif // __PLAYUVERMODULESIF_H__
+2
View File
@@ -51,6 +51,8 @@ plaYUVerApp::plaYUVerApp()
mapperWindow = new QSignalMapper( this );
connect( mapperWindow, SIGNAL( mapped(QWidget*) ), this, SLOT( setActiveSubWindow(QWidget*) ) );
m_pcModulesHandle = new ModulesHandle(this);
createActions();
createMenus();
createToolBars();