X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finput%2Fcontrol.c;h=061d8ccf88a1998543cee2f85ec77c223d75949e;hb=688f0a8d8913f20ac5d3e27bf4f2bbe35c9f5de7;hp=50e196fb53e89ba4df5bda3b5414c994ba32ef84;hpb=d01611b8bf53f270ba24762b2db465ea38b196bb;p=vlc diff --git a/src/input/control.c b/src/input/control.c index 50e196fb53..061d8ccf88 100644 --- a/src/input/control.c +++ b/src/input/control.c @@ -31,11 +31,9 @@ #include #include "input_internal.h" -#include "vlc_playlist.h" static void UpdateBookmarksOption( input_thread_t * ); -static void NotifyPlaylist( input_thread_t * ); /**************************************************************************** * input_Control @@ -201,7 +199,6 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) if( !p_input->b_preparsing ) { - NotifyPlaylist( p_input ); vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_input->p->input.p_item->event_manager, &event ); @@ -273,7 +270,6 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) if( !p_input->b_preparsing ) { - NotifyPlaylist( p_input ); vlc_event_t event; event.type = vlc_InputItemInfoChanged; vlc_event_send( &p_input->p->input.p_item->event_manager, &event ); @@ -309,7 +305,6 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) if( !p_input->b_preparsing ) { - NotifyPlaylist( p_input ); vlc_event_t event; event.type = vlc_InputItemNameChanged; event.u.input_item_name_changed.new_name = psz_name; @@ -610,48 +605,39 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) } } -static void NotifyPlaylist( input_thread_t *p_input ) -{ - /* FIXME: We need to avoid that dependency on the playlist - * because it is a circular dependency: - * ( playlist -> input -> playlist ) */ - playlist_t *p_playlist = pl_Yield( p_input ); - if( VLC_OBJECT(p_playlist) == p_input->p_parent ) - var_SetInteger( p_playlist, "item-change", - p_input->p->input.p_item->i_id ); - pl_Release( p_input ); -} - static void UpdateBookmarksOption( input_thread_t *p_input ) { int i, i_len = 0; char *psz_value = NULL, *psz_next = NULL; vlc_mutex_lock( &p_input->p->input.p_item->lock ); - for( i = 0; i < p_input->p->i_bookmark; i++ ) - { - i_len += snprintf( NULL, 0, "{name=%s,bytes=%"PRId64",time=%"PRId64"}", - p_input->p->bookmark[i]->psz_name, - p_input->p->bookmark[i]->i_byte_offset, - p_input->p->bookmark[i]->i_time_offset/1000000 ); - } - for( i = 0; i < p_input->p->i_bookmark; i++ ) + if( p_input->p->i_bookmark > 0 ) { - if( !i ) psz_value = psz_next = malloc( i_len + p_input->p->i_bookmark ); - - sprintf( psz_next, "{name=%s,bytes=%"PRId64",time=%"PRId64"}", - p_input->p->bookmark[i]->psz_name, - p_input->p->bookmark[i]->i_byte_offset, - p_input->p->bookmark[i]->i_time_offset/1000000 ); + for( i = 0; i < p_input->p->i_bookmark; i++ ) + { + i_len += snprintf( NULL, 0, "{name=%s,bytes=%"PRId64",time=%"PRId64"}", + p_input->p->bookmark[i]->psz_name, + p_input->p->bookmark[i]->i_byte_offset, + p_input->p->bookmark[i]->i_time_offset/1000000 ); + } + psz_value = psz_next = malloc( i_len + p_input->p->i_bookmark ); - psz_next += strlen( psz_next ); - if( i < p_input->p->i_bookmark - 1) + for( i = 0; i < p_input->p->i_bookmark; i++ ) { - *psz_next = ','; psz_next++; + sprintf( psz_next, "{name=%s,bytes=%"PRId64",time=%"PRId64"}", + p_input->p->bookmark[i]->psz_name, + p_input->p->bookmark[i]->i_byte_offset, + p_input->p->bookmark[i]->i_time_offset/1000000 ); + + psz_next += strlen( psz_next ); + if( i < p_input->p->i_bookmark - 1) + *psz_next = ','; psz_next++; } } vlc_mutex_unlock( &p_input->p->input.p_item->lock ); input_Control( p_input, INPUT_ADD_OPTION, "bookmarks", psz_value ? psz_value : "" ); + free( psz_value ); } +