]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/utils/var_text.cpp
* all: added a INI file parser in skins2. For instance if the file
[vlc] / modules / gui / skins2 / utils / var_text.cpp
index e7740d296debcfc0ab888d7dc400e061b06c8ebd..23ac5c72a2588bdcdce18b2f17bd3ab852a9ebba 100644 (file)
@@ -43,15 +43,7 @@ VarText::~VarText()
     if( m_substVars )
     {
         // Remove the observers
-        VlcProc *pVlcProc = VlcProc::instance( getIntf() );
-        pVlcProc->getTimeVar().delObserver( this );
-        pVlcProc->getVolumeVar().delObserver( this );
-        pVlcProc->getStreamURIVar().delObserver( this );
-        pVlcProc->getStreamNameVar().delObserver( this );
-        pVlcProc->getStreamBitRateVar().delObserver( this );
-        pVlcProc->getStreamSampleRateVar().delObserver( this );
-        VarManager *pVarManager = VarManager::instance( getIntf() );
-        pVarManager->getHelpText().delObserver( this );
+        delObservers();
     }
 }
 
@@ -149,15 +141,10 @@ void VarText::set( const UString &rText )
     if( m_substVars )
     {
         // Stop observing other variables
+        delObservers();
+
         VlcProc *pVlcProc = VlcProc::instance( getIntf() );
-        pVlcProc->getTimeVar().delObserver( this );
-        pVlcProc->getVolumeVar().delObserver( this );
-        pVlcProc->getStreamNameVar().delObserver( this );
-        pVlcProc->getStreamURIVar().delObserver( this );
-        pVlcProc->getStreamBitRateVar().delObserver( this );
-        pVlcProc->getStreamSampleRateVar().delObserver( this );
         VarManager *pVarManager = VarManager::instance( getIntf() );
-        pVarManager->getHelpText().delObserver( this );
 
         // Observe needed variables
         if( m_text.find( "$H" ) != UString::npos )
@@ -228,3 +215,18 @@ void VarText::onUpdate( Subject<VarText,void*> &rVariable, void *arg )
     }
 }
 
+
+void VarText::delObservers()
+{
+    // Stop observing other variables
+    VlcProc *pVlcProc = VlcProc::instance( getIntf() );
+    pVlcProc->getTimeVar().delObserver( this );
+    pVlcProc->getVolumeVar().delObserver( this );
+    pVlcProc->getStreamNameVar().delObserver( this );
+    pVlcProc->getStreamURIVar().delObserver( this );
+    pVlcProc->getStreamBitRateVar().delObserver( this );
+    pVlcProc->getStreamSampleRateVar().delObserver( this );
+    VarManager *pVarManager = VarManager::instance( getIntf() );
+    pVarManager->getHelpText().delObserver( this );
+}
+