835df3d3e948bed374d7c0d32d4c0f624810ea66
[platform/upstream/gstreamer.git] / tests / old / testsuite / elements / property.c
1 /*
2  * test for setting and getting of object properties
3  * creates a fakesrc
4  * sets silent (boolean), name (string), and sizemin (int)
5  * then retrieves the set values and compares
6  * thomas@apestaart.org
7  * originally written for 0.4.0
8  */
9
10 #include <string.h>
11 #include <gst/gst.h>
12
13 GstElement *
14 element_create (char *name, char *element)
15   /*
16    * create the element
17    * print an error if it can't be created
18    * return NULL if it couldn't be created
19    * return element if it did work
20    */
21 {
22   GstElement *el = NULL;
23
24   el = (GstElement *) gst_element_factory_make (element, name);
25   if (el == NULL) {
26     fprintf (stderr, "Could not create element %s (%s) !\n", name, element);
27     return NULL;
28   } else
29     return el;
30 }
31
32 int
33 main (int argc, char *argv[])
34 {
35   GstElement *src;
36   gint retval = 0;
37   gboolean silent_set, silent_get;
38   gint sizemin_set, sizemin_get;
39   gchar *name_set, *name_get;
40
41   /* init */
42   gst_init (&argc, &argv);
43
44   /* create */
45   g_print ("Creating element\n");
46   if (!(src = element_create ("src", "fakesrc")))
47     return 1;
48
49   /* set */
50   silent_set = TRUE;
51   sizemin_set = 1;
52   name_set = g_strdup_printf ("test");
53
54   gst_element_set (src,
55       "name", name_set, "sizemin", sizemin_set, "silent", silent_set, NULL);
56   /* get */
57   gst_element_get (src,
58       "name", &name_get, "sizemin", &sizemin_get, "silent", &silent_get, NULL);
59
60   /* compare */
61   if (sizemin_set != sizemin_get) {
62     g_print ("sizemin: set value %d differs from returned value %d\n",
63         sizemin_set, sizemin_get);
64     retval = 1;
65   } else
66     g_print ("name: set right\n");
67
68   if (silent_set != silent_get) {
69     g_print ("silent: set value %s differs from returned value %s\n",
70         silent_set ? "TRUE" : "FALSE", silent_get ? "TRUE" : "FALSE");
71     retval = 1;
72   } else
73     g_print ("silent: set right\n");
74
75   if (strcmp (name_set, name_get) != 0) {
76     g_print ("name: set value %s differs from returned value %s\n",
77         name_set, name_get);
78     retval = 1;
79   } else
80     g_print ("name: set right\n");
81
82   return retval;
83 }