docs: convert NULL, TRUE, and FALSE to %NULL, %TRUE, and %FALSE
[platform/upstream/gstreamer.git] / gst / gsttagsetter.c
index c4a3ec0..b2955d6 100644 (file)
@@ -15,8 +15,8 @@
  *
  * You should have received a copy of the GNU Library General Public
  * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
  */
 
 /**
@@ -64,8 +64,6 @@
  *  
  * GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
  * ]|
- * 
- * Last reviewed on 2006-05-18 (0.10.6)
  */
 
 #ifdef HAVE_CONFIG_H
@@ -83,38 +81,20 @@ typedef struct
 {
   GstTagMergeMode mode;
   GstTagList *list;
-  GStaticMutex lock;
+  GMutex lock;
 } GstTagData;
 
-GType
-gst_tag_setter_get_type (void)
-{
-  static volatile gsize tag_setter_type = 0;
-
-  if (g_once_init_enter (&tag_setter_type)) {
-    GType _type;
-    static const GTypeInfo tag_setter_info = {
-      sizeof (GstTagSetterInterface),   /* class_size */
-      NULL,                     /* base_init */
-      NULL,                     /* base_finalize */
-      NULL,
-      NULL,                     /* class_finalize */
-      NULL,                     /* class_data */
-      0,
-      0,
-      NULL
-    };
-
-    _type = g_type_register_static (G_TYPE_INTERFACE, "GstTagSetter",
-        &tag_setter_info, 0);
-
-    g_type_interface_add_prerequisite (_type, GST_TYPE_ELEMENT);
-
-    gst_tag_key = g_quark_from_static_string ("GST_TAG_SETTER");
-    g_once_init_leave (&tag_setter_type, _type);
-  }
+#define GST_TAG_DATA_LOCK(data) g_mutex_lock(&data->lock)
+#define GST_TAG_DATA_UNLOCK(data) g_mutex_unlock(&data->lock)
 
-  return tag_setter_type;
+G_DEFINE_INTERFACE_WITH_CODE (GstTagSetter, gst_tag_setter, GST_TYPE_ELEMENT,
+    gst_tag_key = g_quark_from_static_string ("gst-tag-setter-data");
+    );
+
+static void
+gst_tag_setter_default_init (GstTagSetterInterface * klass)
+{
+  /* nothing to do here, it's a dummy interface */
 }
 
 static void
@@ -123,9 +103,9 @@ gst_tag_data_free (gpointer p)
   GstTagData *data = (GstTagData *) p;
 
   if (data->list)
-    gst_tag_list_free (data->list);
+    gst_tag_list_unref (data->list);
 
-  g_static_mutex_free (&data->lock);
+  g_mutex_clear (&data->lock);
 
   g_slice_free (GstTagData, data);
 }
@@ -137,20 +117,22 @@ gst_tag_setter_get_data (GstTagSetter * setter)
 
   data = g_object_get_qdata (G_OBJECT (setter), gst_tag_key);
   if (!data) {
-    static GStaticMutex create_mutex = G_STATIC_MUTEX_INIT;
-
     /* make sure no other thread is creating a GstTagData at the same time */
-    g_static_mutex_lock (&create_mutex);
+    static GMutex create_mutex; /* no initialisation required */
+
+    g_mutex_lock (&create_mutex);
+
     data = g_object_get_qdata (G_OBJECT (setter), gst_tag_key);
     if (!data) {
       data = g_slice_new (GstTagData);
-      g_static_mutex_init (&data->lock);
+      g_mutex_init (&data->lock);
       data->list = NULL;
       data->mode = GST_TAG_MERGE_KEEP;
       g_object_set_qdata_full (G_OBJECT (setter), gst_tag_key, data,
           gst_tag_data_free);
     }
-    g_static_mutex_unlock (&create_mutex);
+
+    g_mutex_unlock (&create_mutex);
   }
 
   return data;
@@ -162,8 +144,6 @@ gst_tag_setter_get_data (GstTagSetter * setter)
  *
  * Reset the internal taglist. Elements should call this from within the
  * state-change handler.
- *
- * Since: 0.10.22
  */
 void
 gst_tag_setter_reset_tags (GstTagSetter * setter)
