element-maker: Update templates for 1.0
[platform/upstream/gstreamer.git] / tools / element-templates / element
1 /* vim: set filetype=c: */
2 % ClassName
3 GstElement
4 % TYPE_CLASS_NAME
5 GST_TYPE_ELEMENT
6 % pads
7 sinkpad srcpad
8 % pkg-config
9 gstreamer-1.0
10 % includes
11 #include <gst/gst.h>
12 % prototypes
13 static GstPad *gst_replace_request_new_pad (GstElement * element,
14     GstPadTemplate * templ, const gchar * name);
15 static void gst_replace_release_pad (GstElement * element, GstPad * pad);
16 static GstStateChangeReturn
17 gst_replace_change_state (GstElement * element, GstStateChange transition);
18 static GstClock *gst_replace_provide_clock (GstElement * element);
19 static gboolean gst_replace_set_clock (GstElement * element, GstClock * clock);
20 static GstIndex *gst_replace_get_index (GstElement * element);
21 static void gst_replace_set_index (GstElement * element, GstIndex * index);
22 static gboolean gst_replace_send_event (GstElement * element, GstEvent * event);
23 static gboolean gst_replace_query (GstElement * element, GstQuery * query);
24 % declare-class
25   GstElementClass *element_class = GST_ELEMENT_CLASS (klass);
26 % set-methods
27   element_class->request_new_pad = GST_DEBUG_FUNCPTR (gst_replace_request_new_pad);
28   element_class->release_pad = GST_DEBUG_FUNCPTR (gst_replace_release_pad);
29   element_class->change_state = GST_DEBUG_FUNCPTR (gst_replace_change_state);
30   element_class->provide_clock = GST_DEBUG_FUNCPTR (gst_replace_provide_clock);
31   element_class->set_clock = GST_DEBUG_FUNCPTR (gst_replace_set_clock);
32   element_class->get_index = GST_DEBUG_FUNCPTR (gst_replace_get_index);
33   element_class->set_index = GST_DEBUG_FUNCPTR (gst_replace_set_index);
34   element_class->send_event = GST_DEBUG_FUNCPTR (gst_replace_send_event);
35   element_class->query = GST_DEBUG_FUNCPTR (gst_replace_query);
36 % methods
37
38
39 static GstPad *
40 gst_replace_request_new_pad (GstElement * element, GstPadTemplate * templ,
41     const gchar * name)
42 {
43
44   return NULL;
45 }
46
47 static void
48 gst_replace_release_pad (GstElement * element, GstPad * pad)
49 {
50
51 }
52
53 static GstStateChangeReturn
54 gst_replace_change_state (GstElement * element, GstStateChange transition)
55 {
56   GstReplace *replace;
57   GstStateChangeReturn ret;
58
59   g_return_val_if_fail (GST_IS_REPLACE (element), GST_STATE_CHANGE_FAILURE);
60   replace = GST_REPLACE (element);
61
62   switch (transition) {
63     case GST_STATE_CHANGE_NULL_TO_READY:
64       break;
65     case GST_STATE_CHANGE_READY_TO_PAUSED:
66       break;
67     case GST_STATE_CHANGE_PAUSED_TO_PLAYING:
68       break;
69     default:
70       break;
71   }
72
73   ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition);
74
75   switch (transition) {
76     case GST_STATE_CHANGE_PLAYING_TO_PAUSED:
77       break;
78     case GST_STATE_CHANGE_PAUSED_TO_READY:
79       break;
80     case GST_STATE_CHANGE_READY_TO_NULL:
81       break;
82     default:
83       break;
84   }
85
86   return ret;
87 }
88
89 static GstClock *
90 gst_replace_provide_clock (GstElement * element)
91 {
92
93   return NULL;
94 }
95
96 static gboolean
97 gst_replace_set_clock (GstElement * element, GstClock * clock)
98 {
99
100   return GST_ELEMENT_CLASS (parent_class)->set_clock (element, clock);
101 }
102
103 static GstIndex *
104 gst_replace_get_index (GstElement * element)
105 {
106
107   return NULL;
108 }
109
110 static void
111 gst_replace_set_index (GstElement * element, GstIndex * index)
112 {
113
114 }
115
116 static gboolean
117 gst_replace_send_event (GstElement * element, GstEvent * event)
118 {
119
120   return TRUE;
121 }
122
123 static gboolean
124 gst_replace_query (GstElement * element, GstQuery * query)
125 {
126   GstReplace *replace = GST_REPLACE (element);
127   gboolean ret;
128
129   GST_DEBUG_OBJECT (replace, "query");
130
131   switch (GST_QUERY_TYPE (query)) {
132     default:
133       ret = GST_ELEMENT_CLASS (parent_class)->query (element, query);
134       break;
135   }
136
137   return ret;
138 }
139 % end