]> git.sesse.net Git - vlc/commitdiff
skins2: adapt to latest change in playlist (activity variable)
authorErwan Tulou <erwan10@videolan.org>
Tue, 4 Dec 2012 14:59:41 +0000 (15:59 +0100)
committerErwan Tulou <erwan10@videolan.org>
Tue, 4 Dec 2012 15:08:39 +0000 (16:08 +0100)
It fixes skins2 crashing when an input is started.

modules/gui/skins2/src/vlcproc.cpp
modules/gui/skins2/src/vlcproc.hpp

index 96e1b4e7473a544827995b4de3fbea531f396571..e19c61b4ff919da1de9a3f0fb4d674a006ddf460 100644 (file)
@@ -367,7 +367,7 @@ int VlcProc::onGenericCallback( vlc_object_t *pObj, const char *pVariable,
     } \
     }
 
-    ADD_CALLBACK_ENTRY( "activity", on_item_current_changed, false )
+    ADD_CALLBACK_ENTRY( "activity", on_activity_changed, false )
     ADD_CALLBACK_ENTRY( "volume", on_volume_changed, true )
 
     ADD_CALLBACK_ENTRY( "bit-rate", on_bit_rate_changed, false )
@@ -444,10 +444,17 @@ int VlcProc::onGenericCallback2( vlc_object_t *pObj, const char *pVariable,
 }
 
 
-void VlcProc::on_item_current_changed( vlc_object_t* p_obj, vlc_value_t newVal )
+void VlcProc::on_activity_changed( vlc_object_t* p_obj, vlc_value_t newVal )
 {
-    (void)p_obj;
-    input_item_t *p_item = static_cast<input_item_t*>(newVal.p_address);
+    (void)p_obj; (void)newVal;
+
+    input_thread_t *p_input = getIntf()->p_sys->p_input;
+    if( !p_input )
+        return;
+
+    input_item_t *p_item = input_GetItem( p_input );
+    if( !p_item )
+        return;
 
     // Update short name
     char *psz_name = input_item_GetName( p_item );
index 8cf36a24b477e198a471d718975088b321505c62..0048842d7f38132803649d512738991ade38627b 100644 (file)
@@ -98,7 +98,7 @@ public:
     /// update equalizer
     void update_equalizer( );
 
-    void on_item_current_changed( vlc_object_t* p_obj, vlc_value_t newVal );
+    void on_activity_changed( vlc_object_t* p_obj, vlc_value_t newVal );
     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 );