]> git.sesse.net Git - vlc/blobdiff - include/vlc_playlist.h
Fix potential segfault.
[vlc] / include / vlc_playlist.h
index 3444c9774a66523c1be525a262c41b1ba9390998..4983b0b697d92312b534248999eaf648e5c82fd5 100644 (file)
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
-#if !defined( __LIBVLC__ )
-  #error You are not libvlc or one of its plugins. You cannot include this file
-#endif
-
 #ifndef _VLC_PLAYLIST_H_
 #define _VLC_PLAYLIST_H_
 
@@ -170,8 +166,6 @@ struct playlist_t
     } ** pp_sds;
     int                   i_sds;   /**< Number of service discovery modules */
 
-    int                   i_enabled; /**< How many items are enabled ? */
-
     playlist_item_array_t items; /**< Arrays of items */
     playlist_item_array_t all_items; /**< Array of items and nodes */
 
@@ -191,8 +185,7 @@ struct playlist_t
     playlist_item_t *     p_local_onelevel; /** < "Playlist" in ONELEVEL view */
     playlist_item_t *     p_ml_onelevel; /** < "Library" in ONELEVEL view */
 
-    bool            b_always_tree;/**< Always display as tree */
-    bool            b_never_tree;/**< Never display as tree */
+    bool                  b_tree; /**< Display as a tree */
 
     bool            b_doing_ml; /**< Doing media library stuff,
                                        * get quicker */
@@ -257,6 +250,16 @@ struct playlist_add_t
 #define ORDER_NORMAL 0
 #define ORDER_REVERSE 1
 
+/* Used by playlist_Import */
+#define PLAYLIST_INSERT          0x0001
+#define PLAYLIST_APPEND          0x0002
+#define PLAYLIST_GO              0x0004
+#define PLAYLIST_PREPARSE        0x0008
+#define PLAYLIST_SPREPARSE       0x0010
+#define PLAYLIST_NO_REBUILD      0x0020
+
+#define PLAYLIST_END           -666
+
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
@@ -265,8 +268,6 @@ struct playlist_add_t
 #define PL_LOCK vlc_object_lock( p_playlist )
 #define PL_UNLOCK vlc_object_unlock( p_playlist )
 
-#define pl_Get( a ) a->p_libvlc->p_playlist
-
 VLC_EXPORT( playlist_t *, __pl_Yield, ( vlc_object_t * ) );
 #define pl_Yield( a ) __pl_Yield( VLC_OBJECT(a) )
 
@@ -366,10 +367,6 @@ VLC_EXPORT( int, playlist_BothAddInput, ( playlist_t *, input_item_t *,playlist_
 /********************** Misc item operations **********************/
 VLC_EXPORT( playlist_item_t*, playlist_ItemToNode, (playlist_t *,playlist_item_t *, bool) );
 
-playlist_item_t *playlist_ItemFindFromInputAndRoot( playlist_t *p_playlist,
-                                   int i_input_id, playlist_item_t *p_root,
-                                   bool );
-
 /********************************** Item search *************************/
 VLC_EXPORT( playlist_item_t *, playlist_ItemGetById, (playlist_t *, int, bool ) );
 VLC_EXPORT( playlist_item_t *, playlist_ItemGetByInput, (playlist_t *,input_item_t *, bool ) );
@@ -421,7 +418,10 @@ static inline int playlist_Import( playlist_t *p_playlist, const char *psz_file)
 #define playlist_IsEmpty( pl ) ( pl->items.i_size == 0 )
 
 /** Tell the number of items in the current playing context */
-#define playlist_CurrentSize( obj ) obj->p_libvlc->p_playlist->current.i_size
+#define playlist_CurrentSize( pl ) pl->current.i_size
+
+/** Tell the current item id in current  playing context */
+#define playlist_CurrentId( pl ) pl->status.p_item->i_id
 
 /** Ask the playlist to do some work */
 #define playlist_Signal( p_playlist ) vlc_object_signal( p_playlist )