diff --git a/app/ModulesHandle.cpp b/app/ModulesHandle.cpp index 49e63c4..883bd0e 100644 --- a/app/ModulesHandle.cpp +++ b/app/ModulesHandle.cpp @@ -491,7 +491,10 @@ Bool ModulesHandle::applyModuleIf( PlaYUVerAppModuleIf *pcCurrModuleIf, Bool isP pcCurrModuleIf->start(); else #endif + { pcCurrModuleIf->run(); + showModuleIf( pcCurrModuleIf ); + } if( pcCurrModuleIf->m_pcDisplaySubWindow || pcCurrModuleIf->m_pcModule->m_iModuleType == FRAME_MEASUREMENT_MODULE ) { diff --git a/app/PlaYUVerAppModuleIf.cpp b/app/PlaYUVerAppModuleIf.cpp index a8cecd7..b69e673 100644 --- a/app/PlaYUVerAppModuleIf.cpp +++ b/app/PlaYUVerAppModuleIf.cpp @@ -86,9 +86,11 @@ Void PlaYUVerAppModuleIf::run() return; } m_bIsRunning = false; +#ifdef PLAYUVER_THREADED_MODULES EventData *eventData = new EventData( true, this ); if( parent() ) QCoreApplication::postEvent( parent(), eventData ); +#endif return; } diff --git a/app/VideoSubWindow.cpp b/app/VideoSubWindow.cpp index 450ba5f..98f46a4 100644 --- a/app/VideoSubWindow.cpp +++ b/app/VideoSubWindow.cpp @@ -618,14 +618,14 @@ Void VideoSubWindow::refreshFrameOperation() if( m_pcCurrentDisplayModule ) { m_bWindowBusy = true; - ModulesHandle::applyModuleIf( m_pcCurrentDisplayModule, m_bIsPlaying ); + ModulesHandle::applyModuleIf( m_pcCurrentDisplayModule, m_bIsPlaying, !m_bIsPlaying && m_apcCurrentModule.size() ); bSetFrame = false; } if( bSetFrame ) { m_cViewArea->setImage( m_pcCurrFrame ); } - for( Int i = 0; i < m_apcCurrentModule.size(); i++ ) + for( Int i = 0; i < m_apcCurrentModule.size() && !m_bIsPlaying; i++ ) { m_bWindowBusy = true; ModulesHandle::applyModuleIf( m_apcCurrentModule.at( i ), m_bIsPlaying );