install_media_player_observer( libvlc_media_list_player_t * p_mlp )
{
libvlc_event_attach( libvlc_media_player_event_manager( p_mlp->p_mi, NULL ),
- libvlc_MediaInstanceEndReached,
+ libvlc_MediaPlayerEndReached,
media_player_reached_end, p_mlp, NULL );
}
}
libvlc_event_detach( libvlc_media_player_event_manager( p_mlp->p_mi, NULL ),
- libvlc_MediaInstanceEndReached,
+ libvlc_MediaPlayerEndReached,
media_player_reached_end, p_mlp, NULL );
}
p_mlp->current_playing_item_path = NULL;
p_mlp->p_mi = NULL;
p_mlp->p_mlist = NULL;
- vlc_mutex_init( p_instance->p_libvlc_int, &p_mlp->object_lock );
+ vlc_mutex_init( &p_mlp->object_lock );
p_mlp->p_event_manager = libvlc_event_manager_new( p_mlp,
p_instance,
p_e );
{
libvlc_state_t state = libvlc_media_player_get_state( p_mlp->p_mi, p_e );
return (state == libvlc_Opening) || (state == libvlc_Buffering) ||
+ (state == libvlc_Forward) || (state == libvlc_Backward) ||
(state == libvlc_Playing);
}
libvlc_exception_t * p_e )
{
if( !p_mlp->p_mi )
- return libvlc_Stopped;
+ return libvlc_Ended;
return libvlc_media_player_get_state( p_mlp->p_mi, p_e );
}
{
if ( p_mlp->p_mi )
{
- libvlc_media_player_stop( p_mlp->p_mi, p_e );
+ /* We are not interested in getting media stop event now */
+ uninstall_media_player_observer( p_mlp );
+ libvlc_media_player_stop( p_mlp->p_mi, p_e );
+ install_media_player_observer( p_mlp );
}
vlc_mutex_lock( &p_mlp->object_lock );
**************************************************************************/
void libvlc_media_list_player_next( libvlc_media_list_player_t * p_mlp,
libvlc_exception_t * p_e )
-{
+{
libvlc_media_list_path_t path;
if (! p_mlp->p_mlist )
libvlc_exception_raise( p_e, "No more element to play" );
return;
}
-
+
libvlc_media_list_lock( p_mlp->p_mlist );
path = get_next_path( p_mlp );
}
set_current_playing_item( p_mlp, path, p_e );
-
+
libvlc_media_player_play( p_mlp->p_mi, p_e );
libvlc_media_list_unlock( p_mlp->p_mlist );