X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=src%2Finput%2Fcontrol.c;h=1e286f8b41f12fb6eadea8d90cfb7f29c5843c2f;hb=aa407ea9ca0beca090021e1bc26c4d9f84f003df;hp=d29229ac87889e66202e85a1cd661174dfce84aa;hpb=c21f918405085ffadcaea9d7554d854cbb6efb10;p=vlc diff --git a/src/input/control.c b/src/input/control.c index d29229ac87..1e286f8b41 100644 --- a/src/input/control.c +++ b/src/input/control.c @@ -63,6 +63,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) int *pi_bkmk; int i_int, *pi_int; + bool b_bool, *pb_bool; double f, *pf; int64_t i_64, *pi_64; @@ -132,7 +133,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) case INPUT_ADD_INFO: { - /* FIXME : Impossible to use input_ItemAddInfo because of + /* FIXME : Impossible to use input_item_AddInfo because of * the ... problem ? */ char *psz_cat = (char *)va_arg( args, char * ); char *psz_name = (char *)va_arg( args, char * ); @@ -286,7 +287,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) int i_ret = VLC_EGENERIC; *ppsz_value = NULL; - *ppsz_value = input_ItemGetInfo( p_input->p->input.p_item, + *ppsz_value = input_item_GetInfo( p_input->p->input.p_item, psz_cat, psz_name ); return i_ret; } @@ -515,7 +516,7 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) if( asprintf( &str, "%s=%s", psz_option, psz_value ) == -1 ) return VLC_ENOMEM; - i = input_ItemAddOpt( p_input->p->input.p_item, str, + i = input_item_AddOpt( p_input->p->input.p_item, str, VLC_INPUT_OPTION_UNIQUE ); free( str ); return i; @@ -598,6 +599,15 @@ int input_vaControl( input_thread_t *p_input, int i_query, va_list args ) return VLC_EGENERIC; } + case INPUT_SET_RECORD_STATE: + b_bool = (bool)va_arg( args, int ); + var_SetBool( p_input, "record", b_bool ); + return VLC_SUCCESS; + + case INPUT_GET_RECORD_STATE: + pb_bool = (bool*)va_arg( args, bool* ); + *pb_bool = var_GetBool( p_input, "record" ); + return VLC_SUCCESS; default: msg_Err( p_input, "unknown query in input_vaControl" ); @@ -611,30 +621,33 @@ static void UpdateBookmarksOption( input_thread_t *p_input ) 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 ); } +