]> git.sesse.net Git - vlc/commitdiff
notify: use input-current callback and simplify
authorRémi Denis-Courmont <remi@remlab.net>
Thu, 19 Feb 2015 22:12:38 +0000 (00:12 +0200)
committerRémi Denis-Courmont <remi@remlab.net>
Thu, 19 Feb 2015 22:14:50 +0000 (00:14 +0200)
modules/notify/notify.c

index 5ad3247d92c2dffea3ca92c10a6e73b440425164..2c4dfc99c5652d8528568bea2d8ffba4a7b49a7c 100644 (file)
@@ -122,7 +122,7 @@ static int Open( vlc_object_t *p_this )
     }
 
     /* */
-    var_AddCallback( pl_Get( p_intf ), "activity", ItemChange, p_intf );
+    var_AddCallback( pl_Get( p_intf ), "input-current", ItemChange, p_intf );
 
     return VLC_SUCCESS;
 }
@@ -135,7 +135,7 @@ static void Close( vlc_object_t *p_this )
     intf_thread_t   *p_intf = ( intf_thread_t* ) p_this;
     intf_sys_t      *p_sys  = p_intf->p_sys;
 
-    var_DelCallback( pl_Get( p_intf ), "activity", ItemChange, p_this );
+    var_DelCallback( pl_Get( p_intf ), "input-current", ItemChange, p_this );
 
     if( p_sys->notification )
     {
@@ -162,7 +162,7 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
     char           *psz_artist;
     char           *psz_album;
     char           *psz_arturl;
-    input_thread_t *p_input = playlist_CurrentInput( (playlist_t*)p_this );
+    input_thread_t *p_input = newval.p_address;
     intf_thread_t  *p_intf  = param;
     intf_sys_t     *p_sys   = p_intf->p_sys;
 
@@ -170,15 +170,8 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
         return VLC_SUCCESS;
 
     if( p_input->b_dead )
-    {
         /* Not playing anything ... */
-        vlc_object_release( p_input );
         return VLC_SUCCESS;
-    }
-
-    /* Wait a tad so the meta has been fetched
-     * FIXME that's awfully wrong */
-    msleep( 10000 );
 
     /* Playing something ... */
     input_item_t *p_input_item = input_GetItem( p_input );
@@ -188,7 +181,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
     if( EMPTY_STR( psz_title ) )
     {
         free( psz_title );
-        vlc_object_release( p_input );
         return VLC_SUCCESS;
     }
 
@@ -213,7 +205,6 @@ static int ItemChange( vlc_object_t *p_this, const char *psz_var,
 
     GdkPixbuf *pix = NULL;
     psz_arturl = input_item_GetArtURL( p_input_item );
-    vlc_object_release( p_input );
 
     if( psz_arturl )
     {