Change PlaYUVerAppModuleIf functions

apply and show are part of PlaYUVerAppModuleIf class
This commit is contained in:
2015-11-07 17:37:29 +00:00
parent aae4b307fa
commit e9d8d117ea
5 changed files with 73 additions and 71 deletions
+7 -60
View File
@@ -425,7 +425,7 @@ Void ModulesHandle::activateModule()
return; return;
} }
applyModuleIf( pcCurrAppModuleIf, false, true ); pcCurrAppModuleIf->apply( false, true );
QCoreApplication::processEvents(); QCoreApplication::processEvents();
if( pcModuleSubWindow ) if( pcModuleSubWindow )
@@ -474,41 +474,12 @@ Void ModulesHandle::destroyAllModulesIf()
emit changed(); emit changed();
} }
Bool ModulesHandle::applyModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf, Bool isPlaying, Bool disableThreads ) Void ModulesHandle::applyModuleIf( QList<PlaYUVerAppModuleIf*> pcCurrModuleIfList, Bool isPlaying, Bool disableThreads )
{ {
Bool bRet = false; for( Int i = 0; i < pcCurrModuleIfList.size() && !isPlaying; i++ )
QApplication::setOverrideCursor( Qt::WaitCursor );
if( pcCurrModuleIf->m_pcDisplaySubWindow )
{ {
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 ) Void ModulesHandle::applyAllModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf )
@@ -574,7 +545,7 @@ Void ModulesHandle::applyAllModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf )
QApplication::setOverrideCursor( Qt::WaitCursor ); QApplication::setOverrideCursor( Qt::WaitCursor );
for( UInt f = 1; f < numberOfFrames; f++ ) for( UInt f = 1; f < numberOfFrames; f++ )
{ {
applyModuleIf( pcCurrModuleIf, false, true ); pcCurrModuleIf->apply( false, true );
QCoreApplication::processEvents(); QCoreApplication::processEvents();
pcCurrModuleIf->m_pcModuleStream->writeFrame( pcCurrModuleIf->m_pcProcessedFrame ); pcCurrModuleIf->m_pcModuleStream->writeFrame( pcCurrModuleIf->m_pcProcessedFrame );
for( UInt i = 0; i < numberOfWindows; i++ ) 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 ) Void ModulesHandle::swapModulesWindowsIf( PlaYUVerAppModuleIf *pcCurrModuleIf )
{ {
if( pcCurrModuleIf->m_pcModule->m_uiNumberOfFrames == MODULE_REQUIRES_TWO_FRAMES ) 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]; VideoSubWindow* auxWindowHandle = pcCurrModuleIf->m_pcSubWindow[0];
pcCurrModuleIf->m_pcSubWindow[0] = pcCurrModuleIf->m_pcSubWindow[1]; pcCurrModuleIf->m_pcSubWindow[0] = pcCurrModuleIf->m_pcSubWindow[1];
pcCurrModuleIf->m_pcSubWindow[1] = auxWindowHandle; pcCurrModuleIf->m_pcSubWindow[1] = auxWindowHandle;
applyModuleIf( pcCurrModuleIf ); pcCurrModuleIf->apply();
} }
} }
@@ -635,7 +582,7 @@ Void ModulesHandle::customEvent( QEvent *event )
PlaYUVerAppModuleIf::EventData *eventData = ( PlaYUVerAppModuleIf::EventData* )event; PlaYUVerAppModuleIf::EventData *eventData = ( PlaYUVerAppModuleIf::EventData* )event;
if( eventData->m_bSuccess ) if( eventData->m_bSuccess )
{ {
showModuleIf( eventData->m_pcModule ); eventData->m_pcModule->show();
} }
} }
+1 -3
View File
@@ -64,9 +64,7 @@ public:
Void writeSettings(); Void writeSettings();
static Void destroyModuleIf( PlaYUVerAppModuleIf* pcCurrModuleIf ); static Void destroyModuleIf( PlaYUVerAppModuleIf* pcCurrModuleIf );
static Bool applyModuleIf( PlaYUVerAppModuleIf* pcCurrModuleIf, Bool isPlaying = false, Bool disableThreads = false ); static Void applyModuleIf( QList<PlaYUVerAppModuleIf*> pcCurrModuleIfList, Bool isPlaying = false, Bool disableThreads = false );
static Void showModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf );
private: private:
QWidget* m_pcParent; QWidget* m_pcParent;
+61 -2
View File
@@ -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() Void PlaYUVerAppModuleIf::run()
{ {
m_bIsRunning = true; m_bIsRunning = true;
// m_pcProcessedFrame = NULL;
// m_dMeasurementResult = 0;
std::vector<PlaYUVerFrame*> apcFrameList; std::vector<PlaYUVerFrame*> apcFrameList;
for( UInt i = 0; i < m_pcModule->m_uiNumberOfFrames; i++ ) for( UInt i = 0; i < m_pcModule->m_uiNumberOfFrames; i++ )
@@ -94,6 +129,30 @@ Void PlaYUVerAppModuleIf::run()
return; 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() Void PlaYUVerAppModuleIf::destroy()
{ {
if( m_bIsRunning ) if( m_bIsRunning )
+2
View File
@@ -111,6 +111,8 @@ public:
return m_pcModule->m_uiModuleRequirements; return m_pcModule->m_uiModuleRequirements;
} }
Bool apply( Bool isPlaying = false, Bool disableThreads = false );
Void show();
Void destroy(); Void destroy();
protected: protected:
virtual void run(); virtual void run();
+2 -6
View File
@@ -618,18 +618,14 @@ Void VideoSubWindow::refreshFrameOperation()
if( m_pcCurrentDisplayModule ) if( m_pcCurrentDisplayModule )
{ {
m_bWindowBusy = true; 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; bSetFrame = false;
} }
if( bSetFrame ) if( bSetFrame )
{ {
m_cViewArea->setImage( m_pcCurrFrame ); m_cViewArea->setImage( m_pcCurrFrame );
} }
for( Int i = 0; i < m_apcCurrentModule.size() && !m_bIsPlaying; i++ ) ModulesHandle::applyModuleIf( m_apcCurrentModule, m_bIsPlaying );
{
m_bWindowBusy = true;
ModulesHandle::applyModuleIf( m_apcCurrentModule.at( i ), m_bIsPlaying );
}
} }
Void VideoSubWindow::refreshFrame( Bool bThreaded ) Void VideoSubWindow::refreshFrame( Bool bThreaded )