Commit 84b96054 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

variables: pass VLC_VAR_ADDCHOICES parameters by value

parent 8349b1a8
......@@ -476,10 +476,9 @@ static vlc_v4l2_ctrl_t *ControlAddMenu (vlc_object_t *obj, int fd,
continue;
msg_Dbg (obj, " choice %"PRIu32") %s", menu.index, menu.name);
vlc_value_t text;
val.i_int = menu.index;
text.psz_string = (char *)menu.name;
var_Change (obj, c->name, VLC_VAR_ADDCHOICE, &val, &text);
var_Change(obj, c->name, VLC_VAR_ADDCHOICE, val,
(const char *)menu.name);
}
return c;
}
......@@ -670,11 +669,10 @@ static vlc_v4l2_ctrl_t *ControlAddIntMenu (vlc_object_t *obj, int fd,
msg_Dbg (obj, " choice %"PRIu32") %"PRId64, menu.index,
(uint64_t)menu.value);
vlc_value_t text;
val.i_int = menu.index;
sprintf (name, "%"PRId64, (int64_t)menu.value);
text.psz_string = name;
var_Change (obj, c->name, VLC_VAR_ADDCHOICE, &val, &text);
sprintf(name, "%"PRId64, (int64_t)menu.value);
var_Change(obj, c->name, VLC_VAR_ADDCHOICE, val,
(const char *)name);
}
return c;
}
......@@ -735,8 +733,8 @@ vlc_v4l2_ctrl_t *ControlsInit (vlc_object_t *obj, int fd)
text.psz_string = (char *)query.name;
var_Change(obj, c->name, VLC_VAR_SETTEXT, &text);
val.i_int = query.id;
text.psz_string = (char *)c->name;
var_Change (obj, "controls", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(obj, "controls", VLC_VAR_ADDCHOICE, val,
(const char *)c->name);
c->next = list;
list = c;
......@@ -764,15 +762,14 @@ vlc_v4l2_ctrl_t *ControlsInit (vlc_object_t *obj, int fd)
/* Add a control to reset all controls to their default values */
{
vlc_value_t val, text;
vlc_value_t val;
var_Create (obj, "reset", VLC_VAR_VOID | VLC_VAR_ISCOMMAND);
val.psz_string = _("Reset defaults");
var_Change(obj, "reset", VLC_VAR_SETTEXT, &val);
val.i_int = -1;
text.psz_string = (char *)"reset";
var_Change (obj, "controls", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(obj, "controls", VLC_VAR_ADDCHOICE, val, "reset");
var_AddCallback (obj, "reset", ControlsResetCallback, list);
}
if (var_InheritBool (obj, CFG_PREFIX"controls-reset"))
......
......@@ -75,9 +75,8 @@ ThemeRepository::ThemeRepository( intf_thread_t *pIntf ): SkinObject( pIntf )
std::string name = itmap->first;
std::string path = itmap->second;
val.psz_string = (char*) path.c_str();
text.psz_string = (char*) name.c_str();
var_Change( getIntf(), "intf-skins", VLC_VAR_ADDCHOICE, &val,
&text );
var_Change( getIntf(), "intf-skins", VLC_VAR_ADDCHOICE, val,
name.c_str() );
if( name == "Default" )
{
......@@ -204,7 +203,7 @@ int ThemeRepository::changeSkin( vlc_object_t *pIntf, char const *pVariable,
void ThemeRepository::updateRepository()
{
vlc_value_t val, text;
vlc_value_t val;
// retrieve the current skin
char* psz_current = config_GetPsz( "skins2-last" );
......@@ -212,7 +211,6 @@ void ThemeRepository::updateRepository()
return;
val.psz_string = psz_current;
text.psz_string = psz_current;
// add this new skins if not yet present in repository
std::string current( psz_current );
......@@ -224,8 +222,8 @@ void ThemeRepository::updateRepository()
}
if( it == m_skinsMap.end() )
{
var_Change( getIntf(), "intf-skins", VLC_VAR_ADDCHOICE, &val,
&text );
var_Change( getIntf(), "intf-skins", VLC_VAR_ADDCHOICE, val,
(const char *)psz_current );
std::string name = psz_current;
m_skinsMap[name] = name;
}
......
......@@ -127,6 +127,7 @@ static int OpenPostproc( vlc_object_t *p_this )
filter_t *p_filter = (filter_t *)p_this;
filter_sys_t *p_sys;
vlc_value_t val, val_orig, text;
const char *desc;
int i_flags = 0;
if( p_filter->fmt_in.video.i_chroma != p_filter->fmt_out.video.i_chroma ||
......@@ -232,20 +233,19 @@ static int OpenPostproc( vlc_object_t *p_this )
switch( val.i_int )
{
case 0:
text.psz_string = _("Disable");
desc = _("Disable");
break;
case 1:
text.psz_string = _("Lowest");
desc = _("Lowest");
break;
case PP_QUALITY_MAX:
text.psz_string = _("Highest");
desc = _("Highest");
break;
default:
text.psz_string = NULL;
desc = NULL;
break;
}
var_Change( p_filter, FILTER_PREFIX "q", VLC_VAR_ADDCHOICE,
&val, text.psz_string?&text:NULL );
var_Change( p_filter, FILTER_PREFIX "q", VLC_VAR_ADDCHOICE, val, desc );
}
vlc_mutex_init( &p_sys->lock );
......
......@@ -278,47 +278,38 @@ audio_output_t *aout_New (vlc_object_t *parent)
text.psz_string = _("Visualizations");
var_Change(aout, "visual", VLC_VAR_SETTEXT, &text);
val.psz_string = (char *)"";
text.psz_string = _("Disable");
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, _("Disable"));
val.psz_string = (char *)"spectrometer";
text.psz_string = _("Spectrometer");
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, _("Spectrometer"));
val.psz_string = (char *)"scope";
text.psz_string = _("Scope");
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, _("Scope"));
val.psz_string = (char *)"spectrum";
text.psz_string = _("Spectrum");
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, _("Spectrum"));
val.psz_string = (char *)"vuMeter";
text.psz_string = _("VU meter");
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, _("VU meter"));
/* Look for goom plugin */
if (module_exists ("goom"))
{
val.psz_string = (char *)"goom";
text.psz_string = (char *)"Goom";
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, "Goom");
}
/* Look for libprojectM plugin */
if (module_exists ("projectm"))
{
val.psz_string = (char *)"projectm";
text.psz_string = (char*)"projectM";
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, "projectM");
}
/* Look for VSXu plugin */
if (module_exists ("vsxu"))
{
val.psz_string = (char *)"vsxu";
text.psz_string = (char*)"Vovoid VSXu";
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, "Vovoid VSXU");
}
/* Look for glspectrum plugin */
if (module_exists ("glspectrum"))
{
val.psz_string = (char *)"glspectrum";
text.psz_string = (char*)"3D spectrum";
var_Change (aout, "visual", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(aout, "visual", VLC_VAR_ADDCHOICE, val, "3D spectrum");
}
str = var_GetNonEmptyString (aout, "effect-list");
if (str != NULL)
......@@ -349,9 +340,8 @@ audio_output_t *aout_New (vlc_object_t *parent)
for (unsigned i = 0; i < cfg->list_count; i++)
{
val.psz_string = (char *)cfg->list.psz[i];
text.psz_string = vlc_gettext(cfg->list_text[i]);
var_Change (aout, "audio-replay-gain-mode", VLC_VAR_ADDCHOICE,
&val, &text);
var_Change(aout, "audio-replay-gain-mode", VLC_VAR_ADDCHOICE,
val, vlc_gettext(cfg->list_text[i]));
}
/* Stereo mode */
......@@ -426,7 +416,8 @@ static void aout_PrepareStereoMode (audio_output_t *aout,
/* Fill Stereo mode choices */
var_Change(aout, "stereo-mode", VLC_VAR_CLEARCHOICES);
vlc_value_t val, txt;
vlc_value_t val;
const char *txt;
val.i_int = 0;
if (!AOUT_FMT_LINEAR(fmt) || i_nb_input_channels == 1)
......@@ -436,26 +427,24 @@ static void aout_PrepareStereoMode (audio_output_t *aout,
int i_default_mode = AOUT_VAR_CHAN_UNSET;
val.i_int = AOUT_VAR_CHAN_MONO;
txt.psz_string = _("Mono");
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, val, _("Mono"));
if (i_nb_input_channels != 2)
{
val.i_int = AOUT_VAR_CHAN_UNSET;
txt.psz_string = _("Original");
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, val, _("Original"));
}
if (fmt->i_chan_mode & AOUT_CHANMODE_DOLBYSTEREO)
{
val.i_int = AOUT_VAR_CHAN_DOLBYS;
txt.psz_string = _("Dolby Surround");
txt = _("Dolby Surround");
}
else
{
val.i_int = AOUT_VAR_CHAN_STEREO;
txt.psz_string = _("Stereo");
txt = _("Stereo");
}
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, val, txt);
if (i_nb_input_channels == 2)
{
......@@ -465,23 +454,21 @@ static void aout_PrepareStereoMode (audio_output_t *aout,
i_default_mode = val.i_int; /* Stereo or Dolby Surround */
val.i_int = AOUT_VAR_CHAN_LEFT;
txt.psz_string = _("Left");
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, _("Left"));
val.i_int = AOUT_VAR_CHAN_RIGHT;
txt.psz_string = _("Right");
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, val, _("Right"));
val.i_int = AOUT_VAR_CHAN_RSTEREO;
txt.psz_string = _("Reverse stereo");
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, val,
_("Reverse stereo"));
}
if (input_chan_type == AUDIO_CHANNEL_TYPE_AMBISONICS
|| i_nb_input_channels > 2)
{
val.i_int = AOUT_VAR_CHAN_HEADPHONES;
txt.psz_string = _("Headphones");
var_Change (aout, "stereo-mode", VLC_VAR_ADDCHOICE, &val, &txt);
var_Change(aout, "stereo-mode", VLC_VAR_ADDCHOICE, val,
_("Headphones"));
if (aout->current_sink_info.headphones)
i_default_mode = AOUT_VAR_CHAN_HEADPHONES;
......
......@@ -605,8 +605,7 @@ static void UpdateBookmarksOption( input_thread_t *p_input )
/* Add bookmark to choice-list */
var_Change( p_input, "bookmark", VLC_VAR_ADDCHOICE,
&(vlc_value_t){ .i_int = i },
&(vlc_value_t){ .psz_string = sp->psz_name } );
(vlc_value_t){ .i_int = i }, sp->psz_name );
/* Append bookmark to option-buffer */
/* TODO: escape inappropriate values */
......
......@@ -955,8 +955,8 @@ static void EsOutESVarUpdateGeneric( es_out_t *out, int i_id,
vlc_value_t val2;
/* First one, we need to add the "Disable" choice */
val2.i_int = -1; text.psz_string = _("Disable");
var_Change( p_input, psz_var, VLC_VAR_ADDCHOICE, &val2, &text );
val2.i_int = -1;
var_Change( p_input, psz_var, VLC_VAR_ADDCHOICE, val2, _("Disable") );
val.i_int++;
}
......
......@@ -306,13 +306,10 @@ static void VarListAdd( input_thread_t *p_input,
int i_value, const char *psz_text )
{
vlc_value_t val;
vlc_value_t text;
val.i_int = i_value;
text.psz_string = (char*)psz_text;
var_Change( p_input, psz_variable, VLC_VAR_ADDCHOICE,
&val, psz_text ? &text : NULL );
var_Change( p_input, psz_variable, VLC_VAR_ADDCHOICE, val, psz_text );
Trigger( p_input, i_event );
}
......
......@@ -329,7 +329,8 @@ void input_ControlVarNavigation( input_thread_t *p_input )
/* Add title choice */
val2.i_int = i;
var_Change( p_input, "title", VLC_VAR_ADDCHOICE, &val2, &text );
var_Change( p_input, "title", VLC_VAR_ADDCHOICE, val2,
(const char *)text.psz_string );
free( text.psz_string );
......@@ -351,7 +352,8 @@ void input_ControlVarNavigation( input_thread_t *p_input )
strdup( input_priv(p_input)->title[i]->seekpoint[j]->psz_name );
}
var_Change( p_input, title, VLC_VAR_ADDCHOICE, &val2, &text2 );
var_Change( p_input, title, VLC_VAR_ADDCHOICE, val2,
(const char *)text2.psz_string );
free( text2.psz_string );
}
......@@ -407,7 +409,8 @@ void input_ControlVarTitle( input_thread_t *p_input, int i_title )
text.psz_string = strdup( t->seekpoint[i]->psz_name );
}
var_Change( p_input, "chapter", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_input, "chapter", VLC_VAR_ADDCHOICE, val,
(const char *)text.psz_string );
free( text.psz_string );
}
}
......
......@@ -86,18 +86,15 @@ int intf_Create( playlist_t *playlist, const char *chain )
#endif
{
val.psz_string = (char *)"rc,none";
text.psz_string = (char *)_("Console");
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, val, _("Console") );
}
val.psz_string = (char *)"telnet,none";
text.psz_string = (char *)_("Telnet");
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, val, _("Telnet") );
val.psz_string = (char *)"http,none";
text.psz_string = (char *)_("Web");
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, val, _("Web") );
val.psz_string = (char *)"gestures,none";
text.psz_string = (char *)_("Mouse Gestures");
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_intf, "intf-add", VLC_VAR_ADDCHOICE, val,
_("Mouse Gestures") );
var_AddCallback( p_intf, "intf-add", AddIntfCallback, playlist );
......
......@@ -477,21 +477,20 @@ int (var_Change)(vlc_object_t *p_this, const char *psz_name, int i_action, ...)
break;
case VLC_VAR_ADDCHOICE:
{
vlc_value_t *p_val = va_arg(ap, vlc_value_t *);
const vlc_value_t *p_val2 = va_arg(ap, vlc_value_t *);
vlc_value_t val = va_arg(ap, vlc_value_t);
const char *text = va_arg(ap, const char *);
int i = p_var->choices.i_count;
TAB_APPEND(p_var->choices.i_count,
p_var->choices.p_values, *p_val);
TAB_APPEND(p_var->choices.i_count, p_var->choices.p_values, val);
assert(i == p_var->choices_text.i_count);
TAB_APPEND(p_var->choices_text.i_count,
p_var->choices_text.p_values, *p_val);
p_var->choices_text.p_values, val);
p_var->ops->pf_dup( &p_var->choices.p_values[i] );
p_var->choices_text.p_values[i].psz_string =
( p_val2 && p_val2->psz_string ) ?
strdup( p_val2->psz_string ) : NULL;
(text != NULL) ? strdup(text) : NULL;
TriggerListCallback(p_this, p_var, psz_name, VLC_VAR_ADDCHOICE, p_val);
TriggerListCallback(p_this, p_var, psz_name, VLC_VAR_ADDCHOICE,
&val);
break;
}
case VLC_VAR_DELCHOICE:
......
......@@ -117,8 +117,8 @@ void vout_InitInterlacingSupport(vout_thread_t *vout, bool is_interlaced)
if (likely(optd != NULL))
for (unsigned i = 0; i < optd->list_count; i++) {
val.i_int = optd->list.i[i];
text.psz_string = vlc_gettext(optd->list_text[i]);
var_Change(vout, "deinterlace", VLC_VAR_ADDCHOICE, &val, &text);
var_Change(vout, "deinterlace", VLC_VAR_ADDCHOICE, val,
vlc_gettext(optd->list_text[i]));
}
var_AddCallback(vout, "deinterlace", DeinterlaceCallback, NULL);
/* */
......@@ -136,9 +136,8 @@ void vout_InitInterlacingSupport(vout_thread_t *vout, bool is_interlaced)
continue;
val.psz_string = (char *)optm->list.psz[i];
text.psz_string = vlc_gettext(optm->list_text[i]);
var_Change(vout, "deinterlace-mode", VLC_VAR_ADDCHOICE,
&val, &text);
val, vlc_gettext(optm->list_text[i]));
}
var_AddCallback(vout, "deinterlace-mode", DeinterlaceCallback, NULL);
/* */
......
......@@ -133,7 +133,7 @@ static void AddCustomRatios( vout_thread_t *p_vout, const char *psz_var,
char *psz_next;
while( psz_cur && *psz_cur )
{
vlc_value_t val, text;
vlc_value_t val;
psz_next = strchr( psz_cur, ',' );
if( psz_next )
{
......@@ -141,8 +141,8 @@ static void AddCustomRatios( vout_thread_t *p_vout, const char *psz_var,
psz_next++;
}
val.psz_string = psz_cur;
text.psz_string = psz_cur;
var_Change( p_vout, psz_var, VLC_VAR_ADDCHOICE, &val, &text);
var_Change( p_vout, psz_var, VLC_VAR_ADDCHOICE, val,
(const char *)psz_cur );
psz_cur = psz_next;
}
}
......@@ -179,8 +179,8 @@ void vout_IntfInit( vout_thread_t *p_vout )
for( size_t i = 0; i < ARRAY_SIZE(p_zoom_values); i++ )
{
val.f_float = p_zoom_values[i].f_value;
text.psz_string = vlc_gettext( p_zoom_values[i].psz_label );
var_Change( p_vout, "zoom", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_vout, "zoom", VLC_VAR_ADDCHOICE, val,
vlc_gettext( p_zoom_values[i].psz_label ) );
}
var_AddCallback( p_vout, "zoom", ZoomCallback, NULL );
......@@ -206,8 +206,8 @@ void vout_IntfInit( vout_thread_t *p_vout )
for( size_t i = 0; i < ARRAY_SIZE(p_crop_values); i++ )
{
val.psz_string = (char*)p_crop_values[i].psz_value;
text.psz_string = _( p_crop_values[i].psz_label );
var_Change( p_vout, "crop", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_vout, "crop", VLC_VAR_ADDCHOICE, val,
p_crop_values[i].psz_label );
}
/* Add custom crop ratios */
......@@ -233,8 +233,8 @@ void vout_IntfInit( vout_thread_t *p_vout )
for( size_t i = 0; i < ARRAY_SIZE(p_aspect_ratio_values); i++ )
{
val.psz_string = (char*)p_aspect_ratio_values[i].psz_value;
text.psz_string = _( p_aspect_ratio_values[i].psz_label );
var_Change( p_vout, "aspect-ratio", VLC_VAR_ADDCHOICE, &val, &text );
var_Change( p_vout, "aspect-ratio", VLC_VAR_ADDCHOICE, val,
vlc_gettext(p_aspect_ratio_values[i].psz_label) );
}
/* Add custom aspect ratios */
......
......@@ -326,12 +326,10 @@ static void test_choices( libvlc_int_t *p_libvlc )
vlc_value_t val, val2;
var_Create( p_libvlc, "bla", VLC_VAR_INTEGER | VLC_VAR_ISCOMMAND );
val.i_int = 1;
val2.psz_string = (char*)"one";
var_Change( p_libvlc, "bla", VLC_VAR_ADDCHOICE, &val, &val2 );
var_Change( p_libvlc, "bla", VLC_VAR_ADDCHOICE, val, "one" );
val.i_int = 2;
val2.psz_string = (char*)"two";
var_Change( p_libvlc, "bla", VLC_VAR_ADDCHOICE, &val, &val2 );
var_Change( p_libvlc, "bla", VLC_VAR_ADDCHOICE, val, "two" );
assert( var_CountChoices( p_libvlc, "bla" ) == 2 );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment