source: trunk/third/gstreamer/gst/gstxml.h @ 21448

Revision 21448, 3.1 KB checked in by ghudson, 20 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r21447, which included commits to RCS files with non-trunk default branches.
Line 
1/* GStreamer
2 * Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
3 *                    2000 Wim Taymans <wim.taymans@chello.be>
4 *
5 * gstxml.h: Header for XML save/restore operations of pipelines
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 * Library General Public License for more details.
16 *
17 * You should have received a copy of the GNU Library General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
20 * Boston, MA 02111-1307, USA.
21 */
22
23#ifndef __GST_XML_H__
24#define __GST_XML_H__
25
26#include <gst/gstconfig.h>
27
28#ifndef GST_DISABLE_LOADSAVE
29
30#include <gst/gstelement.h>
31
32G_BEGIN_DECLS
33
34#define GST_TYPE_XML            (gst_xml_get_type ())
35#define GST_XML(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_XML, GstXML))
36#define GST_IS_XML(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_XML))
37#define GST_XML_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_XML, GstXMLClass))
38#define GST_IS_XML_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_XML))
39
40#define GST_XML_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), GST_TYPE_XML, GstXMLClass))
41
42typedef struct _GstXML GstXML;
43typedef struct _GstXMLClass GstXMLClass;
44
45struct _GstXML {
46  GstObject object;
47
48  GList      *topelements;
49
50  xmlNsPtr ns;
51
52  gpointer _gst_reserved[GST_PADDING];
53};
54
55struct _GstXMLClass {
56  GstObjectClass parent_class;
57
58  /* signal callbacks */
59  void (*object_loaded)         (GstXML *xml, GstObject *object, xmlNodePtr self);
60  void (*object_saved)          (GstXML *xml, GstObject *object, xmlNodePtr self);
61
62  gpointer _gst_reserved[GST_PADDING];
63};
64
65GType           gst_xml_get_type        (void);
66
67
68/* create an XML document out of a pipeline */
69xmlDocPtr       gst_xml_write           (GstElement *element);
70
71/* write a formatted representation of a pipeline to an open file */
72gint            gst_xml_write_file      (GstElement *element, FILE *out);
73
74GstXML*         gst_xml_new             (void);
75
76gboolean        gst_xml_parse_doc       (GstXML *xml, xmlDocPtr doc, const guchar *root);
77gboolean        gst_xml_parse_file      (GstXML *xml, const guchar *fname, const guchar *root);
78gboolean        gst_xml_parse_memory    (GstXML *xml, guchar *buffer, guint size, const gchar *root);
79
80
81GstElement*     gst_xml_get_element     (GstXML *xml, const guchar *name);
82GList*          gst_xml_get_topelements (GstXML *xml);
83
84GstElement*     gst_xml_make_element    (xmlNodePtr cur, GstObject *parent);
85
86G_END_DECLS
87
88#else /* GST_DISABLE_LOADSAVE */
89
90#if defined _GNUC_ && _GNUC_ >= 3
91#pragma GCC poison gst_xml_write
92#pragma GCC poison gst_xml_new
93#pragma GCC poison gst_xml_parse_doc
94#pragma GCC poison gst_xml_parse_file
95#pragma GCC poison gst_xml_parse_memory
96#pragma GCC poison gst_xml_get_element
97#pragma GCC poison gst_xml_get_topelements
98#endif
99
100#endif /* GST_DISABLE_LOADSAVE */
101
102#endif /* __GST_XML_H__ */
Note: See TracBrowser for help on using the repository browser.