guint32 color;
gdouble xpos;
gdouble ypos;
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ gboolean outline;
+ gboolean shadow;
+#endif
};
enum
PROP_COLOR,
PROP_XPOS,
PROP_YPOS,
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ PROP_OUTLINE,
+ PROP_SHADOW
+#endif
};
G_DEFINE_TYPE_WITH_PRIVATE (GESTextOverlayClip, ges_text_overlay_clip,
case PROP_YPOS:
g_value_set_double (value, priv->ypos);
break;
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ case PROP_OUTLINE:
+ g_value_set_boolean (value, priv->outline);
+ break;
+ case PROP_SHADOW:
+ g_value_set_boolean (value, priv->shadow);
+ break;
+#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
case PROP_YPOS:
ges_text_overlay_clip_set_ypos (uriclip, g_value_get_double (value));
break;
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ case PROP_OUTLINE:
+ ges_text_overlay_clip_set_outline (uriclip, g_value_get_boolean (value));
+ break;
+ case PROP_SHADOW:
+ ges_text_overlay_clip_set_shadow (uriclip, g_value_get_boolean (value));
+ break;
+#endif
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
}
g_object_class_install_property (object_class, PROP_YPOS,
g_param_spec_double ("ypos", "Ypos", "The vertical position",
0, 1, 0.5, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ /**
+ * GESTextOverlayClip:outline:
+ *
+ * The draw outline of the text
+ */
+
+ g_object_class_install_property (object_class, PROP_OUTLINE,
+ g_param_spec_boolean ("draw-outline", "Outline", "The draw outline",
+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+
+ /**
+ * GESTextOverlayClip:shadow:
+ *
+ * The draw shadow of the text
+ */
+
+ g_object_class_install_property (object_class, PROP_SHADOW,
+ g_param_spec_boolean ("draw-shadow", "Shadow", "The draw shadow",
+ FALSE, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+#endif
}
static void
self->priv->color = G_MAXUINT32;
self->priv->xpos = 0.5;
self->priv->ypos = 0.5;
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ self->priv->outline = FALSE;
+ self->priv->shadow = FALSE;
+#endif
}
/**
}
}
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+/**
+ * ges_text_overlay_clip_set_outline:
+ * @self: the #GESTextOverlayClip* to set
+ * @position: The outline @self is being set to
+ *
+ * Sets the draw outline of the text.
+ */
+void
+ges_text_overlay_clip_set_outline (GESTextOverlayClip * self, gboolean outline)
+{
+ GList *tmp;
+
+ GST_DEBUG ("self:%p, outline:%d", self, outline);
+
+ self->priv->outline = outline;
+
+ for (tmp = GES_CONTAINER_CHILDREN (self); tmp; tmp = tmp->next) {
+ GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
+
+ if (ges_track_element_get_track (trackelement)->type ==
+ GES_TRACK_TYPE_VIDEO)
+ ges_text_overlay_set_outline (GES_TEXT_OVERLAY (trackelement),
+ self->priv->outline);
+ }
+}
+
+/**
+ * ges_text_overlay_clip_set_shadow:
+ * @self: the #GESTextOverlayClip* to set
+ * @position: The shadow @self is being set to
+ *
+ * Sets the draw shadow of the text.
+ */
+void
+ges_text_overlay_clip_set_shadow (GESTextOverlayClip * self, gboolean shadow)
+{
+ GList *tmp;
+
+ GST_DEBUG ("self:%p, shadow:%d", self, shadow);
+
+ self->priv->shadow = shadow;
+
+ for (tmp = GES_CONTAINER_CHILDREN (self); tmp; tmp = tmp->next) {
+ GESTrackElement *trackelement = (GESTrackElement *) tmp->data;
+
+ if (ges_track_element_get_track (trackelement)->type ==
+ GES_TRACK_TYPE_VIDEO)
+ ges_text_overlay_set_shadow (GES_TEXT_OVERLAY (trackelement),
+ self->priv->shadow);
+ }
+}
+#endif
+
/**
* ges_text_overlay_clip_get_text:
* @self: a #GESTextOverlayClip
return self->priv->xpos;
}
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+/**
+ * ges_text_overlay_clip_get_outline:
+ * @self: a #GESTextOverlayClip
+ *
+ * Get the draw outline used by @source.
+ *
+ * Returns: The draw outline used by @source.
+ */
+
+const gboolean
+ges_text_overlay_clip_get_outline (GESTextOverlayClip * self)
+{
+ return self->priv->outline;
+}
+
+/**
+ * ges_text_overlay_clip_get_shadow:
+ * @self: a #GESTextOverlayClip
+ *
+ * Get the draw shadow used by @source.
+ *
+ * Returns: The draw shadow used by @source.
+ */
+
+const gboolean
+ges_text_overlay_clip_get_shadow (GESTextOverlayClip * self)
+{
+ return self->priv->shadow;
+}
+#endif
+
/**
* ges_text_overlay_clip_get_ypos:
* @self: a #GESTextOverlayClip
ges_text_overlay_set_color ((GESTextOverlay *) res, priv->color);
ges_text_overlay_set_xpos ((GESTextOverlay *) res, priv->xpos);
ges_text_overlay_set_ypos ((GESTextOverlay *) res, priv->ypos);
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ ges_text_overlay_set_outline ((GESTextOverlay *) res, priv->outline);
+ ges_text_overlay_set_shadow ((GESTextOverlay *) res, priv->shadow);
+#endif
}
return res;
guint32 color;
gdouble xpos;
gdouble ypos;
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ gboolean outline;
+ gboolean shadow;
+#endif
GstElement *text_el;
};
self->priv->color = G_MAXUINT32;
self->priv->xpos = 0.5;
self->priv->ypos = 0.5;
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ self->priv->outline = FALSE;
+ self->priv->shadow = FALSE;
+#endif
}
static void
GESTextOverlay *self = GES_TEXT_OVERLAY (track_element);
const gchar *child_props[] =
{ "xpos", "ypos", "deltax", "deltay", "auto-resize", "outline-color",
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ "draw-outline", "draw-shadow",
+#endif
NULL
};
g_object_set (text, "color", (guint) self->priv->color, NULL);
g_object_set (text, "xpos", (gdouble) self->priv->xpos, NULL);
g_object_set (text, "ypos", (gdouble) self->priv->ypos, NULL);
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+ g_object_set (text, "draw-outline", (gboolean) self->priv->outline, NULL);
+ g_object_set (text, "draw-shadow", (gboolean) self->priv->shadow, NULL);
+#endif
ges_track_element_add_children_props (track_element, text, NULL, NULL,
child_props);
g_object_set (self->priv->text_el, "ypos", position, NULL);
}
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+/**
+ * ges_text_overlay_set_outline:
+ * @self: the #GESTextOverlay* to set
+ * @position: The draw outline @self is being set to
+ *
+ * Sets the outline of the text.
+ */
+void
+ges_text_overlay_set_outline (GESTextOverlay * self, gboolean outline)
+{
+ GST_DEBUG ("self:%p, outline:%d", self, outline);
+
+ self->priv->outline = outline;
+ if (self->priv->text_el)
+ g_object_set (self->priv->text_el, "draw-outline", outline, NULL);
+}
+
+/**
+ * ges_text_overlay_set_shadow:
+ * @self: the #GESTextOverlay* to set
+ * @position: The draw shadow @self is being set to
+ *
+ * Sets the shadow of the text.
+ */
+void
+ges_text_overlay_set_shadow (GESTextOverlay * self, gboolean shadow)
+{
+ GST_DEBUG ("self:%p, shadow:%d", self, shadow);
+
+ self->priv->shadow = shadow;
+ if (self->priv->text_el)
+ g_object_set (self->priv->text_el, "draw-shadow", shadow, NULL);
+}
+#endif
+
/**
* ges_text_overlay_get_text:
* @self: a GESTextOverlay
return self->priv->ypos;
}
+#ifdef TIZEN_FEATURE_GES_TEXT_OVERLAY
+/**
+ * ges_text_overlay_get_outline:
+ * @self: a GESTextOverlay
+ *
+ * Get the outline used by @source.
+ *
+ * Returns: The text outline used by @source.
+ */
+const gboolean
+ges_text_overlay_get_outline (GESTextOverlay * self)
+{
+ return self->priv->outline;
+}
+
+/**
+ * ges_text_overlay_get_shadow:
+ * @self: a GESTextOverlay
+ *
+ * Get the shadow used by @source.
+ *
+ * Returns: The text shadow used by @source.
+ */
+const gboolean
+ges_text_overlay_get_shadow (GESTextOverlay * self)
+{
+ return self->priv->shadow;
+}
+#endif
+
/**
* ges_text_overlay_new:
*