m_pVoutMainWindow->move( 0, 0 );
m_pVoutMainWindow->resize( width, height );
+
+ VarBool &rFullscreen = VlcProc::instance( getIntf() )->getFullscreenVar();
+ rFullscreen.addObserver( this );
}
VoutManager::~VoutManager( )
{
+ VarBool &rFullscreen = VlcProc::instance( getIntf() )->getFullscreenVar();
+ rFullscreen.delObserver( this );
+
delete m_pVoutMainWindow;
}
// Save width/height to be consistent across themes
// and detach Video Controls
vector<SavedWnd>::iterator it;
- for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); it++ )
+ for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); ++it )
{
if( (*it).pCtrlVideo )
{
// reattach vout(s) to Video Controls
vector<SavedWnd>::iterator it;
- for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); it++ )
+ for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); ++it )
{
CtrlVideo* pCtrlVideo = getBestCtrlVideo();
if( pCtrlVideo )
void VoutManager::discardVout( CtrlVideo* pCtrlVideo )
{
vector<SavedWnd>::iterator it;
- for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); it++ )
+ for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); ++it )
{
if( (*it).pCtrlVideo == pCtrlVideo )
{
void VoutManager::requestVout( CtrlVideo* pCtrlVideo )
{
vector<SavedWnd>::iterator it;
- for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); it++ )
+ for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); ++it )
{
if( (*it).pCtrlVideo == NULL )
{
// try to find an unused useable VideoControl
vector<CtrlVideo*>::const_iterator it;
- for( it = m_pCtrlVideoVec.begin(); it != m_pCtrlVideoVec.end(); it++ )
+ for( it = m_pCtrlVideoVec.begin(); it != m_pCtrlVideoVec.end(); ++it )
{
if( (*it)->isUseable() && !(*it)->isUsed() )
{
{
// remove vout thread from savedVec
vector<SavedWnd>::iterator it;
- for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); it++ )
+ for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); ++it )
{
if( (*it).pWnd == pWnd )
{
break;
}
}
+
+ // force fullscreen to false so that user regains control
+ VlcProc::instance( getIntf() )->setFullscreenVar( false );
}
width, height );
vector<SavedWnd>::iterator it;
- for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); it++ )
+ for( it = m_SavedWndVec.begin(); it != m_SavedWndVec.end(); ++it )
{
if( (*it).pWnd == pWnd )
{
}
}
+
void VoutManager::setFullscreenWnd( vout_window_t *pWnd, bool b_fullscreen )
{
- msg_Dbg( pWnd, "setFullscreen (%d) received from vout thread",
- b_fullscreen ? 1 : 0 );
+ msg_Dbg( pWnd, "setFullscreen (%i) received from vout thread",
+ b_fullscreen );
VlcProc::instance( getIntf() )->setFullscreenVar( b_fullscreen );
+}
- if( b_fullscreen )
- {
- m_pVoutMainWindow->show();
- }
- else
+
+void VoutManager::onUpdate( Subject<VarBool> &rVariable, void *arg )
+{
+ VarBool &rFullscreen = VlcProc::instance( getIntf() )->getFullscreenVar();
+ if( &rVariable == &rFullscreen )
{
- m_pVoutMainWindow->hide();
+ if( rFullscreen.get() )
+ m_pVoutMainWindow->show();
+ else
+ m_pVoutMainWindow->hide();
}
}
+
// Functions called by window provider
// ///////////////////////////////////