+/**************************************************************************
+ * State (Public)
+ **************************************************************************/
+libvlc_state_t
+libvlc_media_list_player_get_state( libvlc_media_list_player_t * p_mlp,
+ libvlc_exception_t * p_e )
+{
+ if( !p_mlp->p_mi )
+ return libvlc_Ended;
+ return libvlc_media_player_get_state( p_mlp->p_mi, p_e );
+}
+
+/**************************************************************************
+ * Play item at index (Public)
+ **************************************************************************/
+void libvlc_media_list_player_play_item_at_index(
+ libvlc_media_list_player_t * p_mlp,
+ int i_index,
+ libvlc_exception_t * p_e )
+{
+ set_current_playing_item( p_mlp, libvlc_media_list_path_with_root_index(i_index), p_e );
+
+ if( libvlc_exception_raised( p_e ) )
+ return;
+
+ /* Send the next item event */
+ libvlc_event_t event;
+ event.type = libvlc_MediaListPlayerNextItemSet;
+ libvlc_event_send( p_mlp->p_event_manager, &event );
+
+ libvlc_media_player_play( p_mlp->p_mi, p_e );
+}
+
+/**************************************************************************
+ * Play item (Public)
+ **************************************************************************/
+void libvlc_media_list_player_play_item(
+ libvlc_media_list_player_t * p_mlp,
+ libvlc_media_t * p_md,
+ libvlc_exception_t * p_e )
+{
+ libvlc_media_list_path_t path = libvlc_media_list_path_of_item( p_mlp->p_mlist, p_md );
+ if( !path )
+ {
+ libvlc_exception_raise( p_e, "No such item in media list" );
+ return;
+ }
+ set_current_playing_item( p_mlp, path, p_e );
+
+ if( libvlc_exception_raised( p_e ) )
+ return;
+
+ libvlc_media_player_play( p_mlp->p_mi, p_e );