gstobject.h | gstobject.h | |||
---|---|---|---|---|
skipping to change at line 44 | skipping to change at line 44 | |||
#define GST_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OBJECT)) | #define GST_IS_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_OBJECT)) | |||
#define GST_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G ST_TYPE_OBJECT)) | #define GST_IS_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), G ST_TYPE_OBJECT)) | |||
#define GST_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G ST_TYPE_OBJECT, GstObjectClass)) | #define GST_OBJECT_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), G ST_TYPE_OBJECT, GstObjectClass)) | |||
#define GST_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_OBJECT, GstObject)) | #define GST_OBJECT(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_OBJECT, GstObject)) | |||
#define GST_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((k lass), GST_TYPE_OBJECT, GstObjectClass)) | #define GST_OBJECT_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((k lass), GST_TYPE_OBJECT, GstObjectClass)) | |||
#define GST_OBJECT_CAST(obj) ((GstObject*)(obj)) | #define GST_OBJECT_CAST(obj) ((GstObject*)(obj)) | |||
#define GST_OBJECT_CLASS_CAST(klass) ((GstObjectClass*)(klass)) | #define GST_OBJECT_CLASS_CAST(klass) ((GstObjectClass*)(klass)) | |||
/* make sure we don't change the object size but still make it compile | /* make sure we don't change the object size but still make it compile | |||
* without libxml */ | * without libxml */ | |||
#ifdef GST_DISABLE_LOADSAVE | #if defined(GST_DISABLE_LOADSAVE) || defined(GST_DISABLE_DEPRECATED) | |||
#define GstXmlNodePtr gpointer | #define GstXmlNodePtr gpointer | |||
#else | #else | |||
#define GstXmlNodePtr xmlNodePtr | #define GstXmlNodePtr xmlNodePtr | |||
#endif | #endif | |||
/** | /** | |||
* GstObjectFlags: | * GstObjectFlags: | |||
* @GST_OBJECT_DISPOSING: the object is been destroyed, don't use it anymor e | * @GST_OBJECT_DISPOSING: the object is been destroyed, don't use it anymor e | |||
* @GST_OBJECT_FLOATING: the object has a floating reference count (e.g. i ts | * @GST_OBJECT_FLOATING: the object has a floating reference count (e.g. i ts | |||
* not assigned to a bin) | * not assigned to a bin) | |||
skipping to change at line 102 | skipping to change at line 102 | |||
/** | /** | |||
* GST_OBJECT_LOCK: | * GST_OBJECT_LOCK: | |||
* @obj: a #GstObject to lock | * @obj: a #GstObject to lock | |||
* | * | |||
* This macro will obtain a lock on the object, making serialization possib le. | * This macro will obtain a lock on the object, making serialization possib le. | |||
* It blocks until the lock can be obtained. | * It blocks until the lock can be obtained. | |||
*/ | */ | |||
#define GST_OBJECT_LOCK(obj) g_mutex_lock(GST_OBJECT_GET_ LOCK(obj)) | #define GST_OBJECT_LOCK(obj) g_mutex_lock(GST_OBJECT_GET_ LOCK(obj)) | |||
/** | /** | |||
* GST_OBJECT_TRYLOCK: | * GST_OBJECT_TRYLOCK: | |||
* @obj: a #Object. | * @obj: a #GstObject. | |||
* | * | |||
* This macro will try to obtain a lock on the object, but will return with | * This macro will try to obtain a lock on the object, but will return with | |||
* FALSE if it can't get it immediately. | * FALSE if it can't get it immediately. | |||
*/ | */ | |||
#define GST_OBJECT_TRYLOCK(obj) g_mutex_trylock(GST_OBJECT_G ET_LOCK(obj)) | #define GST_OBJECT_TRYLOCK(obj) g_mutex_trylock(GST_OBJECT_G ET_LOCK(obj)) | |||
/** | /** | |||
* GST_OBJECT_UNLOCK: | * GST_OBJECT_UNLOCK: | |||
* @obj: a #GstObject to unlock. | * @obj: a #GstObject to unlock. | |||
* | * | |||
* This macro releases a lock on the object. | * This macro releases a lock on the object. | |||
skipping to change at line 186 | skipping to change at line 186 | |||
#define GST_OBJECT_IS_FLOATING(obj) (GST_OBJECT_FLAG_IS_SET (obj, GST_O BJECT_FLOATING)) | #define GST_OBJECT_IS_FLOATING(obj) (GST_OBJECT_FLAG_IS_SET (obj, GST_O BJECT_FLOATING)) | |||
typedef struct _GstObject GstObject; | typedef struct _GstObject GstObject; | |||
typedef struct _GstObjectClass GstObjectClass; | typedef struct _GstObjectClass GstObjectClass; | |||
/** | /** | |||
* GstObject: | * GstObject: | |||
* @refcount: unused | * @refcount: unused | |||
* @lock: object LOCK | * @lock: object LOCK | |||
* @name: The name of the object | * @name: The name of the object | |||
* @name_prefix: used for debugging | * @name_prefix: unused | |||
* @parent: this object's parent, weak ref | * @parent: this object's parent, weak ref | |||
* @flags: use GST_OBJECT_IS_XXX macros to access the flags | * @flags: use GST_OBJECT_IS_XXX macros to access the flags | |||
* | * | |||
* GStreamer base object class. | * GStreamer base object class. | |||
*/ | */ | |||
struct _GstObject { | struct _GstObject { | |||
GObject object; | GObject object; | |||
/*< public >*/ | /*< public >*/ | |||
gint refcount; | gint refcount; /* unused (FIXME 0.11: remove) */ | |||
/*< public >*/ /* with LOCK */ | /*< public >*/ /* with LOCK */ | |||
GMutex *lock; /* object LOCK */ | GMutex *lock; /* object LOCK */ | |||
gchar *name; /* object name */ | gchar *name; /* object name */ | |||
gchar *name_prefix; /* used for debugging */ | gchar *name_prefix; /* (un)used for debugging (FIXME 0.11: remove ) */ | |||
GstObject *parent; /* this object's parent, weak ref */ | GstObject *parent; /* this object's parent, weak ref */ | |||
guint32 flags; | guint32 flags; | |||
/*< private >*/ | /*< private >*/ | |||
gpointer _gst_reserved; | gpointer _gst_reserved; | |||
}; | }; | |||
/** | /** | |||
* GST_CLASS_GET_LOCK: | * GST_CLASS_GET_LOCK: | |||
* @obj: a #GstObjectClass | * @obj: a #GstObjectClass | |||
skipping to change at line 239 | skipping to change at line 239 | |||
*/ | */ | |||
#define GST_CLASS_TRYLOCK(obj) (g_static_rec_mutex_trylock(GST_CLA SS_GET_LOCK(obj))) | #define GST_CLASS_TRYLOCK(obj) (g_static_rec_mutex_trylock(GST_CLA SS_GET_LOCK(obj))) | |||
/** | /** | |||
* GST_CLASS_UNLOCK: | * GST_CLASS_UNLOCK: | |||
* @obj: a #GstObjectClass | * @obj: a #GstObjectClass | |||
* | * | |||
* Unlock the class. | * Unlock the class. | |||
*/ | */ | |||
#define GST_CLASS_UNLOCK(obj) (g_static_rec_mutex_unlock(GST_CLAS S_GET_LOCK(obj))) | #define GST_CLASS_UNLOCK(obj) (g_static_rec_mutex_unlock(GST_CLAS S_GET_LOCK(obj))) | |||
/* | /** | |||
* GstObjectClass: | * GstObjectClass: | |||
* | * @parent_class: parent | |||
* @path_string_separator: separator used by gst_object_get_path_string() | ||||
* @signal_object: is used to signal to the whole class | * @signal_object: is used to signal to the whole class | |||
* @lock: class lock to be used with GST_CLASS_GET_LOCK(), GST_CLASS_LOCK() | ||||
, GST_CLASS_UNLOCK() and others. | ||||
* @parent_set: default signal handler | ||||
* @parent_unset: default signal handler | ||||
* @object_saved: default signal handler | ||||
* @deep_notify: default signal handler | ||||
* @save_thyself: xml serialisation | * @save_thyself: xml serialisation | |||
* @restore_thyself: xml de-serialisation | * @restore_thyself: xml de-serialisation | |||
* | ||||
* GStreamer base object class. | ||||
*/ | */ | |||
struct _GstObjectClass { | struct _GstObjectClass { | |||
GObjectClass parent_class; | GObjectClass parent_class; | |||
gchar *path_string_separator; | const gchar *path_string_separator; | |||
GObject *signal_object; | GObject *signal_object; | |||
/* FIXME-0.11: remove this, plus the above GST_CLASS_*_LOCK macros */ | ||||
GStaticRecMutex *lock; | GStaticRecMutex *lock; | |||
/* signals */ | /* signals */ | |||
/* FIXME-0.11: remove, and pass NULL in g_signal_new(), we never used the m */ | ||||
void (*parent_set) (GstObject * object, GstObject * parent ); | void (*parent_set) (GstObject * object, GstObject * parent ); | |||
void (*parent_unset) (GstObject * object, GstObject * parent ); | void (*parent_unset) (GstObject * object, GstObject * parent ); | |||
/* FIXME 0.11: Remove this, it's deprecated */ | ||||
void (*object_saved) (GstObject * object, GstXmlNodePtr pare nt); | void (*object_saved) (GstObject * object, GstXmlNodePtr pare nt); | |||
void (*deep_notify) (GstObject * object, GstObject * orig, GParamSpec * pspec); | void (*deep_notify) (GstObject * object, GstObject * orig, GParamSpec * pspec); | |||
/*< public >*/ | /*< public >*/ | |||
/* virtual methods for subclasses */ | /* virtual methods for subclasses */ | |||
/* FIXME 0.11: Remove this, it's deprecated */ | ||||
GstXmlNodePtr (*save_thyself) (GstObject * object, GstXmlNodePtr pare nt); | GstXmlNodePtr (*save_thyself) (GstObject * object, GstXmlNodePtr pare nt); | |||
void (*restore_thyself) (GstObject * object, GstXmlNodePtr self ); | void (*restore_thyself) (GstObject * object, GstXmlNodePtr self ); | |||
/*< private >*/ | /*< private >*/ | |||
gpointer _gst_reserved[GST_PADDING]; | gpointer _gst_reserved[GST_PADDING]; | |||
}; | }; | |||
/* normal GObject stuff */ | /* normal GObject stuff */ | |||
GType gst_object_get_type (void); | GType gst_object_get_type (void); | |||
/* name routines */ | /* name routines */ | |||
gboolean gst_object_set_name (GstObject *object, const gc har *name); | gboolean gst_object_set_name (GstObject *object, const gc har *name); | |||
gchar* gst_object_get_name (GstObject *object); | gchar* gst_object_get_name (GstObject *object); | |||
#ifndef GST_DISABLE_DEPRECATED | ||||
void gst_object_set_name_prefix (GstObject *object, const gc har *name_prefix); | void gst_object_set_name_prefix (GstObject *object, const gc har *name_prefix); | |||
gchar* gst_object_get_name_prefix (GstObject *object); | gchar* gst_object_get_name_prefix (GstObject *object); | |||
#endif | ||||
/* parentage routines */ | /* parentage routines */ | |||
gboolean gst_object_set_parent (GstObject *object, GstObjec t *parent); | gboolean gst_object_set_parent (GstObject *object, GstObjec t *parent); | |||
GstObject* gst_object_get_parent (GstObject *object); | GstObject* gst_object_get_parent (GstObject *object); | |||
void gst_object_unparent (GstObject *object); | void gst_object_unparent (GstObject *object); | |||
gboolean gst_object_has_ancestor (GstObject *object, GstObjec t *ancestor); | gboolean gst_object_has_ancestor (GstObject *object, GstObjec t *ancestor); | |||
void gst_object_default_deep_notify (GObject *object, Gs tObject *orig, | void gst_object_default_deep_notify (GObject *object, Gs tObject *orig, | |||
GParamSpec *pspec, gchar * *excluded_props); | GParamSpec *pspec, gchar * *excluded_props); | |||
/* refcounting + life cycle */ | /* refcounting + life cycle */ | |||
gpointer gst_object_ref (gpointer object); | gpointer gst_object_ref (gpointer object); | |||
void gst_object_unref (gpointer object); | void gst_object_unref (gpointer object); | |||
void gst_object_ref_sink (gpointer object); | ||||
void gst_object_sink (gpointer object); | void gst_object_sink (gpointer object); | |||
/* replace object pointer */ | /* replace object pointer */ | |||
void gst_object_replace (GstObject **oldobj, GstObje ct *newobj); | void gst_object_replace (GstObject **oldobj, GstObje ct *newobj); | |||
/* printing out the 'path' of the object */ | /* printing out the 'path' of the object */ | |||
gchar * gst_object_get_path_string (GstObject *object); | gchar * gst_object_get_path_string (GstObject *object); | |||
/* misc utils */ | /* misc utils */ | |||
gboolean gst_object_check_uniqueness (GList *list, const gchar *n ame); | gboolean gst_object_check_uniqueness (GList *list, const gchar *n ame); | |||
/* load/save */ | /* load/save */ | |||
#ifndef GST_DISABLE_DEPRECATED | ||||
#ifndef GST_DISABLE_LOADSAVE | #ifndef GST_DISABLE_LOADSAVE | |||
GstXmlNodePtr gst_object_save_thyself (GstObject *object, GstXmlNodePt r parent); | GstXmlNodePtr gst_object_save_thyself (GstObject *object, GstXmlNodePt r parent); | |||
void gst_object_restore_thyself (GstObject *object, GstXmlNodePt r self); | void gst_object_restore_thyself (GstObject *object, GstXmlNodePt r self); | |||
#else | #else | |||
#if defined _GNUC_ && _GNUC_ >= 3 | #if defined __GNUC__ && __GNUC__ >= 3 | |||
#pragma GCC poison gst_object_save_thyself | #pragma GCC poison gst_object_save_thyself | |||
#pragma GCC poison gst_object_restore_thyself | #pragma GCC poison gst_object_restore_thyself | |||
#endif | #endif | |||
#endif | #endif | |||
#endif | ||||
/* class signal stuff */ | /* class signal stuff */ | |||
guint gst_class_signal_connect (GstObjectClass *klass, | guint gst_class_signal_connect (GstObjectClass *klass, | |||
const gchar *name, | const gchar *name, | |||
gpointer func, | gpointer func, | |||
gpointer func_data); | gpointer func_data); | |||
#ifndef GST_DISABLE_DEPRECATED | ||||
#ifndef GST_DISABLE_LOADSAVE | #ifndef GST_DISABLE_LOADSAVE | |||
void gst_class_signal_emit_by_name (GstObject * object, | void gst_class_signal_emit_by_name (GstObject * object, | |||
const gchar * name, | const gchar * name, | |||
GstXmlNodePtr self); | GstXmlNodePtr self); | |||
#else | #else | |||
#if defined _GNUC_ && _GNUC_ >= 3 | #if defined __GNUC__ && __GNUC__ >= 3 | |||
#pragma GCC poison gst_class_signal_emit_by_name | #pragma GCC poison gst_class_signal_emit_by_name | |||
#endif | #endif | |||
#endif | #endif | |||
#endif | ||||
G_END_DECLS | G_END_DECLS | |||
#endif /* __GST_OBJECT_H__ */ | #endif /* __GST_OBJECT_H__ */ | |||
End of changes. 23 change blocks. | ||||
10 lines changed or deleted | 31 lines changed or added | |||
This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ |