From: Jean-Paul Saman Date: Sat, 14 Jun 2008 20:30:20 +0000 (+0200) Subject: Make distinction between stop and ended status. X-Git-Tag: 0.9.0-test0~35 X-Git-Url: https://git.sesse.net/?p=vlc;a=commitdiff_plain;h=43a486b582e5aad8ebbe075bcf2071bb8eb72057 Make distinction between stop and ended status. --- diff --git a/include/vlc/libvlc_events.h b/include/vlc/libvlc_events.h index 024c8eef76..cd2acc2cdb 100644 --- a/include/vlc/libvlc_events.h +++ b/include/vlc/libvlc_events.h @@ -52,9 +52,10 @@ typedef enum libvlc_event_type_t { libvlc_MediaPlayerBuffering, libvlc_MediaPlayerPlaying, libvlc_MediaPlayerPaused, - libvlc_MediaPlayerEndReached, + libvlc_MediaPlayerStopped, libvlc_MediaPlayerForward, libvlc_MediaPlayerBackward, + libvlc_MediaPlayerEndReached, libvlc_MediaPlayerEncounteredError, libvlc_MediaPlayerTimeChanged, libvlc_MediaPlayerPositionChanged, diff --git a/include/vlc/libvlc_structures.h b/include/vlc/libvlc_structures.h index 2b33252d35..f2eebd9c63 100644 --- a/include/vlc/libvlc_structures.h +++ b/include/vlc/libvlc_structures.h @@ -125,7 +125,7 @@ typedef struct libvlc_media_player_t libvlc_media_player_t; * * Expected states by web plugins are: * IDLE/CLOSE=0, OPENING=1, BUFFERING=2, PLAYING=3, PAUSED=4, - * STOPPING=5, FORWARD=6, BACKWARD=7, ERROR=8 + * STOPPING=5, FORWARD=6, BACKWARD=7, ENDED=8, ERROR=9 */ typedef enum libvlc_state_t { @@ -134,9 +134,10 @@ typedef enum libvlc_state_t libvlc_Buffering, libvlc_Playing, libvlc_Paused, - libvlc_Ended, + libvlc_Stopped, libvlc_Forward, libvlc_Backward, + libvlc_Ended, libvlc_Error } libvlc_state_t; diff --git a/include/vlc/mediacontrol_structures.h b/include/vlc/mediacontrol_structures.h index af46b64ea2..dbcf5aae5a 100644 --- a/include/vlc/mediacontrol_structures.h +++ b/include/vlc/mediacontrol_structures.h @@ -68,9 +68,9 @@ typedef enum { typedef enum { mediacontrol_UndefinedStatus=0, mediacontrol_InitStatus, mediacontrol_BufferingStatus, mediacontrol_PlayingStatus, - mediacontrol_PauseStatus, mediacontrol_EndStatus, + mediacontrol_PauseStatus, mediacontrol_StopStatus, mediacontrol_ForwardStatus, mediacontrol_BackwardStatus, - mediacontrol_ErrorStatus, + mediacontrol_EndStatus, mediacontrol_ErrorStatus, } mediacontrol_PlayerStatus; /** diff --git a/include/vlc_input.h b/include/vlc_input.h index 0cec28cb91..7e155f7724 100644 --- a/include/vlc_input.h +++ b/include/vlc_input.h @@ -532,9 +532,10 @@ enum input_state_e BUFFERING_S, PLAYING_S, PAUSE_S, - END_S, + STOP_S, FORWARD_S, BACKWARD_S, + END_S, ERROR_S }; diff --git a/modules/control/dbus.c b/modules/control/dbus.c index 6421872087..20e796def5 100644 --- a/modules/control/dbus.c +++ b/modules/control/dbus.c @@ -949,7 +949,7 @@ static int StateChange( vlc_object_t *p_this, const char* psz_var, } if( newval.i_int == PLAYING_S || newval.i_int == PAUSE_S || - newval.i_int == END_S ) + newval.i_int == STOP_S || newval.i_int == END_S ) { StatusChangeSignal( p_sys->p_conn, (void*) p_intf ); } diff --git a/modules/gui/ncurses.c b/modules/gui/ncurses.c index cba2405aa6..91c55c6cbd 100644 --- a/modules/gui/ncurses.c +++ b/modules/gui/ncurses.c @@ -1558,6 +1558,10 @@ static void Redraw( intf_thread_t *p_intf, time_t *t_last_refresh ) { mvnprintw( y++, 0, COLS, _(" State : Playing %s"), psz_state ); } + else if( val.i_int == STOP_S ) + { + mvnprintw( y++, 0, COLS, _(" State : Stopped %s"), psz_state ); + } else if( val.i_int == OPENING_S ) { mvnprintw( y++, 0, COLS, _(" State : Opening/Connecting %s"), psz_state ); diff --git a/src/control/event.c b/src/control/event.c index c22e22a077..dc0d64345b 100644 --- a/src/control/event.c +++ b/src/control/event.c @@ -244,9 +244,10 @@ static const char event_type_to_name[][35] = EVENT(libvlc_MediaPlayerBuffering), EVENT(libvlc_MediaPlayerPlaying), EVENT(libvlc_MediaPlayerPaused), - EVENT(libvlc_MediaPlayerEndReached), + EVENT(libvlc_MediaPlayerStopped), EVENT(libvlc_MediaPlayerForward), EVENT(libvlc_MediaPlayerBackward), + EVENT(libvlc_MediaPlayerEndReached), EVENT(libvlc_MediaPlayerTimeChanged), EVENT(libvlc_MediaPlayerPositionChanged), EVENT(libvlc_MediaPlayerSeekableChanged), diff --git a/src/control/media_list_player.c b/src/control/media_list_player.c index 0c26244c11..6b2bbf9754 100644 --- a/src/control/media_list_player.c +++ b/src/control/media_list_player.c @@ -435,7 +435,7 @@ void libvlc_media_list_player_stop( libvlc_media_list_player_t * p_mlp, { if ( p_mlp->p_mi ) { - libvlc_media_player_stop( p_mlp->p_mi, p_e ); + libvlc_media_player_stop( p_mlp->p_mi, p_e ); } vlc_mutex_lock( &p_mlp->object_lock ); @@ -449,7 +449,7 @@ void libvlc_media_list_player_stop( libvlc_media_list_player_t * p_mlp, **************************************************************************/ 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 ) @@ -457,7 +457,7 @@ void libvlc_media_list_player_next( libvlc_media_list_player_t * p_mlp, 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 ); @@ -471,7 +471,7 @@ void libvlc_media_list_player_next( libvlc_media_list_player_t * 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 ); diff --git a/src/control/media_player.c b/src/control/media_player.c index 9b70266df6..08fb60b729 100644 --- a/src/control/media_player.c +++ b/src/control/media_player.c @@ -56,9 +56,10 @@ static const libvlc_state_t vlc_to_libvlc_state_array[] = [BUFFERING_S] = libvlc_Buffering, [PLAYING_S] = libvlc_Playing, [PAUSE_S] = libvlc_Paused, - [END_S] = libvlc_Ended, + [STOP_S] = libvlc_Stopped, [FORWARD_S] = libvlc_Forward, [BACKWARD_S] = libvlc_Backward, + [END_S] = libvlc_Ended, [ERROR_S] = libvlc_Error, }; @@ -166,9 +167,9 @@ input_state_changed( const vlc_event_t * event, void * p_userdata ) libvlc_media_set_state( p_mi->p_md, libvlc_Paused, NULL); forwarded_event.type = libvlc_MediaPlayerPaused; break; - case END_S: - libvlc_media_set_state( p_mi->p_md, libvlc_Ended, NULL); - forwarded_event.type = libvlc_MediaPlayerEndReached; + case STOP_S: + libvlc_media_set_state( p_mi->p_md, libvlc_Stopped, NULL); + forwarded_event.type = libvlc_MediaPlayerStopped; break; case FORWARD_S: libvlc_media_set_state( p_mi->p_md, libvlc_Forward, NULL); @@ -178,6 +179,9 @@ input_state_changed( const vlc_event_t * event, void * p_userdata ) libvlc_media_set_state( p_mi->p_md, libvlc_Backward, NULL); forwarded_event.type = libvlc_MediaPlayerBackward; break; + case END_S: + libvlc_media_set_state( p_mi->p_md, libvlc_Ended, NULL); + forwarded_event.type = libvlc_MediaPlayerEndReached; case ERROR_S: libvlc_media_set_state( p_mi->p_md, libvlc_Error, NULL); forwarded_event.type = libvlc_MediaPlayerEncounteredError; @@ -350,11 +354,13 @@ libvlc_media_player_new( libvlc_instance_t * p_libvlc_instance, libvlc_event_manager_register_event_type( p_mi->p_event_manager, libvlc_MediaPlayerPaused, p_e ); libvlc_event_manager_register_event_type( p_mi->p_event_manager, - libvlc_MediaPlayerEndReached, p_e ); + libvlc_MediaPlayerStopped, p_e ); libvlc_event_manager_register_event_type( p_mi->p_event_manager, libvlc_MediaPlayerForward, p_e ); libvlc_event_manager_register_event_type( p_mi->p_event_manager, libvlc_MediaPlayerBackward, p_e ); + libvlc_event_manager_register_event_type( p_mi->p_event_manager, + libvlc_MediaPlayerEndReached, p_e ); libvlc_event_manager_register_event_type( p_mi->p_event_manager, libvlc_MediaPlayerEncounteredError, p_e ); diff --git a/src/control/mediacontrol_core.c b/src/control/mediacontrol_core.c index dc5390f6df..8ed878b957 100644 --- a/src/control/mediacontrol_core.c +++ b/src/control/mediacontrol_core.c @@ -376,8 +376,8 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self, case libvlc_Paused: retval->streamstatus = mediacontrol_PauseStatus; break; - case libvlc_Ended: - retval->streamstatus = mediacontrol_EndStatus; + case libvlc_Stopped: + retval->streamstatus = mediacontrol_StopStatus; break; case libvlc_Forward: retval->streamstatus = mediacontrol_ForwardStatus; @@ -385,6 +385,9 @@ mediacontrol_get_stream_information( mediacontrol_Instance *self, case libvlc_Backward: retval->streamstatus = mediacontrol_BackwardStatus; break; + case libvlc_Ended: + retval->streamstatus = mediacontrol_EndStatus; + break; case libvlc_Error: retval->streamstatus = mediacontrol_ErrorStatus; break;