Finish first version of the modules inferface. still missing the proper
connections
This commit is contained in:
1 parent
8d5d98c8ac
commit
589622f18a
6 files changed
+118
-19
No files matched your search
+3
-2
@@ -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
@@ -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()
|
||||
@@ -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
@@ -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__
|
||||
|
||||
|
||||
@@ -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__
|
||||
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in new issue
Block a user