vlc_variables: add VLC_VAR_SETMINMAX
authorFilip Roséen <filip@atch.se>
Wed, 12 Oct 2016 17:39:33 +0000 (19:39 +0200)
committerThomas Guillem <thomas@gllm.fr>
Thu, 13 Oct 2016 16:04:38 +0000 (18:04 +0200)
Most of the time when you wanna limit the range of possible values for
a variable you do so my specifying both the lower and upper bound.

As such it certainly make sense to have a var_Change specifier to set
both, instead of doing one at a time.

Signed-off-by: Thomas Guillem <thomas@gllm.fr>
include/vlc_variables.h
src/misc/variables.c

index 77b4682..072f537 100644 (file)
 #define VLC_VAR_GETCHOICES          0x0024
 
 #define VLC_VAR_CHOICESCOUNT        0x0026
+#define VLC_VAR_SETMINMAX           0x0027
 
 /**@}*/
 
index c2ed69a..66c94f6 100644 (file)
@@ -529,6 +529,25 @@ int var_Change( vlc_object_t *p_this, const char *psz_name,
             else
                 ret = VLC_EGENERIC;
             break;
+        case VLC_VAR_SETMINMAX:
+            if( p_var->i_type & VLC_VAR_HASMIN )
+            {
+                p_var->ops->pf_free( &p_var->min );
+            }
+            p_var->i_type |= VLC_VAR_HASMIN;
+            p_var->min = *p_val;
+            p_var->ops->pf_dup( &p_var->min );
+
+            if( p_var->i_type & VLC_VAR_HASMAX )
+            {
+                p_var->ops->pf_free( &p_var->max );
+            }
+            p_var->i_type |= VLC_VAR_HASMAX;
+            p_var->max = *p_val2;
+            p_var->ops->pf_dup( &p_var->max );
+
+            break;
+
         case VLC_VAR_SETSTEP:
             if( p_var->i_type & VLC_VAR_HASSTEP )
             {