]> git.sesse.net Git - vlc/blobdiff - include/vlc_variables.h
Use var_InheritString for --decklink-video-connection.
[vlc] / include / vlc_variables.h
index 3dbeaf18ddf26147c91b13e778952d00657daa0a..e0f5f8887ef208d79d835e1c0cf9f0b2c8afa2f6 100644 (file)
@@ -147,7 +147,9 @@ VLC_EXPORT( int, var_Get, ( vlc_object_t *, const char *, vlc_value_t * ) );
 #define var_Get(a,b,c) var_Get( VLC_OBJECT(a), b, c )
 
 VLC_EXPORT( int, var_SetChecked, ( vlc_object_t *, const char *, int, vlc_value_t ) );
+#define var_SetChecked(o,n,t,v) var_SetChecked(VLC_OBJECT(o),n,t,v)
 VLC_EXPORT( int, var_GetChecked, ( vlc_object_t *, const char *, int, vlc_value_t * ) );
+#define var_GetChecked(o,n,t,v) var_GetChecked(VLC_OBJECT(o),n,t,v)
 VLC_EXPORT( int, var_GetAndSet, ( vlc_object_t *, const char *, int, vlc_value_t * ) );
 
 VLC_EXPORT( int, var_Inherit, ( vlc_object_t *, const char *, int, vlc_value_t * ) );
@@ -186,7 +188,8 @@ VLC_EXPORT( int, var_TriggerCallback, ( vlc_object_t *, const char * ) );
  * \param psz_name The name of the variable
  * \param i The new integer value of this variable
  */
