]> git.sesse.net Git - vlc/blobdiff - modules/gui/qt4/input_manager.cpp
Update the rate value when setting the input.
[vlc] / modules / gui / qt4 / input_manager.cpp
index 9845baac20805e8e88f7cda66d33bb55e62c2c52..5a48df962e4583c07f951a8068d1de24e1cde754 100644 (file)
@@ -111,13 +111,14 @@ void InputManager::setInput( input_thread_t *_p_input )
         UpdateVout();
         addCallbacks();
         p_item = input_GetItem( p_input );
+        emit rateChanged( INPUT_RATE_DEFAULT / var_GetFloat( p_input, "rate" ) );
     }
     else
     {
         p_input = NULL;
         p_item = NULL;
         assert( !p_input_vbi );
-        emit rateChanged( INPUT_RATE_DEFAULT );
+        emit rateChanged( INPUT_RATE_DEFAULT / var_InheritFloat( p_intf, "rate" ) );
     }
 }
 
@@ -148,7 +149,7 @@ void InputManager::delInput()
     p_input = NULL;
 
     emit positionUpdated( -1.0, 0 ,0 );
-    emit rateChanged( INPUT_RATE_DEFAULT ); /* TODO: Do we want this ? */
+    emit rateChanged( INPUT_RATE_DEFAULT / var_InheritFloat( p_intf, "rate" ) );
     emit nameChanged( "" );
     emit chapterChanged( 0 );
     emit titleChanged( 0 );
@@ -166,6 +167,8 @@ void InputManager::delInput()
 
     emit encryptionChanged( false );
     emit recordingStateChanged( false );
+
+    emit cachingChanged( 1 );
 }
 
 /* Convert the event from the callbacks in actions */
@@ -585,7 +588,7 @@ void InputManager::UpdateCaching()
     if( f_newCache != f_cache )
     {
         f_cache = f_newCache;
-        /* Update rate */
+        /* Update cache */
         emit cachingChanged( f_cache );
     }
 }
@@ -916,8 +919,8 @@ MainInputManager::MainInputManager( intf_thread_t *_p_intf )
     var_AddCallback( THEPL, "volume-muted", SoundMuteChanged, this );
 
     /* Warn our embedded IM about input changes */
-    CONNECT( this, inputChanged( input_thread_t * ),
-             im, setInput( input_thread_t * ) );
+    DCONNECT( this, inputChanged( input_thread_t * ),
+              im, setInput( input_thread_t * ) );
 
     /* emit check if playlist has already started playing */
     input_thread_t *p_input = playlist_CurrentInput( THEPL );