[vlc-commits] lib/video: factor set_int/set_float/set_string
Thomas Guillem
git at videolan.org
Mon Jun 5 18:39:19 CEST 2017
vlc | branch: master | Thomas Guillem <thomas at gllm.fr> | Mon Jun 5 17:16:20 2017 +0200| [9a516806f0ba19f082080a326aa5a61cff44b4a5] | committer: Thomas Guillem
lib/video: factor set_int/set_float/set_string
> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=9a516806f0ba19f082080a326aa5a61cff44b4a5
---
lib/video.c | 67 ++++++++++++++++++++++---------------------------------------
1 file changed, 24 insertions(+), 43 deletions(-)
diff --git a/lib/video.c b/lib/video.c
index 321bff1922..5b5c70c6d2 100644
--- a/lib/video.c
+++ b/lib/video.c
@@ -807,8 +807,9 @@ typedef const struct {
} opt_t;
static void
-set_int( libvlc_media_player_t *p_mi, const char *restrict name,
- const opt_t *restrict opt, int value )
+set_value( libvlc_media_player_t *p_mi, const char *restrict name,
+ const opt_t *restrict opt, unsigned i_expected_type,
+ const vlc_value_t *val )
{
if( !opt ) return;
@@ -819,7 +820,7 @@ set_int( libvlc_media_player_t *p_mi, const char *restrict name,
vout_thread_t *vout = GetVout( p_mi, 0 );
vlc_object_t *p_parent = vout ? VLC_OBJECT( vout ) :
VLC_OBJECT( p_mi );
- vout_EnableFilter( p_parent, opt->name, value );
+ vout_EnableFilter( p_parent, opt->name, val->i_int );
if (vout != NULL)
{ /* Fill sub-source */
var_TriggerCallback( vout, "sub-source" );
@@ -828,13 +829,17 @@ set_int( libvlc_media_player_t *p_mi, const char *restrict name,
break;
}
case VLC_VAR_INTEGER:
- var_SetInteger( p_mi, opt->name, value );
- break;
case VLC_VAR_FLOAT:
- var_SetFloat( p_mi, opt->name, value );
+ case VLC_VAR_STRING:
+ if( i_expected_type != opt->type )
+ {
+ libvlc_printerr( "Invalid argument to %s", name );
+ return;
+ }
+ var_SetChecked( p_mi, opt->name, opt->type, *val );
break;
default:
- libvlc_printerr( "Invalid argument to %s in %s", name, "set int" );
+ libvlc_printerr( "Invalid argument to %s", name );
return;
}
}
@@ -862,21 +867,6 @@ get_int( libvlc_media_player_t *p_mi, const char *restrict name,
}
}
-static void
-set_float( libvlc_media_player_t *p_mi, const char *restrict name,
- const opt_t *restrict opt, float value )
-{
- if( !opt ) return;
-
- if( opt->type != VLC_VAR_FLOAT )
- {
- libvlc_printerr( "Invalid argument to %s in %s", name, "set float" );
- return;
- }
-
- var_SetFloat( p_mi, opt->name, value );
-}
-
static float
get_float( libvlc_media_player_t *p_mi, const char *restrict name,
const opt_t *restrict opt )
@@ -892,21 +882,6 @@ get_float( libvlc_media_player_t *p_mi, const char *restrict name,
return var_GetFloat( p_mi, opt->name );
}
-static void
-set_string( libvlc_media_player_t *p_mi, const char *restrict name,
- const opt_t *restrict opt, const char *restrict psz_value )
-{
- if( !opt ) return;
-
- if( opt->type != VLC_VAR_STRING )
- {
- libvlc_printerr( "Invalid argument to %s in %s", name, "set string" );
- return;
- }
-
- var_SetString( p_mi, opt->name, psz_value );
-}
-
static char *
get_string( libvlc_media_player_t *p_mi, const char *restrict name,
const opt_t *restrict opt )
@@ -970,7 +945,8 @@ char * libvlc_video_get_marquee_string( libvlc_media_player_t *p_mi,
void libvlc_video_set_marquee_int( libvlc_media_player_t *p_mi,
unsigned option, int value )
{
- set_int( p_mi, "marq", marq_option_bynumber(option), value );
+ set_value( p_mi, "marq", marq_option_bynumber(option), VLC_VAR_INTEGER,
+ &(vlc_value_t) { .i_int = value } );
}
/*****************************************************************************
@@ -979,7 +955,8 @@ void libvlc_video_set_marquee_int( libvlc_media_player_t *p_mi,
void libvlc_video_set_marquee_string( libvlc_media_player_t *p_mi,
unsigned option, const char * value )
{
- set_string( p_mi, "marq", marq_option_bynumber(option), value );
+ set_value( p_mi, "marq", marq_option_bynumber(option), VLC_VAR_STRING,
+ &(vlc_value_t){ .psz_string = (char *)value } );
}
@@ -1011,14 +988,16 @@ logo_option_bynumber( unsigned option )
void libvlc_video_set_logo_string( libvlc_media_player_t *p_mi,
unsigned option, const char *psz_value )
{
- set_string( p_mi,"logo",logo_option_bynumber(option), psz_value );
+ set_value( p_mi,"logo",logo_option_bynumber(option), VLC_VAR_STRING,
+ &(vlc_value_t){ .psz_string = (char *)psz_value } );
}
void libvlc_video_set_logo_int( libvlc_media_player_t *p_mi,
unsigned option, int value )
{
- set_int( p_mi, "logo", logo_option_bynumber(option), value );
+ set_value( p_mi, "logo", logo_option_bynumber(option), VLC_VAR_INTEGER,
+ &(vlc_value_t) { .i_int = value } );
}
@@ -1056,7 +1035,8 @@ adjust_option_bynumber( unsigned option )
void libvlc_video_set_adjust_int( libvlc_media_player_t *p_mi,
unsigned option, int value )
{
- set_int( p_mi, "adjust", adjust_option_bynumber(option), value );
+ set_value( p_mi, "adjust", adjust_option_bynumber(option), VLC_VAR_INTEGER,
+ &(vlc_value_t) { .i_int = value } );
}
@@ -1070,7 +1050,8 @@ int libvlc_video_get_adjust_int( libvlc_media_player_t *p_mi,
void libvlc_video_set_adjust_float( libvlc_media_player_t *p_mi,
unsigned option, float value )
{
- set_float( p_mi, "adjust", adjust_option_bynumber(option), value );
+ set_value( p_mi, "adjust", adjust_option_bynumber(option), VLC_VAR_FLOAT,
+ &(vlc_value_t) { .f_float = value } );
}
More information about the vlc-commits
mailing list