diff --git a/ges/ges-track-video-title-source.c b/ges/ges-track-video-title-source.c index 39f75307a4..65f8982c80 100644 --- a/ges/ges-track-video-title-source.c +++ b/ges/ges-track-video-title-source.c @@ -72,6 +72,8 @@ ges_track_video_title_src_init (GESTrackVideoTitleSource * self) self->text = NULL; self->font_desc = g_strdup (DEFAULT_FONT_DESC); self->text_el = NULL; + self->halign = DEFAULT_HALIGNMENT; + self->valign = DEFAULT_VALIGNMENT; self->background_el = NULL; } @@ -143,6 +145,8 @@ ges_track_video_title_src_create_element (GESTrackTitleSource * object) if (self->font_desc) { g_object_set (text, "font-desc", self->font_desc, NULL); } + g_object_set (text, "valignment", (gint) self->valign, "halignment", + (gint) self->halign, NULL); g_object_set (background, "pattern", (gint) GES_TRACK_VIDEO_BG_SRC_BLACK, NULL); @@ -201,6 +205,40 @@ ges_track_video_title_source_set_font_desc (GESTrackVideoTitleSource * self, g_object_set (self->text_el, "font-desc", font_desc, NULL); } +/** + * ges_track_video_title_source_valignment: + * @self: the #GESTrackVideoTitleSource* to set text on + * @valignment: #GESTrackVideoTitleSrcVAlign + * + * Sets the vertical aligment of the text. + */ +void +ges_track_video_title_source_set_valignment (GESTrackVideoTitleSource * self, + GESTrackVideoTitleSrcVAlign valign) +{ + self->valign = valign; + GST_LOG ("set valignment to: %d", valign); + if (self->text_el) + g_object_set (self->text_el, "valignment", valign, NULL); +} + +/** + * ges_track_video_title_source_halignment: + * @self: the #GESTrackVideoTitleSource* to set text on + * @halignment: #GESTrackVideoTitleSrcHAlign + * + * Sets the vertical aligment of the text. + */ +void +ges_track_video_title_source_set_halignment (GESTrackVideoTitleSource * self, + GESTrackVideoTitleSrcHAlign halign) +{ + self->halign = halign; + GST_LOG ("set halignment to: %d", halign); + if (self->text_el) + g_object_set (self->text_el, "halignment", halign, NULL); +} + GESTrackVideoTitleSource * ges_track_video_title_source_new (void) { diff --git a/ges/ges-track-video-title-source.h b/ges/ges-track-video-title-source.h index 6c53530343..61189ae7ca 100644 --- a/ges/ges-track-video-title-source.h +++ b/ges/ges-track-video-title-source.h @@ -45,7 +45,36 @@ G_BEGIN_DECLS (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSourceClass)) #define DEFAULT_FONT_DESC "serif 36" +#define DEFAULT_VALIGNMENT GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BASELINE +#define DEFAULT_HALIGNMENT GES_TRACK_VIDEO_TITLE_SRC_HALIGN_CENTER +/** + * GESTrackVideoTitleSrcVAlign: + * @GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BASELINE: draw text on the baseline + * @GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BOTTOM: draw text on the bottom + * @GES_TRACK_VIDEO_TITLE_SRC_VALIGN_TOP: draw test on top + * + * Vertical alignment of the text. + */ +typedef enum { + GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BASELINE, + GES_TRACK_VIDEO_TITLE_SRC_VALIGN_BOTTOM, + GES_TRACK_VIDEO_TITLE_SRC_VALIGN_TOP +} GESTrackVideoTitleSrcVAlign; + +/** + * GESTrackVideoTitleSrcHAlign: + * @GES_TRACK_VIDEO_TITLE_SRC_HALIGN_LEFT: align text left + * @GES_TRACK_VIDEO_TITLE_SRC_HALIGN_CENTER: align text center + * @GES_TRACK_VIDEO_TITLE_SRC_HALIGN_RIGHT: align text right + * + * Horizontal alignment of the text. + */ +typedef enum { + GES_TRACK_VIDEO_TITLE_SRC_HALIGN_LEFT, + GES_TRACK_VIDEO_TITLE_SRC_HALIGN_CENTER, + GES_TRACK_VIDEO_TITLE_SRC_HALIGN_RIGHT +} GESTrackVideoTitleSrcHAlign; /** * GESTrackVideoTitleSource: @@ -58,6 +87,8 @@ struct _GESTrackVideoTitleSource { /*< private >*/ gchar *text; gchar *font_desc; + gint halign; + gint valign; GstElement *text_el; GstElement *background_el; }; @@ -77,8 +108,16 @@ GType ges_track_video_title_src_get_type (void); void ges_track_video_title_source_set_text(GESTrackVideoTitleSource *, const gchar *); + void ges_track_video_title_source_set_font_desc(GESTrackVideoTitleSource *, const gchar *); + +void ges_track_video_title_source_set_halignment(GESTrackVideoTitleSource *, + GESTrackVideoTitleSrcHAlign); + +void ges_track_video_title_source_set_valignment(GESTrackVideoTitleSource *, + GESTrackVideoTitleSrcVAlign); + GESTrackVideoTitleSource* ges_track_video_title_source_new (void); G_END_DECLS