]> git.sesse.net Git - vlc/blobdiff - include/vlc_playlist.h
macosx: No need to use FREENULL here.
[vlc] / include / vlc_playlist.h
index e03027baa424e787f371e42295fadf298d61d81e..39e464c7b2bb836e92868b2fa738c95874037511 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_
 
@@ -254,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
  *****************************************************************************/
@@ -288,6 +294,10 @@ VLC_EXPORT( void, __pl_Release, ( vlc_object_t * ) );
  */
 VLC_EXPORT( int, playlist_Control, ( playlist_t *p_playlist, int i_query, bool b_locked, ...  ) );
 
+/** Get current playing input. The object is retained.
+ */
+VLC_EXPORT( input_thread_t *, playlist_CurrentInput, ( playlist_t *p_playlist ) );
+
 /** Clear the playlist
  * \param b_locked TRUE if playlist is locked when entering this function
  */
@@ -405,14 +415,22 @@ static inline int playlist_Import( playlist_t *p_playlist, const char *psz_file)
     return VLC_SUCCESS;
 }
 
+
 /** Tell if the playlist is currently running */
-#define playlist_IsPlaying( pl ) ( pl->status.i_status == PLAYLIST_RUNNING )
+#define playlist_IsPlaying( pl ) ( pl->status.i_status == PLAYLIST_RUNNING && \
+            !(pl->request.b_request && pl->request.i_status == PLAYLIST_STOPPED) )
+
+#define playlist_IsStopped( pl ) ( pl->status.i_status == PLAYLIST_STOPPED || \
+            (pl->request.b_request && pl->request.i_status == PLAYLIST_STOPPED) )
 
 /** Tell if the playlist is empty */
 #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 )