-static inline int var_SetInteger( vlc_object_t *p_obj, const char *psz_name, int i )
+static inline int var_SetInteger( vlc_object_t *p_obj, const char *psz_name,
+                                  int64_t i )
 {
     vlc_value_t val;
     val.i_int = i;
@@ -221,6 +224,16 @@ static inline int var_SetTime( vlc_object_t *p_obj, const char *psz_name, int64_
     return var_SetChecked( p_obj, psz_name, VLC_VAR_TIME, val );
 }
 
+static inline int var_SetCoords( vlc_object_t *obj, const char *name,
+                                 int32_t x, int32_t y )
+{
+    vlc_value_t val;
+    val.coords.x = x;
+    val.coords.y = y;
+    return var_SetChecked (obj, name, VLC_VAR_COORDS, val);
+}
+#define var_SetCoords(o,n,x,y) var_SetCoords(VLC_OBJECT(o),n,x,y)
+
 /**
  * Set the value of a float variable
  *
@@ -279,7 +292,7 @@ int var_SetAddress( vlc_object_t *p_obj, const char *psz_name, void *ptr )
  * \param psz_name The name of the variable
  */
 LIBVLC_USED
-static inline int var_GetInteger( vlc_object_t *p_obj, const char *psz_name )
+static inline int64_t var_GetInteger( vlc_object_t *p_obj, const char *psz_name )
 {
     vlc_value_t val;
     if( !var_GetChecked( p_obj, psz_name, VLC_VAR_INTEGER, &val ) )
@@ -321,6 +334,21 @@ static inline int64_t var_GetTime( vlc_object_t *p_obj, const char *psz_name )
         return 0;
 }
 
+static inline void var_GetCoords( vlc_object_t *obj, const char *name,
+                                  int32_t *px, int32_t *py )
+{
+    vlc_value_t val;
+
+    if (likely(!var_GetChecked (obj, name, VLC_VAR_COORDS, &val)))
+    {
+        *px = val.coords.x;
+        *py = val.coords.y;
+    }
+    else
+        *px = *py = 0;
+}
+#define var_GetCoords(o,n,x,y) var_GetCoords(VLC_OBJECT(o),n,x,y)
+
 /**
  * Get a float value
  *
@@ -343,7 +371,7 @@ static inline float var_GetFloat( vlc_object_t *p_obj, const char *psz_name )
  * \param p_obj The object that holds the variable
  * \param psz_name The name of the variable
  */
-LIBVLC_USED
+LIBVLC_USED LIBVLC_MALLOC
 static inline char *var_GetString( vlc_object_t *p_obj, const char *psz_name )
 {
     vlc_value_t val; val.psz_string = NULL;
@@ -353,7 +381,7 @@ static inline char *var_GetString( vlc_object_t *p_obj, const char *psz_name )
         return val.psz_string;
 }
 
-LIBVLC_USED
+LIBVLC_USED LIBVLC_MALLOC
 static inline char *var_GetNonEmptyString( vlc_object_t *p_obj, const char *psz_name )
 {
     vlc_value_t val;
@@ -380,7 +408,7 @@ static inline void *var_GetAddress( vlc_object_t *p_obj, const char *psz_name )
  * \param p_obj the object that holds the variable
  * \param psz_name the name of the variable
  */
-static inline int var_IncInteger( vlc_object_t *p_obj, const char *psz_name )
+static inline int64_t var_IncInteger( vlc_object_t *p_obj, const char *psz_name )
 {
     vlc_value_t val;
     val.i_int = 1;
@@ -394,7 +422,7 @@ static inline int var_IncInteger( vlc_object_t *p_obj, const char *psz_name )
  * \param p_obj the object that holds the variable
  * \param psz_name the name of the variable
  */
-static inline int var_DecInteger( vlc_object_t *p_obj, const char *psz_name )
+static inline int64_t var_DecInteger( vlc_object_t *p_obj, const char *psz_name )
 {
     vlc_value_t val;
     val.i_int = -1;
@@ -403,7 +431,7 @@ static inline int var_DecInteger( vlc_object_t *p_obj, const char *psz_name )
 }
 #define var_DecInteger(a,b) var_DecInteger( VLC_OBJECT(a), b )
 
-static inline unsigned var_OrInteger( vlc_object_t *obj, const char *name,
+static inline uint64_t var_OrInteger( vlc_object_t *obj, const char *name,
                                       unsigned v )
 {
     vlc_value_t val;
@@ -413,7 +441,7 @@ static inline unsigned var_OrInteger( vlc_object_t *obj, const char *name,
 }
 #define var_OrInteger(a,b,c) var_OrInteger(VLC_OBJECT(a),b,c)
 
-static inline unsigned var_NAndInteger( vlc_object_t *obj, const char *name,
+static inline uint64_t var_NAndInteger( vlc_object_t *obj, const char *name,
                                         unsigned v )
 {
     vlc_value_t val;
@@ -430,7 +458,7 @@ static inline unsigned var_NAndInteger( vlc_object_t *obj, const char *name,
  * \param psz_name The name of the variable
  */
 LIBVLC_USED
-static inline int var_CreateGetInteger( vlc_object_t *p_obj, const char *psz_name )
+static inline int64_t var_CreateGetInteger( vlc_object_t *p_obj, const char *psz_name )
 {
     var_Create( p_obj, psz_name, VLC_VAR_INTEGER | VLC_VAR_DOINHERIT );
     return var_GetInteger( p_obj, psz_name );
@@ -481,7 +509,7 @@ static inline float var_CreateGetFloat( vlc_object_t *p_obj, const char *psz_nam
  * \param p_obj The object that holds the variable
  * \param psz_name The name of the variable
  */
-LIBVLC_USED
+LIBVLC_USED LIBVLC_MALLOC
 static inline char *var_CreateGetString( vlc_object_t *p_obj,
                                            const char *psz_name )
 {
@@ -489,7 +517,7 @@ static inline char *var_CreateGetString( vlc_object_t *p_obj,
     return var_GetString( p_obj, psz_name );
 }
 
-LIBVLC_USED
+LIBVLC_USED LIBVLC_MALLOC
 static inline char *var_CreateGetNonEmptyString( vlc_object_t *p_obj,
                                                    const char *psz_name )
 {
@@ -526,7 +554,7 @@ static inline void *var_CreateGetAddress( vlc_object_t *p_obj,
  * \param psz_name The name of the variable
  */
 LIBVLC_USED
-static inline int var_CreateGetIntegerCommand( vlc_object_t *p_obj, const char *psz_name )
+static inline int64_t var_CreateGetIntegerCommand( vlc_object_t *p_obj, const char *psz_name )
 {
     var_Create( p_obj, psz_name, VLC_VAR_INTEGER | VLC_VAR_DOINHERIT
                                    | VLC_VAR_ISCOMMAND );
@@ -581,7 +609,7 @@ static inline float var_CreateGetFloatCommand( vlc_object_t *p_obj, const char *
  * \param p_obj The object that holds the variable
  * \param psz_name The name of the variable
  */
-LIBVLC_USED
+LIBVLC_USED LIBVLC_MALLOC
 static inline char *var_CreateGetStringCommand( vlc_object_t *p_obj,
                                            const char *psz_name )
 {
@@ -590,7 +618,7 @@ static inline char *var_CreateGetStringCommand( vlc_object_t *p_obj,
     return var_GetString( p_obj, psz_name );
 }
 
-LIBVLC_USED
+LIBVLC_USED LIBVLC_MALLOC
 static inline char *var_CreateGetNonEmptyStringCommand( vlc_object_t *p_obj,
                                                    const char *psz_name )
 {
@@ -638,7 +666,7 @@ static inline bool var_InheritBool( vlc_object_t *obj, const char *name )
 #define var_InheritBool(o, n) var_InheritBool(VLC_OBJECT(o), n)
 
 LIBVLC_USED
-static inline int var_InheritInteger( vlc_object_t *obj, const char *name )
+static inline int64_t var_InheritInteger( vlc_object_t *obj, const char *name )
 {
     vlc_value_t val;
 
@@ -675,6 +703,7 @@ static inline char *var_InheritString( vlc_object_t *obj, const char *name )
 }
 #define var_InheritString(o, n) var_InheritString(VLC_OBJECT(o), n)
 
+LIBVLC_USED
 static inline mtime_t var_InheritTime( vlc_object_t *obj, const char *name )
 {
     vlc_value_t val;
@@ -685,6 +714,20 @@ static inline mtime_t var_InheritTime( vlc_object_t *obj, const char *name )
 }
 #define var_InheritTime(o, n) var_InheritTime(VLC_OBJECT(o), n)
 
+LIBVLC_USED
+static inline void *var_InheritAddress( vlc_object_t *obj, const char *name )
+{
+    vlc_value_t val;
+
+    if( var_Inherit( obj, name, VLC_VAR_ADDRESS, &val ) )
+        val.p_address = NULL;
+    return val.p_address;
+}
+#define var_InheritAddress(o, n) var_InheritAddress(VLC_OBJECT(o), n)
+
+VLC_EXPORT( int, var_InheritURational, ( vlc_object_t *, unsigned *num, unsigned *den, const char *var ) );
+#define var_InheritURational(a,b,c,d) var_InheritURational(VLC_OBJECT(a), b, c, d)
+
 #define var_GetInteger(a,b)   var_GetInteger( VLC_OBJECT(a),b)
 #define var_GetBool(a,b)   var_GetBool( VLC_OBJECT(a),b)
 #define var_GetTime(a,b)   var_GetTime( VLC_OBJECT(a),b)