Add thread controlling functions for modules

This commit is contained in:
2017-10-01 04:04:55 +01:00
parent b0d5c32099
commit 1d192abcd7
4 changed files with 46 additions and 19 deletions
+9
View File
@@ -58,6 +58,15 @@ Void PlaYUVerAppModuleIf::update()
}
}
Bool PlaYUVerAppModuleIf::isRunning()
{
#ifdef PLAYUVER_THREADED_MODULES
return QThread::isRunning();
#else
return false;
#endif
}
Bool PlaYUVerAppModuleIf::apply( Bool isPlaying, Bool disableThreads )
{
Bool bRet = false;
+1
View File
@@ -98,6 +98,7 @@ public:
UInt getModuleRequirements() { return m_pcModule->m_uiModuleRequirements; }
Void update();
Bool apply( Bool isPlaying = false, Bool disableThreads = false );
Bool isRunning();
Void show();
Void destroy();
+14
View File
@@ -639,6 +639,20 @@ Void VideoSubWindow::associateModule( PlaYUVerAppModuleIf* pcModule )
m_apcCurrentModule.append( pcModule );
}
Bool VideoSubWindow::hasRunningModule()
{
Bool bRet = false;
if( m_pcCurrentDisplayModule )
{
bRet |= m_pcCurrentDisplayModule->isRunning();
}
for( Int i = 0; i < m_apcCurrentModule.size() && !bRet; i++ )
{
bRet |= m_apcCurrentModule.at( i )->isRunning();
}
return bRet;
}
Void VideoSubWindow::setFillWindow( Bool bFlag )
{
m_pcVideoInfo->setBusyWindow( bFlag );
+22 -19
View File
@@ -100,25 +100,6 @@ private:
QFuture<Void> m_cRefreshResult;
QFuture<Void> m_cReadResult;
Void refreshFrameOperation();
Bool goToNextFrame( Bool bThreaded = false );
static Bool guessFormat( QString filename,
UInt& rWidth,
UInt& rHeight,
Int& rInputFormat,
UInt& rBitsPerPixel,
Int& rEndianness );
/**
* Private zoom function to handle
* zoom to fit
*/
Void scaleView( const QSize& size, QPoint center = QPoint() );
Void updateVideoWindowInfo();
QSize getScrollSize();
public:
enum VideoSubWindowCategories
{
@@ -201,6 +182,28 @@ public:
Void clearWindowBusy() { m_bWindowBusy = false; }
Void setFillWindow( Bool bFlag );
private:
Void refreshFrameOperation();
Bool goToNextFrame( Bool bThreaded = false );
static Bool guessFormat( QString filename,
UInt& rWidth,
UInt& rHeight,
Int& rInputFormat,
UInt& rBitsPerPixel,
Int& rEndianness );
Bool hasRunningModule();
/**
* Private zoom function to handle
* zoom to fit
*/
Void scaleView( const QSize& size, QPoint center = QPoint() );
Void updateVideoWindowInfo();
QSize getScrollSize();
protected:
Void keyPressEvent( QKeyEvent* event );
Void resizeEvent( QResizeEvent* event );