- p_input->i_input_id = p_instance->p_playlist->p_input->i_object_id;
- p_input->p_instance = p_instance;
- vlc_mutex_unlock( &p_instance->p_playlist->object_lock );
+ assert( PL );
+ if( !PL->status.p_item )
+ return -1;
+ return playlist_CurrentId( PL );
+}
+
+void libvlc_playlist_lock( libvlc_instance_t *p_instance )
+{
+ assert( PL );
+ vlc_object_lock( PL );
+ p_instance->b_playlist_locked = 1;
+}
+
+void libvlc_playlist_unlock( libvlc_instance_t *p_instance )
+{
+ assert( PL );
+ p_instance->b_playlist_locked = 0;
+ vlc_object_unlock( PL );
+}
+
+libvlc_media_player_t * libvlc_playlist_get_media_player(
+ libvlc_instance_t *p_instance,
+ libvlc_exception_t *p_e )
+{
+ libvlc_media_player_t *p_mi;
+ assert( PL );
+
+ vlc_object_lock( PL );
+ if( PL->p_input )
+ {
+ p_mi = libvlc_media_player_new_from_input_thread(
+ p_instance, PL->p_input, p_e );
+ }
+ else
+ {
+ /* no active input */
+ p_mi = NULL;
+ libvlc_exception_raise( p_e, "No active input" );
+ }
+ vlc_object_unlock( PL );