#define VLC_VAR_GETCHOICES 0x0024
#define VLC_VAR_FREECHOICES 0x0025
#define VLC_VAR_GETLIST 0x0026
-#define VLC_VAR_FREELIST 0x0027
-#define VLC_VAR_CHOICESCOUNT 0x0028
+#define VLC_VAR_CHOICESCOUNT 0x0027
#define VLC_VAR_INHERITVALUE 0x0030
#define var_Command(a,b,c,d,e) __var_Command( VLC_OBJECT( a ), b, c, d, e )
VLC_EXPORT( int, __var_Command, ( vlc_object_t *, const char *, const char *, const char *, char ** ) );
+VLC_EXPORT( void, var_FreeList, ( vlc_value_t *, vlc_value_t * ) );
+
/**
* __var_Create() with automatic casting.
*/
psz_parser = ( *psz_delim ) ? ( psz_delim + 1 ) : psz_delim;
}
}
- var_Change( p_obj, "allcontrols", VLC_VAR_FREELIST, &val, &text );
+ var_FreeList( &val, &text );
}
/*****************************************************************************
_("Aspect ratio: %s"),
text_list.p_list->p_values[i].psz_string );
- var_Change( p_vout, "aspect-ratio", VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
free( val.psz_string );
}
_("Crop: %s"),
text_list.p_list->p_values[i].psz_string );
- var_Change( p_vout, "crop", VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
free( val.psz_string );
}
_("Deinterlace mode: %s"),
text_list.p_list->p_values[i].psz_string );
- var_Change( p_vout, "deinterlace", VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
free( val.psz_string );
}
_("Zoom mode: %s"),
text_list.p_list->p_values[i].var.psz_name );
- var_Change( p_vout, "zoom", VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
}
else if( i_action == ACTIONID_CROP_TOP && p_vout )
}
/* clean up everything */
if( (i_type & VLC_VAR_TYPE) == VLC_VAR_STRING ) free( val.psz_string );
- var_Change( p_sys->p_input, psz_variable, VLC_VAR_FREELIST, &val_list,
- &text_list );
+ var_FreeList( &val_list, &text_list );
return s;
}
&val_list, NULL );
msg_rc( "Currently playing chapter %d/%d.",
val.i_int, val_list.p_list->i_count );
- var_Change( p_this, "chapter", VLC_VAR_FREELIST,
- &val_list, NULL );
+ var_FreeList( &val_list, NULL );
}
}
else if( !strcmp( psz_cmd, "chapter_n" ) )
&val_list, NULL );
msg_rc( "Currently playing title %d/%d.",
val.i_int, val_list.p_list->i_count );
- var_Change( p_this, "title", VLC_VAR_FREELIST,
- &val_list, NULL );
+ var_FreeList( &val_list, NULL );
}
}
else if( !strcmp( psz_cmd, "title_n" ) )
msg_rc( "| %i - %s", val.p_list->p_values[i].i_int,
text.p_list->p_values[i].psz_string );
}
- var_Change( p_input, psz_variable, VLC_VAR_FREELIST,
- &val, &text );
+ var_FreeList( &val, &text );
msg_rc( "+----[ end of %s ]", val_name.psz_string );
free( val_name.psz_string );
}
free( psz_value );
}
- var_Change( p_vout, psz_variable, VLC_VAR_FREELIST,
- &val, &text );
+ var_FreeList( &val, &text );
msg_rc( "+----[ end of %s ]", val_name.psz_string );
free( val_name.psz_string );
msg_rc( "| %i - %s", val.p_list->p_values[i].i_int,
text.p_list->p_values[i].psz_string );
}
- var_Change( (vlc_object_t *)p_aout, psz_variable, VLC_VAR_FREELIST,
- &val, &text );
+ var_FreeList( &val, &text );
msg_rc( "+----[ end of %s ]", val_name.psz_string );
free( val_name.psz_string );
{
vlc_value_t val;
val.p_list = p_sys->p_programs_list;
- var_Change( p_demux, "programs", VLC_VAR_FREELIST, &val, NULL );
+ var_FreeList( &val, NULL );
}
/* If in dump mode, then close the file */
&val_list, NULL );
if( val_list.p_list->i_count > val.i_int )
{
- var_Change( p_input, "chapter", VLC_VAR_FREELIST,
- &val_list, NULL );
+ var_FreeList( &val_list, NULL );
var_SetVoid( p_input, "next-chapter" );
break;
}
- var_Change( p_input, "chapter", VLC_VAR_FREELIST,
- &val_list, NULL );
+ var_FreeList( &val_list, NULL );
}
/* Try to go to next title */
&val_list, NULL );
if( val_list.p_list->i_count > val.i_int )
{
- var_Change( p_input, "title", VLC_VAR_FREELIST,
- &val_list, NULL );
+ var_FreeList( &val_list, NULL );
var_SetVoid( p_input, "next-title" );
break;
}
- var_Change( p_input, "title", VLC_VAR_FREELIST,
- &val_list, NULL );
+ var_FreeList( &val_list, NULL );
}
/* Try to go to next file */
}
AddItem( item );
}
- var_Change( p_input, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
vlc_object_release( p_input );
AddItem( item );
}
- var_Change( p_input, "title", VLC_VAR_FREELIST,
- &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
vlc_object_release( p_input );
BMenu::AttachedToWindow();
AddItem( item );
}
- var_Change( p_input, "chapter", VLC_VAR_FREELIST,
- &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
vlc_object_release( p_input );
BMenu::AttachedToWindow();
/* clean up everything */
if( (i_type & VLC_VAR_TYPE) == VLC_VAR_STRING ) free( val.psz_string );
- var_Change( p_object, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
}
- (IBAction)toggleVar:(id)sender
{
mvnprintw( y++, 0, COLS, _(" Title : %d/%d"), val.i_int, val_list.p_list->i_count );
}
- var_Change( p_input, "title", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
}
/* Chapter */
{
mvnprintw( y++, 0, COLS, _(" Chapter : %d/%d"), val.i_int, val_list.p_list->i_count );
}
- var_Change( p_input, "chapter", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
}
}
else
if( i_val == val2.p_list->p_values[j].i_int )
combobox->setCurrentIndex( j );
}
- var_Change( p_obj, psz_var, VLC_VAR_FREELIST,
- &val2, &text2 );
+ var_FreeList( &val2, &text2 );
CONNECT( combobox, currentIndexChanged( int ), this,
ValueChange( int ) );
}
free( name.psz_string );
}
- var_Change( p_obj, "controls", VLC_VAR_FREELIST, &val, &text );
+ var_FreeList( &val, &text );
vlc_object_release( p_obj );
}
else
if( !strcmp( text.p_list->p_values[i].psz_string, "Title" ) )
root = i;
}
- var_Change( p_input, "title 0", VLC_VAR_FREELIST, &val, &text );
+ var_FreeList( &val, &text );
var_SetInteger( p_input, "title 0", root );
}
i = 0;
var_SetInteger( p_input, "spu-es", b_enable ? list.p_list->p_values[i].i_int : -1 );
}
- var_Change( p_input, "teletext-es", VLC_VAR_FREELIST, &list, &text );
+ var_FreeList( &list, &text );
}
}
}
/* clean up everything */
- var_Change( p_object, psz_var, VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
return i_result;
}
currentGroup = NULL;
/* clean up everything */
- var_Change( p_object, psz_var, VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
#undef CURVAL
#undef CURTEXT
/* Clean up everything */
if( (i_type & VLC_VAR_TYPE) == VLC_VAR_STRING ) free( val.psz_string );
- var_Change( p_object, psz_var, VLC_VAR_FREELIST, &val_list, &text_list );
+ var_FreeList( &val_list, &text_list );
return hSubMenu;
}
if( i_ret < 0 ) return vlclua_push_ret( L, i_ret );
vlclua_pushvalue( L, VLC_VAR_LIST, val );
vlclua_pushvalue( L, VLC_VAR_LIST, text );
- var_Change( *pp_obj, psz_var, VLC_VAR_FREELIST, &val, &text );
+ var_FreeList( &val, &text );
return 2;
}
{
printf( "value %i: %s\n", i, val.p_list->p_values[i].psz_string );
}
- var_Change( p_this, "honk", VLC_VAR_FREELIST, &val, NULL );
+ var_FreeList( &val, NULL );
var_Destroy( p_this, "honk" );
var_Change( p_input_thread, "audio-es", VLC_VAR_GETCHOICES, &val_list, NULL );
i_track_count = val_list.p_list->i_count;
- var_Change( p_input_thread, "audio-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
return i_track_count;
break;
}
}
- var_Change( p_input_thread, "audio-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
return i_track;
}
libvlc_exception_raise( p_e, "Setting audio track failed" );
end:
- var_Change( p_input_thread, "audio-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
}
if( val_list.p_list->i_count <= 0 ) /* no tracks */
{
- var_Change( p_input, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list);
+ var_FreeList( &val_list, &text_list);
return NULL;
}
malloc( sizeof( libvlc_track_description_t ) );
if ( !p_track_description )
{
- var_Change( p_input, psz_variable, VLC_VAR_FREELIST,
- &val_list, &text_list);
+ var_FreeList( &val_list, &text_list);
vlc_object_release( p_input );
libvlc_exception_raise( p_e, "no enough memory" );
return NULL;
if ( !p_actual )
{
libvlc_track_description_release( p_track_description );
- var_Change( p_input, psz_variable, VLC_VAR_FREELIST,
- &val_list, &text_list);
+ var_FreeList( &val_list, &text_list);
vlc_object_release( p_input );
libvlc_exception_raise( p_e, "no enough memory" );
return NULL;
p_previous = p_actual;
p_actual = NULL;
}
- var_Change( p_input, psz_variable, VLC_VAR_FREELIST, &val_list, &text_list);
+ var_FreeList( &val_list, &text_list);
vlc_object_release( p_input );
return p_track_description;
break;
}
}
- var_Change( p_input_thread, "spu-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
return i_spu;
}
var_Change( p_input_thread, "spu-es", VLC_VAR_GETCHOICES, &val_list, NULL );
i_spu_count = val_list.p_list->i_count;
- var_Change( p_input_thread, "spu-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
return i_spu_count;
}
end:
- var_Change( p_input_thread, "spu-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
}
if( list.p_list->i_count > 0 )
var_SetInteger( p_input_thread, "spu-es", list.p_list->p_values[0].i_int );
- var_Change( p_input_thread, "teletext-es", VLC_VAR_FREELIST, &list, NULL );
+ var_FreeList( &list, NULL );
}
}
vlc_object_release( p_input_thread );
var_Change( p_input_thread, "video-es", VLC_VAR_GETCHOICES, &val_list, NULL );
i_track_count = val_list.p_list->i_count;
- var_Change( p_input_thread, "video-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
return i_track_count;
break;
}
}
- var_Change( p_input_thread, "video-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
return i_track;
}
libvlc_exception_raise( p_e, "Video track out of range" );
end:
- var_Change( p_input_thread, "video-es", VLC_VAR_FREELIST, &val_list, NULL );
+ var_FreeList( &val_list, NULL );
vlc_object_release( p_input_thread );
}
break;
}
}
- var_Change( p_sys->p_input, "programs", VLC_VAR_FREELIST, &val, NULL );
+ var_FreeList( &val, NULL );
}
else if( p_sys->i_mode == ES_OUT_MODE_AUTO )
{
}
else
{
- var_Change( p_input, "programs", VLC_VAR_FREELIST, &val, NULL );
+ var_FreeList( &val, NULL );
}
}
}
{
demux_Control( p_input->p->input.p_demux, DEMUX_SET_GROUP, -1,
val.p_list );
- var_Change( p_input, "programs", VLC_VAR_FREELIST, &val, NULL );
+ var_FreeList( &val, NULL );
}
else
{
es_out_Control( p_input->p->p_es_out_display, ES_OUT_SET_ES_DEFAULT_BY_ID, i_id );
es_out_Control( p_input->p->p_es_out_display, ES_OUT_SET_ES_BY_ID, i_id );
}
- var_Change( p_input, "spu-es", VLC_VAR_FREELIST, &list, NULL );
+ var_FreeList( &list, NULL );
}
}
__var_Create
__var_DelCallback
__var_Destroy
+var_FreeList
__var_Get
var_GetChecked
__var_Set
}
}
break;
- case VLC_VAR_FREELIST:
- FreeList( p_val );
- if( p_val2 && p_val2->p_list )
- {
- for( i = 0; i < p_val2->p_list->i_count; i++ )
- free( p_val2->p_list->p_values[i].psz_string );
- if( p_val2->p_list->i_count )
- {
- free( p_val2->p_list->p_values );
- free( p_val2->p_list->pi_types );
- }
- free( p_val2->p_list );
- }
- break;
case VLC_VAR_SETTEXT:
free( p_var->psz_text );
if( p_val && p_val->psz_string )
return i_ret;
}
+
+
+/**
+ * Free a list and the associated strings
+ * @param p_val: the list variable
+ * @param p_val2: the variable associated or NULL
+ */
+void var_FreeList( vlc_value_t *p_val, vlc_value_t *p_val2 )
+{
+ FreeList( p_val );
+ if( p_val2 && p_val2->p_list )
+ {
+ for( int i = 0; i < p_val2->p_list->i_count; i++ )
+ free( p_val2->p_list->p_values[i].psz_string );
+ if( p_val2->p_list->i_count )
+ {
+ free( p_val2->p_list->p_values );
+ free( p_val2->p_list->pi_types );
+ }
+ free( p_val2->p_list );
+ }
+}