- assert( PL );
- if( playlist_Control( PL, PLAYLIST_STOP,
- playlist_was_locked( p_instance ) ) != VLC_SUCCESS )
- RAISEVOID( "Empty playlist" );
-}
-
-void libvlc_playlist_clear( libvlc_instance_t *p_instance,
- libvlc_exception_t *p_e )
-{
- assert( PL );
- playlist_Clear( PL, playlist_was_locked( p_instance ) );
-}
-
-void libvlc_playlist_next( libvlc_instance_t *p_instance,
- libvlc_exception_t *p_e )
-{
- assert( PL );
- if( playlist_Control( PL, PLAYLIST_SKIP, playlist_was_locked( p_instance ),
- 1 ) != VLC_SUCCESS )
- RAISEVOID( "Empty playlist" );
-}
-
-void libvlc_playlist_prev( libvlc_instance_t *p_instance,
- libvlc_exception_t *p_e )
-{
- if( playlist_Control( PL, PLAYLIST_SKIP, playlist_was_locked( p_instance ),
- -1 ) != VLC_SUCCESS )
- RAISEVOID( "Empty playlist" );
-}
-
-int libvlc_playlist_add( libvlc_instance_t *p_instance, const char *psz_uri,
- const char *psz_name, libvlc_exception_t *p_e )
-{
- return libvlc_playlist_add_extended( p_instance, psz_uri, psz_name,
- 0, NULL, p_e );
-}
-
-int libvlc_playlist_add_extended( libvlc_instance_t *p_instance,
- const char *psz_uri, const char *psz_name,
- int i_options, const char **ppsz_options,
- libvlc_exception_t *p_e )
-{
- assert( PL );
- if( playlist_was_locked( p_instance ) )
- {
- libvlc_exception_raise( p_e, "You must unlock playlist before "
- "calling libvlc_playlist_add" );
- return VLC_EGENERIC;
- }
- return playlist_AddExt( PL, psz_uri, psz_name,
- PLAYLIST_INSERT, PLAYLIST_END, -1, ppsz_options,
- i_options, 1, VLC_FALSE );
-}
-
-
-int libvlc_playlist_delete_item( libvlc_instance_t *p_instance, int i_id,
- libvlc_exception_t *p_e )
-{
- assert( PL );
-
- if( playlist_DeleteFromInput( PL, i_id,
- playlist_was_locked( p_instance ) ) )
- {
- libvlc_exception_raise( p_e, "deletion failed" );
- return VLC_ENOITEM;
- }
- return VLC_SUCCESS;
-}
-
-int libvlc_playlist_isplaying( libvlc_instance_t *p_instance,
- libvlc_exception_t *p_e )
-{
- assert( PL );
- return playlist_IsPlaying( PL );
-}
-
-int libvlc_playlist_items_count( libvlc_instance_t *p_instance,
- libvlc_exception_t *p_e )
-{
- assert( PL );
- return playlist_CurrentSize( PL );
-}
-
-void libvlc_playlist_lock( libvlc_instance_t *p_instance )
-{
- assert( PL );
- vlc_mutex_lock( &PL->object_lock );
- p_instance->b_playlist_locked = 1;
-}
-
-void libvlc_playlist_unlock( libvlc_instance_t *p_instance )
-{
- assert( PL );
- p_instance->b_playlist_locked = 0;
- vlc_mutex_unlock( &PL->object_lock );
-}
-
-
-
-libvlc_input_t * libvlc_playlist_get_input( libvlc_instance_t *p_instance,
- libvlc_exception_t *p_e )
-{
- libvlc_input_t *p_input;
- assert( PL );
-
- vlc_mutex_lock( &PL->object_lock );
- if( PL->p_input == NULL )
- {
- libvlc_exception_raise( p_e, "No active input" );
- vlc_mutex_unlock( &PL->object_lock );
- return NULL;
- }
- p_input = (libvlc_input_t *)malloc( sizeof( libvlc_input_t ) );
-
- p_input->i_input_id = PL->p_input->i_object_id;
- p_input->p_instance = p_instance;
- vlc_mutex_unlock( &PL->object_lock );