This is a megapatch with the following changes:
[platform/upstream/gstreamer.git] / examples / xml / runxml.c
1 #include <stdlib.h>
2 #include <gst/gst.h>
3
4 gboolean playing;
5
6 static void
7 xml_loaded (GstXML *xml, GstObject *object, gpointer data)
8 {
9   if (GST_IS_PAD (object)) {
10     g_print ("pad loaded '%s'\n", gst_pad_get_name (GST_PAD (object)));
11   }
12   else if (GST_IS_ELEMENT (object)) {
13     g_print ("element loaded '%s'\n", gst_element_get_name (GST_ELEMENT (object)));
14   }
15 }
16
17 int main(int argc,char *argv[])
18 {
19   GstXML *xml;
20   GstElement *bin;
21   gboolean ret;
22
23   gst_init(&argc,&argv);
24
25   xml = gst_xml_new ();
26
27   gtk_signal_connect (GTK_OBJECT (xml), "object_loaded", xml_loaded, NULL);
28
29   ret = gst_xml_parse_file(xml, "xmlTest.gst", NULL);
30   g_assert (ret == TRUE);
31
32   bin = gst_xml_get_element(xml, "bin");
33   g_assert (bin != NULL);
34
35   gst_element_set_state(bin, GST_STATE_PLAYING);
36
37   playing = TRUE;
38
39   while (gst_bin_iterate(GST_BIN(bin)));
40
41   gst_element_set_state(bin, GST_STATE_NULL);
42
43   exit(0);
44 }
45