@@ -174,12 +154,12 @@ gst_tag_setter_reset_tags (GstTagSetter * setter)
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   if (data->list) {
-    gst_tag_list_free (data->list);
+    gst_tag_list_unref (data->list);
     data->list = NULL;
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -202,14 +182,14 @@ gst_tag_setter_merge_tags (GstTagSetter * setter, const GstTagList * list,
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   if (data->list == NULL) {
     if (mode != GST_TAG_MERGE_KEEP_ALL)
       data->list = gst_tag_list_copy (list);
   } else {
     gst_tag_list_insert (data->list, list, mode);
   }
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -220,7 +200,7 @@ gst_tag_setter_merge_tags (GstTagSetter * setter, const GstTagList * list,
  * @...: more tag / value pairs to set
  *
  * Adds the given tag / value pairs on the setter using the given merge mode.
- * The list must be terminated with NULL.
+ * The list must be terminated with %NULL.
  */
 void
 gst_tag_setter_add_tags (GstTagSetter * setter, GstTagMergeMode mode,
@@ -244,7 +224,7 @@ gst_tag_setter_add_tags (GstTagSetter * setter, GstTagMergeMode mode,
  * @...: 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 NULL.
+ * The list must be terminated with %NULL.
  */
 void
 gst_tag_setter_add_tag_values (GstTagSetter * setter, GstTagMergeMode mode,
@@ -268,7 +248,7 @@ gst_tag_setter_add_tag_values (GstTagSetter * setter, GstTagMergeMode mode,
  * @var_args: tag / value pairs to set
  *
  * Adds the given tag / value pairs on the setter using the given merge mode.
- * The list must be terminated with NULL.
+ * The list must be terminated with %NULL.
  */
 void
 gst_tag_setter_add_tag_valist (GstTagSetter * setter, GstTagMergeMode mode,
@@ -281,13 +261,13 @@ gst_tag_setter_add_tag_valist (GstTagSetter * setter, GstTagMergeMode mode,
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   if (!data->list)
     data->list = gst_tag_list_new_empty ();
 
   gst_tag_list_add_valist (data->list, mode, tag, var_args);
 
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -298,7 +278,7 @@ gst_tag_setter_add_tag_valist (GstTagSetter * setter, GstTagMergeMode mode,
  * @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 NULL.
+ * The list must be terminated with %NULL.
  */
 void
 gst_tag_setter_add_tag_valist_values (GstTagSetter * setter,
@@ -311,14 +291,14 @@ gst_tag_setter_add_tag_valist_values (GstTagSetter * setter,
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
 
   if (!data->list)
     data->list = gst_tag_list_new_empty ();
 
   gst_tag_list_add_valist_values (data->list, mode, tag, var_args);
 
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -329,8 +309,6 @@ gst_tag_setter_add_tag_valist_values (GstTagSetter * setter,
  * @value: GValue to set for the tag
  *
  * Adds the given tag / GValue pair on the setter using the given merge mode.
- *
- * Since: 0.10.24
  */
 void
 gst_tag_setter_add_tag_value (GstTagSetter * setter,
@@ -343,14 +321,14 @@ gst_tag_setter_add_tag_value (GstTagSetter * setter,
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
 
   if (!data->list)
     data->list = gst_tag_list_new_empty ();
 
   gst_tag_list_add_value (data->list, mode, tag, value);
 
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -363,7 +341,7 @@ gst_tag_setter_add_tag_value (GstTagSetter * setter,
  * This function is not thread-safe.
  *
  * Returns: (transfer none): a current snapshot of the taglist used in the
- *          setter or NULL if none is used.
+ *          setter or %NULL if none is used.
  */
 const GstTagList *
 gst_tag_setter_get_tag_list (GstTagSetter * setter)
@@ -392,9 +370,9 @@ gst_tag_setter_set_tag_merge_mode (GstTagSetter * setter, GstTagMergeMode mode)
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   data->mode = mode;
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 }
 
 /**
@@ -416,9 +394,9 @@ gst_tag_setter_get_tag_merge_mode (GstTagSetter * setter)
 
   data = gst_tag_setter_get_data (setter);
 
-  g_static_mutex_lock (&data->lock);
+  GST_TAG_DATA_LOCK (data);
   mode = data->mode;
-  g_static_mutex_unlock (&data->lock);
+  GST_TAG_DATA_UNLOCK (data);
 
   return mode;
 }