]> git.sesse.net Git - vlc/blobdiff - src/playlist/tree.c
fifo: fix FIFO bytes size computation
[vlc] / src / playlist / tree.c
index 196ab807f05c0e8417b17cc6f818fd8bbaa0df14..9fe3c2406e334dbc5c070f613e0ba6af9045bdee 100644 (file)
@@ -1,24 +1,24 @@
 /*****************************************************************************
  * tree.c : Playlist tree walking functions
  *****************************************************************************
- * Copyright (C) 1999-2007 the VideoLAN team
+ * Copyright (C) 1999-2007 VLC authors and VideoLAN
  * $Id$
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * This program is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as published by
+ * the Free Software Foundation; either version 2.1 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * You should have received a copy of the GNU Lesser General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 #ifdef HAVE_CONFIG_H
 # include "config.h"
@@ -67,8 +67,8 @@ playlist_item_t * playlist_NodeCreate( playlist_t *p_playlist,
     if( !psz_name ) psz_name = _("Undefined");
 
     if( !p_input )
-        p_new_input = input_item_NewWithType( VLC_OBJECT(p_playlist), NULL,
-                                        psz_name, 0, NULL, 0, -1, ITEM_TYPE_NODE );
+        p_new_input = input_item_NewWithType( NULL, psz_name, 0, NULL, 0, -1,
+                                              ITEM_TYPE_NODE );
     p_item = playlist_ItemNewFromInput( p_playlist,
                                         p_input ? p_input : p_new_input );
     if( p_new_input )
@@ -141,60 +141,52 @@ int playlist_NodeDelete( playlist_t *p_playlist, playlist_item_t *p_root,
                          bool b_delete_items, bool b_force )
 {
     PL_ASSERT_LOCKED;
-    int i;
 
     /* Delete the children */
-    for( i = p_root->i_children - 1 ; i >= 0; i-- )
-    {
-        if( b_delete_items || p_root->pp_children[i]->i_children > -1 )
-        {
+    for( int i = p_root->i_children - 1 ; i >= 0; i-- )
+        if( b_delete_items || p_root->pp_children[i]->i_children >= 0 )
             playlist_NodeDelete( p_playlist, p_root->pp_children[i],
                                  b_delete_items, b_force );
-        }
-    }
+
     /* Delete the node */
     if( p_root->i_flags & PLAYLIST_RO_FLAG && !b_force )
-    {
-    }
-    else
-    {
-        pl_priv(p_playlist)->b_reset_currently_playing = true;
-
-        int i;
-        var_SetInteger( p_playlist, "playlist-item-deleted", p_root->i_id );
-        ARRAY_BSEARCH( p_playlist->all_items, ->i_id, int,
-                       p_root->i_id, i );
-        if( i != -1 )
-            ARRAY_REMOVE( p_playlist->all_items, i );
+        return VLC_SUCCESS;
 
-        if( p_root->i_children == -1 ) {
-            ARRAY_BSEARCH( p_playlist->items,->i_id, int, p_root->i_id, i );
-            if( i != -1 )
-                ARRAY_REMOVE( p_playlist->items, i );
-        }
+    pl_priv(p_playlist)->b_reset_currently_playing = true;
 
-        /* Check if it is the current item */
-        if( get_current_status_item( p_playlist ) == p_root )
-        {
-            /* Stop */
-            playlist_Control( p_playlist, PLAYLIST_STOP, pl_Locked );
-            msg_Info( p_playlist, "stopping playback" );
-            /* This item can't be the next one to be played ! */
-            set_current_status_item( p_playlist, NULL );
-        }
+    int i;
+    var_SetInteger( p_playlist, "playlist-item-deleted", p_root->i_id );
+    ARRAY_BSEARCH( p_playlist->all_items, ->i_id, int, p_root->i_id, i );
+    if( i != -1 )
+        ARRAY_REMOVE( p_playlist->all_items, i );
 
-        ARRAY_BSEARCH( p_playlist->current,->i_id, int, p_root->i_id, i );
+    if( p_root->i_children == -1 ) {
+        ARRAY_BSEARCH( p_playlist->items,->i_id, int, p_root->i_id, i );
         if( i != -1 )
-            ARRAY_REMOVE( p_playlist->current, i );
+            ARRAY_REMOVE( p_playlist->items, i );
+    }
 
-        PL_DEBUG( "deleting item `%s'", p_root->p_input->psz_name );
+    /* Check if it is the current item */
+    if( get_current_status_item( p_playlist ) == p_root )
+    {
+        /* Stop */
+        playlist_Control( p_playlist, PLAYLIST_STOP, pl_Locked );
+        msg_Info( p_playlist, "stopping playback" );
+        /* This item can't be the next one to be played ! */
+        set_current_status_item( p_playlist, NULL );
+    }
 
-        /* Remove the item from its parent */
-        if( p_root->p_parent )
-            playlist_NodeRemoveItem( p_playlist, p_root, p_root->p_parent );
+    ARRAY_BSEARCH( p_playlist->current,->i_id, int, p_root->i_id, i );
+    if( i != -1 )
+        ARRAY_REMOVE( p_playlist->current, i );
 
-        playlist_ItemRelease( p_root );
-    }
+    PL_DEBUG( "deleting item `%s'", p_root->p_input->psz_name );
+
+    /* Remove the item from its parent */
+    if( p_root->p_parent )
+        playlist_NodeRemoveItem( p_playlist, p_root, p_root->p_parent );
+
+    playlist_ItemRelease( p_root );
     return VLC_SUCCESS;
 }
 
@@ -331,7 +323,7 @@ playlist_item_t *playlist_GetNextLeaf( playlist_t *p_playlist,
         {
             if( b_ena && p_next->i_flags & PLAYLIST_DBL_FLAG )
                 b_ena_ok = false;
-            if( b_unplayed && p_next->p_input->i_nb_played != 0 )
+            if( b_unplayed && p_next->i_nb_played != 0 )
                 b_unplayed_ok = false;
             if( b_ena_ok && b_unplayed_ok ) break;
         }
@@ -372,7 +364,7 @@ playlist_item_t *playlist_GetPrevLeaf( playlist_t *p_playlist,
         {
             if( b_ena && p_prev->i_flags & PLAYLIST_DBL_FLAG )
                 b_ena_ok = false;
-            if( b_unplayed && p_prev->p_input->i_nb_played != 0 )
+            if( b_unplayed && p_prev->i_nb_played != 0 )
                 b_unplayed_ok = false;
             if( b_ena_ok && b_unplayed_ok ) break;
         }