miniobject: add GST_TYPE_MINI_OBJECT
authorGuillaume Desmottes <guillaume.desmottes@collabora.com>
Wed, 24 Feb 2021 12:03:47 +0000 (13:03 +0100)
committerGuillaume Desmottes <guillaume.desmottes@collabora.com>
Wed, 24 Feb 2021 12:13:07 +0000 (13:13 +0100)
Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/764>

gst/gstminiobject.c
gst/gstminiobject.h

index bc7aef07bececde3f7857403aa8a7cc4494573d1..e980c89c40e794b25db2438bb4b1d5522b344a5b 100644 (file)
@@ -59,6 +59,8 @@
 #include "gst/gstinfo.h"
 #include <gobject/gvaluecollector.h>
 
+GType _gst_mini_object_type = 0;
+
 /* Mutex used for weak referencing */
 G_LOCK_DEFINE_STATIC (qdata_mutex);
 static GQuark weak_ref_quark;
@@ -72,6 +74,14 @@ static GQuark weak_ref_quark;
 #define LOCK_MASK ((SHARE_ONE - 1) - FLAG_MASK)
 #define LOCK_FLAG_MASK (SHARE_ONE - 1)
 
+/**
+ * GST_TYPE_MINI_OBJECT:
+ *
+ * The #GType associated with #GstMiniObject.
+ *
+ * Since: 1.20
+ */
+
 /* For backwards compatibility reasons we use the
  * guint and gpointer in the GstMiniObject struct in
  * a rather complicated way to store the parent(s) and qdata.
@@ -126,9 +136,12 @@ typedef struct
 #define QDATA_DATA(o,i)     (QDATA(o,i).data)
 #define QDATA_DESTROY(o,i)  (QDATA(o,i).destroy)
 
+GST_DEFINE_MINI_OBJECT_TYPE (GstMiniObject, gst_mini_object);
+
 void
 _priv_gst_mini_object_initialize (void)
 {
+  _gst_mini_object_type = gst_mini_object_get_type ();
   weak_ref_quark = g_quark_from_static_string ("GstMiniObjectWeakRefQuark");
 }
 
index b931e76e7a647589da0bb41cbfb49f26799dd7d1..f4dfa8d913765688f933bfa85e0391bd42776102 100644 (file)
 
 G_BEGIN_DECLS
 
+GST_API GType _gst_mini_object_type;
+
+#define GST_TYPE_MINI_OBJECT               (_gst_mini_object_type)
+
 #define GST_IS_MINI_OBJECT_TYPE(obj,type)  ((obj) && GST_MINI_OBJECT_TYPE(obj) == (type))
 #define GST_MINI_OBJECT_CAST(obj)          ((GstMiniObject*)(obj))
 #define GST_MINI_OBJECT_CONST_CAST(obj)    ((const GstMiniObject*)(obj))
@@ -36,6 +40,9 @@ G_BEGIN_DECLS
 
 typedef struct _GstMiniObject GstMiniObject;
 
+GST_API
+GType           gst_mini_object_get_type   (void);
+
 /**
  * GstMiniObjectCopyFunction:
  * @obj: MiniObject to copy