-enum
-{
- PROP_0,
- PROP_USE_TIME_OVERLAY,
- PROP_LAST
-};
-
-static GParamSpec *properties[PROP_LAST];
-
-static void
-get_property (GObject * object, guint property_id,
- GValue * value, GParamSpec * pspec)
-{
- GESVideoTestSource *self = GES_VIDEO_TEST_SOURCE (object);
-
- switch (property_id) {
- case PROP_USE_TIME_OVERLAY:
- g_value_set_boolean (value, self->priv->use_overlay);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
-}
-
-static void
-set_property (GObject * object, guint property_id,
- const GValue * value, GParamSpec * pspec)
-{
- GESVideoTestSource *self = GES_VIDEO_TEST_SOURCE (object);
-
- switch (property_id) {
- case PROP_USE_TIME_OVERLAY:
- {
- GstElement *os, *is;
- gboolean used_overlay = self->priv->use_overlay;
-
- if (!self->priv->overlay) {
- GST_ERROR_OBJECT (object, "Overlaying is disabled, you are probably"
- "missing some GStreamer plugin");
- return;
- }
-
- self->priv->use_overlay = g_value_get_boolean (value);
- if (used_overlay == self->priv->use_overlay)
- return;
-
- is = GST_ELEMENT (gst_object_get_parent (GST_OBJECT (self->
- priv->is_overlay_pad)));
-
- if (!is)
- return;
-
- os = GST_ELEMENT (gst_object_get_parent (GST_OBJECT (self->
- priv->os_overlay_pad)));
- if (!os) {
- gst_object_unref (is);
- return;
- }
-
- g_object_set (is, "active-pad",
- self->priv->use_overlay ? self->priv->is_overlay_pad : self->
- priv->is_passthrough_pad, NULL);
- g_object_set (os, "active-pad",
- self->priv->use_overlay ? self->priv->os_overlay_pad : self->
- priv->os_passthrough_pad, NULL);
-
- gst_object_unref (is);
- gst_object_unref (os);
-
- break;
- }
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
- }
-}
-
-static void
-_set_child_property (GESTimelineElement * self, GObject * child,
- GParamSpec * pspec, GValue * value)
-{
- GstElementFactory *f =
- GST_IS_ELEMENT (child) ? gst_element_get_factory (GST_ELEMENT (child)) :
- NULL;
-
- if (!f || g_strcmp0 (GST_OBJECT_NAME (f), "timeoverlay"))
- goto done;
-
- GST_INFO_OBJECT (self, "Activating time overlay as time mode is being set");
- g_object_set (self, "use-time-overlay", TRUE, NULL);
-
-done:
- GES_TIMELINE_ELEMENT_CLASS (ges_video_test_source_parent_class)
- ->set_child_property (self, child, pspec, value);
-}
-