diff --git a/source/app/ModulesHandle.cpp b/source/app/ModulesHandle.cpp index 9236e85..a0b1e0b 100644 --- a/source/app/ModulesHandle.cpp +++ b/source/app/ModulesHandle.cpp @@ -91,7 +91,7 @@ SubWindowHandle* ModulesHandle::toggleSelectedModuleIf() currModuleIf->m_pcDisplaySubWindow = interfaceChild; currModuleIf->m_pcDisplaySubWindow->setModule( currModuleIf ); } - currModuleIf->m_pcSubWindow = pcSubWindow; + currModuleIf->m_pcSubWindow[0] = pcSubWindow; pcSubWindow->enableModule( currModuleIf ); } else @@ -109,7 +109,7 @@ PlaYUVerFrame* ModulesHandle::applyModuleIf( PlaYUVerModuleIf *pcCurrModuleIf ) switch( pcCurrModuleIf->m_cModuleDef.m_uiNumberOfFrames ) { case MODULE_REQUIRES_ONE_FRAME: - processedFrame = pcCurrModuleIf->process( pcCurrModuleIf->m_pcSubWindow->getCurrFrame() ); + processedFrame = pcCurrModuleIf->process( pcCurrModuleIf->m_pcSubWindow[0]->getCurrFrame() ); break; case MODULE_REQUIRES_TWO_FRAMES: break; @@ -119,7 +119,7 @@ PlaYUVerFrame* ModulesHandle::applyModuleIf( PlaYUVerModuleIf *pcCurrModuleIf ) if( pcCurrModuleIf->m_pcDisplaySubWindow ) pcCurrModuleIf->m_pcDisplaySubWindow->setCurrFrame( processedFrame ); else - pcCurrModuleIf->m_pcSubWindow->setCurrFrame( processedFrame ); + pcCurrModuleIf->m_pcSubWindow[0]->setCurrFrame( processedFrame ); return processedFrame; } @@ -128,11 +128,16 @@ Void ModulesHandle::destroyModuleIf( PlaYUVerModuleIf *pcCurrModuleIf ) pcCurrModuleIf->m_pcAction->setChecked( false ); if( pcCurrModuleIf->m_pcDisplaySubWindow ) pcCurrModuleIf->m_pcDisplaySubWindow->close(); - if( pcCurrModuleIf->m_pcSubWindow ) - pcCurrModuleIf->m_pcSubWindow->disableModule(); + for( Int i = 0; i < MAX_NUMBER_FRAMES; i++ ) + { + if( pcCurrModuleIf->m_pcSubWindow[i] ) + { + pcCurrModuleIf->m_pcSubWindow[i]->disableModule(); + pcCurrModuleIf->m_pcSubWindow[i] = NULL; + } + } pcCurrModuleIf->m_pcDisplaySubWindow = NULL; - pcCurrModuleIf->m_pcSubWindow = NULL; pcCurrModuleIf->destroy(); } diff --git a/source/app/PlaYUVerModuleIf.h b/source/app/PlaYUVerModuleIf.h index 178a1c5..225b7c3 100644 --- a/source/app/PlaYUVerModuleIf.h +++ b/source/app/PlaYUVerModuleIf.h @@ -45,6 +45,7 @@ enum __PlaYUVerModuleTypes VIDEO_LEVEL_MODULE, }; +#define MAX_NUMBER_FRAMES 3 enum __PlaYUVerModuleRequirements { MODULE_REQUIRES_ONE_FRAME = 1, @@ -82,15 +83,19 @@ class PlaYUVerModuleIf friend class ModulesHandle; private: QAction* m_pcAction; - SubWindowHandle* m_pcSubWindow; + SubWindowHandle* m_pcSubWindow[MAX_NUMBER_FRAMES]; SubWindowHandle* m_pcDisplaySubWindow; PlaYUVerModuleDefinition m_cModuleDef; public: PlaYUVerModuleIf() : m_pcAction( NULL ), - m_pcSubWindow( NULL ), m_pcDisplaySubWindow( NULL ) - { } + { + for( Int i = 0; i < MAX_NUMBER_FRAMES; i++ ) + { + m_pcSubWindow[i] = NULL; + } + } virtual ~PlaYUVerModuleIf() { } virtual Void create() { }