| /* vim: set filetype=c: */ |
| % ClassName |
| GstElement |
| % TYPE_CLASS_NAME |
| GST_TYPE_ELEMENT |
| % pads |
| sinkpad srcpad |
| % pkg-config |
| gstreamer-1.0 |
| % includes |
| #include <gst/gst.h> |
| % prototypes |
| static GstPad *gst_replace_request_new_pad (GstElement * element, |
| GstPadTemplate * templ, const gchar * name); |
| static void gst_replace_release_pad (GstElement * element, GstPad * pad); |
| static GstStateChangeReturn |
| gst_replace_change_state (GstElement * element, GstStateChange transition); |
| static GstClock *gst_replace_provide_clock (GstElement * element); |
| static gboolean gst_replace_set_clock (GstElement * element, GstClock * clock); |
| static GstIndex *gst_replace_get_index (GstElement * element); |
| static void gst_replace_set_index (GstElement * element, GstIndex * index); |
| static gboolean gst_replace_send_event (GstElement * element, GstEvent * event); |
| static gboolean gst_replace_query (GstElement * element, GstQuery * query); |
| % declare-class |
| GstElementClass *element_class = GST_ELEMENT_CLASS (klass); |
| % set-methods |
| element_class->request_new_pad = GST_DEBUG_FUNCPTR (gst_replace_request_new_pad); |
| element_class->release_pad = GST_DEBUG_FUNCPTR (gst_replace_release_pad); |
| element_class->change_state = GST_DEBUG_FUNCPTR (gst_replace_change_state); |
| element_class->provide_clock = GST_DEBUG_FUNCPTR (gst_replace_provide_clock); |
| element_class->set_clock = GST_DEBUG_FUNCPTR (gst_replace_set_clock); |
| element_class->get_index = GST_DEBUG_FUNCPTR (gst_replace_get_index); |
| element_class->set_index = GST_DEBUG_FUNCPTR (gst_replace_set_index); |
| element_class->send_event = GST_DEBUG_FUNCPTR (gst_replace_send_event); |
| element_class->query = GST_DEBUG_FUNCPTR (gst_replace_query); |
| % methods |
| |
| |
| static GstPad * |
| gst_replace_request_new_pad (GstElement * element, GstPadTemplate * templ, |
| const gchar * name) |
| { |
| |
| return NULL; |
| } |
| |
| static void |
| gst_replace_release_pad (GstElement * element, GstPad * pad) |
| { |
| |
| } |
| |
| static GstStateChangeReturn |
| gst_replace_change_state (GstElement * element, GstStateChange transition) |
| { |
| GstReplace *replace; |
| GstStateChangeReturn ret; |
| |
| g_return_val_if_fail (GST_IS_REPLACE (element), GST_STATE_CHANGE_FAILURE); |
| replace = GST_REPLACE (element); |
| |
| switch (transition) { |
| case GST_STATE_CHANGE_NULL_TO_READY: |
| break; |
| case GST_STATE_CHANGE_READY_TO_PAUSED: |
| break; |
| case GST_STATE_CHANGE_PAUSED_TO_PLAYING: |
| break; |
| default: |
| break; |
| } |
| |
| ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); |
| |
| switch (transition) { |
| case GST_STATE_CHANGE_PLAYING_TO_PAUSED: |
| break; |
| case GST_STATE_CHANGE_PAUSED_TO_READY: |
| break; |
| case GST_STATE_CHANGE_READY_TO_NULL: |
| break; |
| default: |
| break; |
| } |
| |
| return ret; |
| } |
| |
| static GstClock * |
| gst_replace_provide_clock (GstElement * element) |
| { |
| |
| return NULL; |
| } |
| |
| static gboolean |
| gst_replace_set_clock (GstElement * element, GstClock * clock) |
| { |
| |
| return GST_ELEMENT_CLASS (parent_class)->set_clock (element, clock); |
| } |
| |
| static GstIndex * |
| gst_replace_get_index (GstElement * element) |
| { |
| |
| return NULL; |
| } |
| |
| static void |
| gst_replace_set_index (GstElement * element, GstIndex * index) |
| { |
| |
| } |
| |
| static gboolean |
| gst_replace_send_event (GstElement * element, GstEvent * event) |
| { |
| |
| return TRUE; |
| } |
| |
| static gboolean |
| gst_replace_query (GstElement * element, GstQuery * query) |
| { |
| GstReplace *replace = GST_REPLACE (element); |
| gboolean ret; |
| |
| GST_DEBUG_OBJECT (replace, "query"); |
| |
| switch (GST_QUERY_TYPE (query)) { |
| default: |
| ret = GST_ELEMENT_CLASS (parent_class)->query (element, query); |
| break; |
| } |
| |
| return ret; |
| } |
| % end |