diff options
author | Wim Taymans <wim.taymans@gmail.com> | 2001-01-30 23:53:04 +0000 |
---|---|---|
committer | Wim Taymans <wim.taymans@gmail.com> | 2001-01-30 23:53:04 +0000 |
commit | 1a5cfae0f635408e4d2e7d155ef90ecf4f45609a (patch) | |
tree | ded3dfe549c568126f2fc5ea61c1b02f767efb5f /gst/gstxml.h | |
parent | 6873d31fed213566cfa4230a017b5b76e2d6aaa2 (diff) |
Added a first attempt for XML embedding in the main core XML.
Original commit message from CVS:
Added a first attempt for XML embedding in the main core XML.
Objects will emit a signal that a user app can connect to in order to
insert its XML into the tree.
You can catch the object_loaded signal in GstXML to parse the user
supplied XML data in the stream. The object_loaded signal is implemented
with a custom made class signal. All GstObject classes now automatically
create a GstSignalObject that serves as a proxy to the user app when an
object is loaded. All objects are currently responsible to emit the
class signal themselves.
runxml and createxml serve as an example how the XML hooks can be used to
insert and retrieve custom XML tags.
Diffstat (limited to 'gst/gstxml.h')
-rw-r--r-- | gst/gstxml.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/gst/gstxml.h b/gst/gstxml.h index a797272c92..7d114f1c69 100644 --- a/gst/gstxml.h +++ b/gst/gstxml.h @@ -52,6 +52,9 @@ extern "C" { typedef struct _GstXML GstXML; typedef struct _GstXMLClass GstXMLClass; +typedef void (*GstXMLObjectLoadedCallback) (GstXML *xml, GstObject *object, xmlNodePtr self); +typedef void (*GstXMLObjectSavedCallback) (GstXML *xml, GstObject *object, xmlNodePtr self); + struct _GstXML { GstObject object; @@ -64,8 +67,8 @@ struct _GstXMLClass { GstObjectClass parent_class; /* signal callbacks */ - void (*object_loaded) (GstXML *xml, GstObject *object, xmlNodePtr self); - void (*object_saved) (GstXML *xml, GstObject *object, xmlNodePtr self); + void (*object_loaded) (GstXML *xml, GstObject *object, xmlNodePtr self); + void (*object_saved) (GstXML *xml, GstObject *object, xmlNodePtr self); }; GtkType gst_xml_get_type (void); @@ -76,6 +79,7 @@ xmlDocPtr gst_xml_write (GstElement *element); GstXML* gst_xml_new (void); +gboolean gst_xml_parse_doc (GstXML *xml, xmlDocPtr doc, const guchar *root); gboolean gst_xml_parse_file (GstXML *xml, const guchar *fname, const guchar *root); gboolean gst_xml_parse_memory (GstXML *xml, guchar *buffer, guint size, const gchar *root); @@ -83,8 +87,8 @@ gboolean gst_xml_parse_memory (GstXML *xml, guchar *buffer, guint size, const gc GstElement* gst_xml_get_element (GstXML *xml, const guchar *name); GList* gst_xml_get_topelements (GstXML *xml); -void gst_xml_object_loaded (GstXML *xml, GstObject *object, xmlNodePtr self); -void gst_xml_object_saved (GstXML *xml, GstObject *object, xmlNodePtr self); +void gst_xml_connect_object_loaded (GstXML *xml, GstXMLObjectLoadedCallback *callback, gpointer data); +void gst_xml_connect_object_saved (GstXML *xml, GstXMLObjectSavedCallback *callback, gpointer data); #ifdef __cplusplus } |