]> git.sesse.net Git - vlc/commitdiff
skins2: factorize some code
authorErwan Tulou <erwan10@videolan.org>
Mon, 28 Jan 2013 11:35:00 +0000 (12:35 +0100)
committerErwan Tulou <erwan10@videolan.org>
Mon, 28 Jan 2013 14:18:42 +0000 (15:18 +0100)
modules/gui/skins2/src/vlcproc.cpp
modules/gui/skins2/src/vlcproc.hpp

index c7a8a3d00e62ffd44068404f12797aa1ad0cd86c..80b1395b2d62a1ebc8303a67f6baffc7a9c64cef 100644 (file)
@@ -453,27 +453,7 @@ void VlcProc::on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal )
         getIntf()->p_sys->p_input = pInput;
         vlc_object_hold( pInput );
 
-        input_item_t *p_item = input_GetItem( pInput );
-        if( p_item )
-        {
-            // Update short name
-            char *psz_name = input_item_GetName( p_item );
-            SET_TEXT( m_cVarStreamName, UString( getIntf(), psz_name ) );
-            free( psz_name );
-
-            // Update local path (if possible) or full uri
-            char *psz_uri = input_item_GetURI( p_item );
-            char *psz_path = make_path( psz_uri );
-            char *psz_save = psz_path ? psz_path : psz_uri;
-            SET_TEXT( m_cVarStreamURI, UString( getIntf(), psz_save ) );
-            free( psz_path );
-            free( psz_uri );
-
-            // Update art uri
-            char *psz_art = input_item_GetArtURL( p_item );
-            SET_STRING( m_cVarStreamArt, string( psz_art ? psz_art : "" ) );
-            free( psz_art );
-        }
+        update_current_input();
     }
 
     switch( newVal.i_int )
@@ -794,6 +774,36 @@ void VlcProc::init_variables()
     update_equalizer();
 }
 
+
+void VlcProc::update_current_input()
+{
+    input_thread_t* pInput = getIntf()->p_sys->p_input;
+    if( !pInput )
+        return;
+
+    input_item_t *p_item = input_GetItem( pInput );
+    if( p_item )
+    {
+        // Update short name
+        char *psz_name = input_item_GetName( p_item );
+        SET_TEXT( m_cVarStreamName, UString( getIntf(), psz_name ) );
+        free( psz_name );
+
+        // Update local path (if possible) or full uri
+        char *psz_uri = input_item_GetURI( p_item );
+        char *psz_path = make_path( psz_uri );
+        char *psz_save = psz_path ? psz_path : psz_uri;
+        SET_TEXT( m_cVarStreamURI, UString( getIntf(), psz_save ) );
+        free( psz_path );
+        free( psz_uri );
+
+        // Update art uri
+        char *psz_art = input_item_GetArtURL( p_item );
+        SET_STRING( m_cVarStreamArt, string( psz_art ? psz_art : "" ) );
+        free( psz_art );
+    }
+}
+
 void VlcProc::update_equalizer()
 {
 
index ff397ef595577449d304021b47ee3cbca3c9dc3d..63731026a4da0504f2afe151efaece122aa15d5c 100644 (file)
@@ -98,6 +98,9 @@ public:
     /// update equalizer
     void update_equalizer( );
 
+    /// update global variables for the current input
+    void update_current_input( );
+
     void on_intf_event_changed( vlc_object_t* p_obj, vlc_value_t newVal );
     void on_bit_rate_changed( vlc_object_t* p_obj, vlc_value_t newVal );
     void on_sample_rate_changed( vlc_object_t* p_obj, vlc_value_t newVal );