From e9d8d117ea093a4529e9d4a9e68e62f8326caf93 Mon Sep 17 00:00:00 2001 From: Joao Carreira Date: Sat, 7 Nov 2015 17:37:29 +0000 Subject: [PATCH] Change PlaYUVerAppModuleIf functions apply and show are part of PlaYUVerAppModuleIf class --- app/ModulesHandle.cpp | 67 ++++--------------------------------- app/ModulesHandle.h | 4 +-- app/PlaYUVerAppModuleIf.cpp | 63 ++++++++++++++++++++++++++++++++-- app/PlaYUVerAppModuleIf.h | 2 ++ app/VideoSubWindow.cpp | 8 ++--- 5 files changed, 73 insertions(+), 71 deletions(-) diff --git a/app/ModulesHandle.cpp b/app/ModulesHandle.cpp index db6de19..f205e94 100644 --- a/app/ModulesHandle.cpp +++ b/app/ModulesHandle.cpp @@ -425,7 +425,7 @@ Void ModulesHandle::activateModule() return; } - applyModuleIf( pcCurrAppModuleIf, false, true ); + pcCurrAppModuleIf->apply( false, true ); QCoreApplication::processEvents(); if( pcModuleSubWindow ) @@ -474,41 +474,12 @@ Void ModulesHandle::destroyAllModulesIf() emit changed(); } -Bool ModulesHandle::applyModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf, Bool isPlaying, Bool disableThreads ) +Void ModulesHandle::applyModuleIf( QList pcCurrModuleIfList, Bool isPlaying, Bool disableThreads ) { - Bool bRet = false; - QApplication::setOverrideCursor( Qt::WaitCursor ); - if( pcCurrModuleIf->m_pcDisplaySubWindow ) + for( Int i = 0; i < pcCurrModuleIfList.size() && !isPlaying; i++ ) { - pcCurrModuleIf->m_pcDisplaySubWindow->setFillWindow( true ); + pcCurrModuleIfList.at( i )->apply( isPlaying, disableThreads ); } - else - { - pcCurrModuleIf->m_pcSubWindow[0]->setFillWindow( true ); - } - if( !( isPlaying && ( pcCurrModuleIf->m_pcModule->m_uiModuleRequirements & MODULE_REQUIRES_SKIP_WHILE_PLAY ) ) ) - { -#ifdef PLAYUVER_THREADED_MODULES - if( !disableThreads ) - pcCurrModuleIf->start(); - else -#endif - { - pcCurrModuleIf->run(); - showModuleIf( pcCurrModuleIf ); - } - - if( pcCurrModuleIf->m_pcDisplaySubWindow || pcCurrModuleIf->m_pcModule->m_iModuleType == FRAME_MEASUREMENT_MODULE ) - { - bRet = true; - } - } - else - { - bRet = true; - } - QApplication::restoreOverrideCursor(); - return bRet; } Void ModulesHandle::applyAllModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf ) @@ -574,7 +545,7 @@ Void ModulesHandle::applyAllModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf ) QApplication::setOverrideCursor( Qt::WaitCursor ); for( UInt f = 1; f < numberOfFrames; f++ ) { - applyModuleIf( pcCurrModuleIf, false, true ); + pcCurrModuleIf->apply( false, true ); QCoreApplication::processEvents(); pcCurrModuleIf->m_pcModuleStream->writeFrame( pcCurrModuleIf->m_pcProcessedFrame ); for( UInt i = 0; i < numberOfWindows; i++ ) @@ -591,30 +562,6 @@ Void ModulesHandle::applyAllModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf ) } } -Void ModulesHandle::showModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf ) -{ - switch( pcCurrModuleIf->m_pcModule->m_iModuleType ) - { - case FRAME_PROCESSING_MODULE: - if( pcCurrModuleIf->m_pcDisplaySubWindow ) - { - pcCurrModuleIf->m_pcDisplaySubWindow->setCurrFrame( pcCurrModuleIf->m_pcProcessedFrame ); - pcCurrModuleIf->m_pcDisplaySubWindow->setFillWindow( false ); - pcCurrModuleIf->m_pcDisplaySubWindow->clearWindowBusy(); - } - else - { - pcCurrModuleIf->m_pcSubWindow[0]->setCurrFrame( pcCurrModuleIf->m_pcProcessedFrame ); - pcCurrModuleIf->m_pcSubWindow[0]->setFillWindow( false ); - pcCurrModuleIf->m_pcSubWindow[0]->clearWindowBusy(); - } - break; - case FRAME_MEASUREMENT_MODULE: - pcCurrModuleIf->m_pcModuleDock->setModulueReturnValue( pcCurrModuleIf->m_dMeasurementResult ); - break; - } -} - Void ModulesHandle::swapModulesWindowsIf( PlaYUVerAppModuleIf *pcCurrModuleIf ) { if( pcCurrModuleIf->m_pcModule->m_uiNumberOfFrames == MODULE_REQUIRES_TWO_FRAMES ) @@ -622,7 +569,7 @@ Void ModulesHandle::swapModulesWindowsIf( PlaYUVerAppModuleIf *pcCurrModuleIf ) VideoSubWindow* auxWindowHandle = pcCurrModuleIf->m_pcSubWindow[0]; pcCurrModuleIf->m_pcSubWindow[0] = pcCurrModuleIf->m_pcSubWindow[1]; pcCurrModuleIf->m_pcSubWindow[1] = auxWindowHandle; - applyModuleIf( pcCurrModuleIf ); + pcCurrModuleIf->apply(); } } @@ -635,7 +582,7 @@ Void ModulesHandle::customEvent( QEvent *event ) PlaYUVerAppModuleIf::EventData *eventData = ( PlaYUVerAppModuleIf::EventData* )event; if( eventData->m_bSuccess ) { - showModuleIf( eventData->m_pcModule ); + eventData->m_pcModule->show(); } } diff --git a/app/ModulesHandle.h b/app/ModulesHandle.h index 7a44cd3..cb06b57 100644 --- a/app/ModulesHandle.h +++ b/app/ModulesHandle.h @@ -64,9 +64,7 @@ public: Void writeSettings(); static Void destroyModuleIf( PlaYUVerAppModuleIf* pcCurrModuleIf ); - static Bool applyModuleIf( PlaYUVerAppModuleIf* pcCurrModuleIf, Bool isPlaying = false, Bool disableThreads = false ); - - static Void showModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf ); + static Void applyModuleIf( QList pcCurrModuleIfList, Bool isPlaying = false, Bool disableThreads = false ); private: QWidget* m_pcParent; diff --git a/app/PlaYUVerAppModuleIf.cpp b/app/PlaYUVerAppModuleIf.cpp index b69e673..9f53fcd 100644 --- a/app/PlaYUVerAppModuleIf.cpp +++ b/app/PlaYUVerAppModuleIf.cpp @@ -47,11 +47,46 @@ PlaYUVerAppModuleIf::PlaYUVerAppModuleIf( QObject* parent, QAction* action, PlaY } } +Bool PlaYUVerAppModuleIf::apply( Bool isPlaying, Bool disableThreads ) +{ + Bool bRet = false; + QApplication::setOverrideCursor( Qt::WaitCursor ); + if( m_pcDisplaySubWindow ) + { + m_pcDisplaySubWindow->setFillWindow( true ); + } + else + { + m_pcSubWindow[0]->setFillWindow( true ); + } + if( !( isPlaying && ( m_pcModule->m_uiModuleRequirements & MODULE_REQUIRES_SKIP_WHILE_PLAY ) ) ) + { +#ifdef PLAYUVER_THREADED_MODULES + if( !disableThreads ) + start(); + else +#endif + { + run(); + show(); + } + + if( m_pcDisplaySubWindow || m_pcModule->m_iModuleType == FRAME_MEASUREMENT_MODULE ) + { + bRet = true; + } + } + else + { + bRet = true; + } + QApplication::restoreOverrideCursor(); + return bRet; +} + Void PlaYUVerAppModuleIf::run() { m_bIsRunning = true; -// m_pcProcessedFrame = NULL; -// m_dMeasurementResult = 0; std::vector apcFrameList; for( UInt i = 0; i < m_pcModule->m_uiNumberOfFrames; i++ ) @@ -94,6 +129,30 @@ Void PlaYUVerAppModuleIf::run() return; } +Void PlaYUVerAppModuleIf::show() +{ + switch( m_pcModule->m_iModuleType ) + { + case FRAME_PROCESSING_MODULE: + if( m_pcDisplaySubWindow ) + { + m_pcDisplaySubWindow->setCurrFrame( m_pcProcessedFrame ); + m_pcDisplaySubWindow->setFillWindow( false ); + m_pcDisplaySubWindow->clearWindowBusy(); + } + else + { + m_pcSubWindow[0]->setCurrFrame( m_pcProcessedFrame ); + m_pcSubWindow[0]->setFillWindow( false ); + m_pcSubWindow[0]->clearWindowBusy(); + } + break; + case FRAME_MEASUREMENT_MODULE: + m_pcModuleDock->setModulueReturnValue( m_dMeasurementResult ); + break; + } +} + Void PlaYUVerAppModuleIf::destroy() { if( m_bIsRunning ) diff --git a/app/PlaYUVerAppModuleIf.h b/app/PlaYUVerAppModuleIf.h index 0f09f80..0654b10 100644 --- a/app/PlaYUVerAppModuleIf.h +++ b/app/PlaYUVerAppModuleIf.h @@ -111,6 +111,8 @@ public: return m_pcModule->m_uiModuleRequirements; } + Bool apply( Bool isPlaying = false, Bool disableThreads = false ); + Void show(); Void destroy(); protected: virtual void run(); diff --git a/app/VideoSubWindow.cpp b/app/VideoSubWindow.cpp index 381675e..27cd1de 100644 --- a/app/VideoSubWindow.cpp +++ b/app/VideoSubWindow.cpp @@ -618,18 +618,14 @@ Void VideoSubWindow::refreshFrameOperation() if( m_pcCurrentDisplayModule ) { m_bWindowBusy = true; - ModulesHandle::applyModuleIf( m_pcCurrentDisplayModule, m_bIsPlaying, !m_bIsPlaying && m_apcCurrentModule.size() ); + m_pcCurrentDisplayModule->apply( m_bIsPlaying, !m_bIsPlaying && m_apcCurrentModule.size() ); bSetFrame = false; } if( bSetFrame ) { m_cViewArea->setImage( m_pcCurrFrame ); } - for( Int i = 0; i < m_apcCurrentModule.size() && !m_bIsPlaying; i++ ) - { - m_bWindowBusy = true; - ModulesHandle::applyModuleIf( m_apcCurrentModule.at( i ), m_bIsPlaying ); - } + ModulesHandle::applyModuleIf( m_apcCurrentModule, m_bIsPlaying ); } Void VideoSubWindow::refreshFrame( Bool bThreaded )