Add interface to setting GValues directly.
authorColin Walters <walters@verbum.org>
Tue, 23 Dec 2003 04:50:01 +0000 (04:50 +0000)
committerColin Walters <walters@verbum.org>
Tue, 23 Dec 2003 04:50:01 +0000 (04:50 +0000)
Original commit message from CVS:
Add interface to setting GValues directly.

gst/gsttag.c
gst/gsttag.h
gst/gsttaginterface.c
gst/gsttaginterface.h
gst/gsttaglist.c
gst/gsttaglist.h
gst/gsttagsetter.c
gst/gsttagsetter.h

index 4ceb2a6..ae2db0d 100644 (file)
@@ -577,6 +577,28 @@ gst_tag_list_add (GstTagList *list, GstTagMergeMode mode, const gchar *tag, ...)
   va_end (args);
 }
 /**
+ * gst_tag_list_add_values:
+ * @list: list to set tags in
+ * @mode: the mode to use
+ * @tag: tag
+ * @...: GValues to set
+ *
+ * Sets the GValues for the given tags using the specified mode.
+ */
+void
+gst_tag_list_add_values (GstTagList *list, GstTagMergeMode mode, const gchar *tag, ...)
+{
+  va_list args;
+
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+  g_return_if_fail (tag != NULL);
+  
+  va_start (args, tag);
+  gst_tag_list_add_valist_values (list, mode, tag, args);
+  va_end (args);
+}
+/**
  * gst_tag_list_add_valist:
  * @list: list to set tags in
  * @mode: the mode to use
@@ -617,6 +639,33 @@ gst_tag_list_add_valist (GstTagList *list, GstTagMergeMode mode, const gchar *ta
   }
 }
 /**
+ * gst_tag_list_add_valist_values:
+ * @list: list to set tags in
+ * @mode: the mode to use
+ * @tag: tag
+ * @var_args: tag / GValue pairs to set
+ *
+ * Sets the GValues for the given tags using the specified mode.
+ */
+void
+gst_tag_list_add_valist_values (GstTagList *list, GstTagMergeMode mode, const gchar *tag, va_list var_args)
+{
+  GstTagInfo *info;
+  GQuark quark;
+  
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+  g_return_if_fail (tag != NULL);
+  
+  while (tag != NULL) {
+    quark = g_quark_from_string (tag);
+    info = gst_tag_lookup (quark);
+    g_return_if_fail (info != NULL);
+    gst_tag_list_add_value_internal (list, mode, quark, va_arg (var_args, GValue *));
+    tag = va_arg (var_args, gchar *);
+  }
+}
+/**
  * gst_tag_list_remove_tag:
  * @list: list to remove tag from
  * @tag: tag to remove
index ddb690d..6593afd 100644 (file)
@@ -88,10 +88,18 @@ void                gst_tag_list_add                (GstTagList *           list,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 ...);
+void           gst_tag_list_add_values         (GstTagList *           list,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                ...);
 void           gst_tag_list_add_valist         (GstTagList *           list,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 va_list                var_args);
+void           gst_tag_list_add_valist_values  (GstTagList *           list,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                va_list                var_args);
 void           gst_tag_list_remove_tag         (GstTagList *           list,
                                                 const gchar *          tag);
 void           gst_tag_list_foreach            (GstTagList *           list,
index a7e6d71..582d977 100644 (file)
@@ -139,6 +139,28 @@ gst_tag_setter_add (GstTagSetter *setter, GstTagMergeMode mode, const gchar *tag
   va_end (args);
 }
 /**
+ * gst_tag_setter_add_values:
+ * @setter: a #GstTagSetter
+ * @mode: the mode to use
+ * @tag: tag to set
+ * @...: more tag / GValue pairs to set
+ *
+ * Adds the given tag / GValue pairs on the setter using the given merge mode. 
+ * The list must be terminated with GST_TAG_INVALID.
+ */
+void
+gst_tag_setter_add_values (GstTagSetter *setter, GstTagMergeMode mode, const gchar *tag, ...)
+{
+  va_list args;
+
+  g_return_if_fail (GST_IS_TAG_SETTER (setter));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+
+  va_start (args, tag);
+  gst_tag_setter_add_valist_values (setter, mode, tag, args);
+  va_end (args);
+}
+/**
  * gst_tag_setter_add_valist:
  * @setter: a #GstTagSetter
  * @mode: the mode to use
@@ -163,6 +185,30 @@ gst_tag_setter_add_valist (GstTagSetter *setter, GstTagMergeMode mode, const gch
   gst_tag_list_add_valist (data->list, mode, tag, var_args);
 }
 /**
+ * gst_tag_setter_add_valist_values:
+ * @setter: a #GstTagSetter
+ * @mode: the mode to use
+ * @tag: tag to set
+ * @var_args: tag / GValue pairs to set
+ *
+ * Adds the given tag / GValue pairs on the setter using the given merge mode. 
+ * The list must be terminated with GST_TAG_INVALID.
+ */
+void
+gst_tag_setter_add_valist_values (GstTagSetter *setter, GstTagMergeMode mode, const gchar *tag, va_list var_args)
+{
+  GstTagData *data;
+  
+  g_return_if_fail (GST_IS_TAG_SETTER (setter));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+
+  data = gst_tag_setter_get_data (setter);
+  if (!data->list)
+    data->list = gst_tag_list_new ();
+  
+  gst_tag_list_add_valist_values (data->list, mode, tag, var_args);
+}
+/**
  * gst_tag_setter_get_list:
  * @setter: a #GstTagSetter
  *
index 642e4e3..f28f431 100644 (file)
@@ -55,10 +55,22 @@ void                gst_tag_setter_add              (GstTagSetter *         setter,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 ...);
+
+void           gst_tag_setter_add_values       (GstTagSetter *         setter,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                ...);
+
 void            gst_tag_setter_add_valist      (GstTagSetter *         setter,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 va_list                var_args);
+
+void            gst_tag_setter_add_valist_values(GstTagSetter *                setter,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                va_list                var_args);
+
 G_CONST_RETURN GstTagList *
                gst_tag_setter_get_list (GstTagSetter *         setter);
 
index 4ceb2a6..ae2db0d 100644 (file)
@@ -577,6 +577,28 @@ gst_tag_list_add (GstTagList *list, GstTagMergeMode mode, const gchar *tag, ...)
   va_end (args);
 }
 /**
+ * gst_tag_list_add_values:
+ * @list: list to set tags in
+ * @mode: the mode to use
+ * @tag: tag
+ * @...: GValues to set
+ *
+ * Sets the GValues for the given tags using the specified mode.
+ */
+void
+gst_tag_list_add_values (GstTagList *list, GstTagMergeMode mode, const gchar *tag, ...)
+{
+  va_list args;
+
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+  g_return_if_fail (tag != NULL);
+  
+  va_start (args, tag);
+  gst_tag_list_add_valist_values (list, mode, tag, args);
+  va_end (args);
+}
+/**
  * gst_tag_list_add_valist:
  * @list: list to set tags in
  * @mode: the mode to use
@@ -617,6 +639,33 @@ gst_tag_list_add_valist (GstTagList *list, GstTagMergeMode mode, const gchar *ta
   }
 }
 /**
+ * gst_tag_list_add_valist_values:
+ * @list: list to set tags in
+ * @mode: the mode to use
+ * @tag: tag
+ * @var_args: tag / GValue pairs to set
+ *
+ * Sets the GValues for the given tags using the specified mode.
+ */
+void
+gst_tag_list_add_valist_values (GstTagList *list, GstTagMergeMode mode, const gchar *tag, va_list var_args)
+{
+  GstTagInfo *info;
+  GQuark quark;
+  
+  g_return_if_fail (GST_IS_TAG_LIST (list));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+  g_return_if_fail (tag != NULL);
+  
+  while (tag != NULL) {
+    quark = g_quark_from_string (tag);
+    info = gst_tag_lookup (quark);
+    g_return_if_fail (info != NULL);
+    gst_tag_list_add_value_internal (list, mode, quark, va_arg (var_args, GValue *));
+    tag = va_arg (var_args, gchar *);
+  }
+}
+/**
  * gst_tag_list_remove_tag:
  * @list: list to remove tag from
  * @tag: tag to remove
index ddb690d..6593afd 100644 (file)
@@ -88,10 +88,18 @@ void                gst_tag_list_add                (GstTagList *           list,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 ...);
+void           gst_tag_list_add_values         (GstTagList *           list,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                ...);
 void           gst_tag_list_add_valist         (GstTagList *           list,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 va_list                var_args);
+void           gst_tag_list_add_valist_values  (GstTagList *           list,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                va_list                var_args);
 void           gst_tag_list_remove_tag         (GstTagList *           list,
                                                 const gchar *          tag);
 void           gst_tag_list_foreach            (GstTagList *           list,
index a7e6d71..582d977 100644 (file)
@@ -139,6 +139,28 @@ gst_tag_setter_add (GstTagSetter *setter, GstTagMergeMode mode, const gchar *tag
   va_end (args);
 }
 /**
+ * gst_tag_setter_add_values:
+ * @setter: a #GstTagSetter
+ * @mode: the mode to use
+ * @tag: tag to set
+ * @...: more tag / GValue pairs to set
+ *
+ * Adds the given tag / GValue pairs on the setter using the given merge mode. 
+ * The list must be terminated with GST_TAG_INVALID.
+ */
+void
+gst_tag_setter_add_values (GstTagSetter *setter, GstTagMergeMode mode, const gchar *tag, ...)
+{
+  va_list args;
+
+  g_return_if_fail (GST_IS_TAG_SETTER (setter));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+
+  va_start (args, tag);
+  gst_tag_setter_add_valist_values (setter, mode, tag, args);
+  va_end (args);
+}
+/**
  * gst_tag_setter_add_valist:
  * @setter: a #GstTagSetter
  * @mode: the mode to use
@@ -163,6 +185,30 @@ gst_tag_setter_add_valist (GstTagSetter *setter, GstTagMergeMode mode, const gch
   gst_tag_list_add_valist (data->list, mode, tag, var_args);
 }
 /**
+ * gst_tag_setter_add_valist_values:
+ * @setter: a #GstTagSetter
+ * @mode: the mode to use
+ * @tag: tag to set
+ * @var_args: tag / GValue pairs to set
+ *
+ * Adds the given tag / GValue pairs on the setter using the given merge mode. 
+ * The list must be terminated with GST_TAG_INVALID.
+ */
+void
+gst_tag_setter_add_valist_values (GstTagSetter *setter, GstTagMergeMode mode, const gchar *tag, va_list var_args)
+{
+  GstTagData *data;
+  
+  g_return_if_fail (GST_IS_TAG_SETTER (setter));
+  g_return_if_fail (GST_TAG_MODE_IS_VALID (mode));
+
+  data = gst_tag_setter_get_data (setter);
+  if (!data->list)
+    data->list = gst_tag_list_new ();
+  
+  gst_tag_list_add_valist_values (data->list, mode, tag, var_args);
+}
+/**
  * gst_tag_setter_get_list:
  * @setter: a #GstTagSetter
  *
index 642e4e3..f28f431 100644 (file)
@@ -55,10 +55,22 @@ void                gst_tag_setter_add              (GstTagSetter *         setter,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 ...);
+
+void           gst_tag_setter_add_values       (GstTagSetter *         setter,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                ...);
+
 void            gst_tag_setter_add_valist      (GstTagSetter *         setter,
                                                 GstTagMergeMode        mode,
                                                 const gchar *          tag,
                                                 va_list                var_args);
+
+void            gst_tag_setter_add_valist_values(GstTagSetter *                setter,
+                                                GstTagMergeMode        mode,
+                                                const gchar *          tag,
+                                                va_list                var_args);
+
 G_CONST_RETURN GstTagList *
                gst_tag_setter_get_list (GstTagSetter *         setter);