From: Brandon Lewis Date: Wed, 30 Jun 2010 15:02:10 +0000 (+0200) Subject: remove GESTrackTitleSource X-Git-Tag: 1.19.3~493^2~2824 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=44781f9e3930a38c61023227efb568859451a3f3;p=platform%2Fupstream%2Fgstreamer.git remove GESTrackTitleSource --- diff --git a/docs/libs/ges-sections.txt b/docs/libs/ges-sections.txt index b703384..78de371 100644 --- a/docs/libs/ges-sections.txt +++ b/docs/libs/ges-sections.txt @@ -393,22 +393,6 @@ GES_TYPE_TRACK_VIDEO_BACKGROUND_SOURCE
-ges-track-title-source -GESTrackTitleSource -GESTrackTitleSource -GESTrackTitleSourceClass -ges_track_title_source_new -ges_track_title_src_get_type - -GES_IS_TRACK_TITLE_SOURCE -GES_IS_TRACK_TITLE_SOURCE_CLASS -GES_TRACK_TITLE_SOURCE -GES_TRACK_TITLE_SOURCE_CLASS -GES_TRACK_TITLE_SOURCE_GET_CLASS -GES_TYPE_TRACK_TITLE_SOURCE -
- -
ges-track-audio-background-source GESTrackAudioBackgroundSource GESTrackAudioBackgroundSource diff --git a/ges/Makefile.am b/ges/Makefile.am index b72fe0c..664aec5 100644 --- a/ges/Makefile.am +++ b/ges/Makefile.am @@ -31,7 +31,6 @@ libges_@GST_MAJORMINOR@_la_SOURCES = \ ges-track-video-background-source.c \ ges-track-audio-background-source.c \ ges-track-title-source.c \ - ges-track-video-title-source.c \ ges-track-overlay.c \ ges-track-video-overlay.c \ ges-utils.c @@ -63,7 +62,6 @@ libges_@GST_MAJORMINOR@include_HEADERS = \ ges-track-video-background-source.h \ ges-track-audio-background-source.h \ ges-track-title-source.h \ - ges-track-video-title-source.h \ ges-track-overlay.h \ ges-track-video-overlay.h \ ges-utils.h diff --git a/ges/ges-timeline-overlay.c b/ges/ges-timeline-overlay.c index fe24fc4..e54b26c 100644 --- a/ges/ges-timeline-overlay.c +++ b/ges/ges-timeline-overlay.c @@ -30,7 +30,7 @@ #include "ges-timeline-overlay.h" #include "ges-timeline-source.h" #include "ges-track-object.h" -#include "ges-track-video-title-source.h" +#include "ges-track-title-source.h" #include "ges-track-video-overlay.h" #include diff --git a/ges/ges-timeline-title-source.c b/ges/ges-timeline-title-source.c index e045b14..7ec77d2 100644 --- a/ges/ges-timeline-title-source.c +++ b/ges/ges-timeline-title-source.c @@ -30,7 +30,7 @@ #include "ges-timeline-title-source.h" #include "ges-timeline-source.h" #include "ges-track-object.h" -#include "ges-track-video-title-source.h" +#include "ges-track-title-source.h" #include "ges-track-audio-background-source.h" #include diff --git a/ges/ges-track-overlay.c b/ges/ges-track-overlay.c index 1d5e2da..56ba21d 100644 --- a/ges/ges-track-overlay.c +++ b/ges/ges-track-overlay.c @@ -19,7 +19,7 @@ */ /** - * SECTION:ges-track-title-source + * SECTION:ges-title-source * @short_description: Base Class for single-media sources */ diff --git a/ges/ges-track-title-source.c b/ges/ges-track-title-source.c index 2bbe8a0..4d02f80 100644 --- a/ges/ges-track-title-source.c +++ b/ges/ges-track-title-source.c @@ -1,6 +1,6 @@ /* GStreamer Editing Services - * Copyright (C) 2009 Edward Hervey - * 2009 Nokia Corporation + * Copyright (C) 2010 Brandon Lewis + * 2010 Nokia Corporation * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -19,65 +19,98 @@ */ /** - * SECTION:ges-track-title-source + * SECTION:ges-track-source * @short_description: Base Class for single-media sources */ #include "ges-internal.h" +#include "ges-track-object.h" #include "ges-track-title-source.h" +#include "ges-track-video-background-source.h" -G_DEFINE_TYPE (GESTrackTitleSource, ges_track_title_src, GES_TYPE_TRACK_SOURCE); +G_DEFINE_TYPE (GESTrackVideoTitleSource, ges_track_video_title_src, + GES_TYPE_TRACK_SOURCE); -static void ges_track_title_src_get_property (GObject * object, - guint property_id, GValue * value, GParamSpec * pspec); - -static void ges_track_title_src_dispose (GObject *); +enum +{ + PROP_0, +}; -static void ges_track_title_src_finalize (GObject *); +static void ges_track_video_title_src_dispose (GObject * object); -static void ges_track_title_src_set_property (GObject * object, - guint property_id, const GValue * value, GParamSpec * pspec); +static void ges_track_video_title_src_finalize (GObject * object); -static gboolean ges_track_title_src_create_gnl_object (GESTrackObject * object); +static void ges_track_video_title_src_get_property (GObject * object, guint + property_id, GValue * value, GParamSpec * pspec); -static GstElement - * ges_track_title_src_create_element_func (GESTrackTitleSource * object); +static void ges_track_video_title_src_set_property (GObject * object, guint + property_id, const GValue * value, GParamSpec * pspec); -enum -{ - PROP_0, -}; +static GstElement *ges_track_video_title_src_create_element (GESTrackSource + * self); static void -ges_track_title_src_class_init (GESTrackTitleSourceClass * klass) +ges_track_video_title_src_class_init (GESTrackVideoTitleSourceClass * klass) { - GObjectClass *object_class = G_OBJECT_CLASS (klass); - GESTrackObjectClass *track_class = GES_TRACK_OBJECT_CLASS (klass); + GObjectClass *object_class; + GESTrackSourceClass *bg_class; - object_class->get_property = ges_track_title_src_get_property; - object_class->set_property = ges_track_title_src_set_property; - object_class->dispose = ges_track_title_src_dispose; - object_class->finalize = ges_track_title_src_finalize; + object_class = G_OBJECT_CLASS (klass); + bg_class = GES_TRACK_SOURCE_CLASS (klass); - track_class->create_gnl_object = ges_track_title_src_create_gnl_object; - klass->create_element = ges_track_title_src_create_element_func; + object_class->get_property = ges_track_video_title_src_get_property; + object_class->set_property = ges_track_video_title_src_set_property; + object_class->dispose = ges_track_video_title_src_dispose; + object_class->finalize = ges_track_video_title_src_finalize; + + bg_class->create_element = ges_track_video_title_src_create_element; +} + +static void +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; } static void -ges_track_title_src_dispose (GObject * object) +ges_track_video_title_src_dispose (GObject * object) { - G_OBJECT_CLASS (ges_track_title_src_parent_class)->dispose (object); + GESTrackVideoTitleSource *self = GES_TRACK_VIDEO_TITLE_SOURCE (object); + if (self->text) { + g_free (self->text); + } + + if (self->font_desc) { + g_free (self->font_desc); + } + + if (self->text_el) { + g_object_unref (self->text_el); + self->text_el = NULL; + } + + if (self->background_el) { + g_object_unref (self->background_el); + self->background_el = NULL; + } + + G_OBJECT_CLASS (ges_track_video_title_src_parent_class)->dispose (object); } static void -ges_track_title_src_init (GESTrackTitleSource * self) +ges_track_video_title_src_finalize (GObject * object) { - self->element = NULL; + G_OBJECT_CLASS (ges_track_video_title_src_parent_class)->finalize (object); } static void -ges_track_title_src_get_property (GObject * object, guint property_id, - GValue * value, GParamSpec * pspec) +ges_track_video_title_src_get_property (GObject * object, + guint property_id, GValue * value, GParamSpec * pspec) { switch (property_id) { default: @@ -86,8 +119,8 @@ ges_track_title_src_get_property (GObject * object, guint property_id, } static void -ges_track_title_src_set_property (GObject * object, guint property_id, - const GValue * value, GParamSpec * pspec) +ges_track_video_title_src_set_property (GObject * object, + guint property_id, const GValue * value, GParamSpec * pspec) { switch (property_id) { default: @@ -95,36 +128,125 @@ ges_track_title_src_set_property (GObject * object, guint property_id, } } -static void -ges_track_title_src_finalize (GObject * object) +static GstElement * +ges_track_video_title_src_create_element (GESTrackSource * object) { - G_OBJECT_CLASS (ges_track_title_src_parent_class)->finalize (object); + GESTrackVideoTitleSource *self = GES_TRACK_VIDEO_TITLE_SOURCE (object); + GstElement *topbin, *background, *text; + GstPad *src; + + topbin = gst_bin_new ("titlesrc-bin"); + background = gst_element_factory_make ("videotestsrc", "titlesrc-bg"); + + text = gst_element_factory_make ("textoverlay", "titlsrc-text"); + if (self->text) { + g_object_set (text, "text", self->text, NULL); + } + 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); + + gst_bin_add_many (GST_BIN (topbin), background, text, NULL); + + gst_element_link (background, text); + + src = gst_ghost_pad_new ("src", gst_element_get_static_pad (text, "src")); + gst_element_add_pad (topbin, src); + + g_object_ref (text); + g_object_ref (background); + + self->text_el = text; + self->background_el = background; + + return topbin; } -static gboolean -ges_track_title_src_create_gnl_object (GESTrackObject * object) +/** + * ges_track_video_title_source_set_text: + * @self: the #GESTrackVideoTitleSource* to set text on + * @text: the text to render. an internal copy of this text will be + * made. + * + * Sets the text this track object will render. + * + */ + +void +ges_track_video_title_source_set_text (GESTrackVideoTitleSource * self, + const gchar * text) { - GESTrackTitleSourceClass *klass; - GESTrackTitleSource *self; + if (self->text) + g_free (self->text); - self = GES_TRACK_TITLE_SOURCE (object); - klass = GES_TRACK_TITLE_SOURCE_GET_CLASS (object); + self->text = g_strdup (text); + if (self->text_el) + g_object_set (self->text_el, "text", text, NULL); +} - object->gnlobject = gst_element_factory_make ("gnlsource", NULL); - self->element = klass->create_element (GES_TRACK_TITLE_SOURCE (object)); - gst_bin_add (GST_BIN (object->gnlobject), self->element); +/** + * ges_track_video_title_source_set_font_desc: + * @self: the #GESTrackVideoTitleSource + * @font_desc: the pango font description + * + * Sets the text this track object will render. + * + */ + +void +ges_track_video_title_source_set_font_desc (GESTrackVideoTitleSource * self, + const gchar * font_desc) +{ + if (self->font_desc) + g_free (self->font_desc); - return TRUE; + self->font_desc = g_strdup (font_desc); + GST_LOG ("setting font-desc to '%s'", font_desc); + if (self->text_el) + g_object_set (self->text_el, "font-desc", font_desc, NULL); } -static GstElement * -ges_track_title_src_create_element_func (GESTrackTitleSource * self) +/** + * ges_track_video_title_source_valignment: + * @self: the #GESTrackVideoTitleSource* to set text on + * @valign: #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 + * @halign: #GESTrackVideoTitleSrcHAlign + * + * Sets the vertical aligment of the text. + */ +void +ges_track_video_title_source_set_halignment (GESTrackVideoTitleSource * self, + GESTrackVideoTitleSrcHAlign halign) { - return gst_element_factory_make ("fakesrc", NULL); + self->halign = halign; + GST_LOG ("set halignment to: %d", halign); + if (self->text_el) + g_object_set (self->text_el, "halignment", halign, NULL); } -GESTrackTitleSource * -ges_track_title_source_new (void) +GESTrackVideoTitleSource * +ges_track_video_title_source_new (void) { - return g_object_new (GES_TYPE_TRACK_TITLE_SOURCE, NULL); + return g_object_new (GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, NULL); } diff --git a/ges/ges-track-title-source.h b/ges/ges-track-title-source.h index f3e9910..9f601f5 100644 --- a/ges/ges-track-title-source.h +++ b/ges/ges-track-title-source.h @@ -18,61 +18,109 @@ * Boston, MA 02111-1307, USA. */ -#ifndef _GES_TRACK_TITLE_SOURCE -#define _GES_TRACK_TITLE_SOURCE +#ifndef _GES_TRACK_VIDEO_TITLE_SOURCE +#define _GES_TRACK_VIDEO_TITLE_SOURCE #include -#include #include #include G_BEGIN_DECLS -#define GES_TYPE_TRACK_TITLE_SOURCE ges_track_title_src_get_type() +#define GES_TYPE_TRACK_VIDEO_TITLE_SOURCE ges_track_video_title_src_get_type() -#define GES_TRACK_TITLE_SOURCE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSource)) +#define GES_TRACK_VIDEO_TITLE_SOURCE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSource)) -#define GES_TRACK_TITLE_SOURCE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass)) +#define GES_TRACK_VIDEO_TITLE_SOURCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSourceClass)) -#define GES_IS_TRACK_TITLE_SOURCE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_TITLE_SOURCE)) +#define GES_IS_TRACK_VIDEO_TITLE_SOURCE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE)) -#define GES_IS_TRACK_TITLE_SOURCE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_TITLE_SOURCE)) +#define GES_IS_TRACK_VIDEO_TITLE_SOURCE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE)) + +#define GES_TRACK_VIDEO_TITLE_SOURCE_GET_CLASS(obj) \ + (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; -#define GES_TRACK_TITLE_SOURCE_GET_CLASS(obj) \ - (G_TYPE_INSTANCE_GET_CLASS ((obj), GES_TYPE_TRACK_TITLE_SOURCE, GESTrackTitleSourceClass)) /** - * GESTrackTitleSource: + * GESTrackVideoTitleSource: * @parent: parent * */ -struct _GESTrackTitleSource { +struct _GESTrackVideoTitleSource { GESTrackSource parent; - /*< public >*/ - GstElement *element; + /*< private >*/ + gchar *text; + gchar *font_desc; + gint halign; + gint valign; + GstElement *text_el; + GstElement *background_el; }; /** - * GESTrackTitleSourceClass: + * GESTrackVideoTitleSourceClass: * @parent_class: parent class */ -struct _GESTrackTitleSourceClass { +struct _GESTrackVideoTitleSourceClass { GESTrackSourceClass parent_class; - /* */ - GstElement* (*create_element) (GESTrackTitleSource *obj); + /*< private >*/ }; -GType ges_track_title_src_get_type (void); +GType ges_track_video_title_src_get_type (void); + +void ges_track_video_title_source_set_text(GESTrackVideoTitleSource *self, const + gchar *text); + +void ges_track_video_title_source_set_font_desc(GESTrackVideoTitleSource *self, + const gchar *font_desc); + +void ges_track_video_title_source_set_halignment(GESTrackVideoTitleSource + *self, GESTrackVideoTitleSrcHAlign halgn); + +void ges_track_video_title_source_set_valignment(GESTrackVideoTitleSource + *self, GESTrackVideoTitleSrcVAlign valign); -GESTrackTitleSource* ges_track_title_source_new (void); +GESTrackVideoTitleSource* ges_track_video_title_source_new (void); G_END_DECLS -#endif /* _GES_TRACK_TITLE_SOURCE */ +#endif /* _GES_TRACK_VIDEO_TITLE_SOURCE */ diff --git a/ges/ges-track-video-overlay.c b/ges/ges-track-video-overlay.c index cb03f1b..01119fb 100644 --- a/ges/ges-track-video-overlay.c +++ b/ges/ges-track-video-overlay.c @@ -25,7 +25,7 @@ #include "ges-internal.h" #include "ges-track-object.h" -#include "ges-track-video-title-source.h" +#include "ges-track-title-source.h" #include "ges-track-video-overlay.h" G_DEFINE_TYPE (GESTrackVideoOverlay, ges_track_video_overlay, diff --git a/ges/ges-track-video-overlay.h b/ges/ges-track-video-overlay.h index 457ebf0..4ebd2c3 100644 --- a/ges/ges-track-video-overlay.h +++ b/ges/ges-track-video-overlay.h @@ -23,7 +23,7 @@ #include #include -#include +#include #include G_BEGIN_DECLS diff --git a/ges/ges-track-video-title-source.c b/ges/ges-track-video-title-source.c deleted file mode 100644 index 5543568..0000000 --- a/ges/ges-track-video-title-source.c +++ /dev/null @@ -1,252 +0,0 @@ -/* GStreamer Editing Services - * Copyright (C) 2010 Brandon Lewis - * 2010 Nokia Corporation - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -/** - * SECTION:ges-track-source - * @short_description: Base Class for single-media sources - */ - -#include "ges-internal.h" -#include "ges-track-object.h" -#include "ges-track-video-title-source.h" -#include "ges-track-video-background-source.h" - -G_DEFINE_TYPE (GESTrackVideoTitleSource, ges_track_video_title_src, - GES_TYPE_TRACK_SOURCE); - -enum -{ - PROP_0, -}; - -static void ges_track_video_title_src_dispose (GObject * object); - -static void ges_track_video_title_src_finalize (GObject * object); - -static void ges_track_video_title_src_get_property (GObject * object, guint - property_id, GValue * value, GParamSpec * pspec); - -static void ges_track_video_title_src_set_property (GObject * object, guint - property_id, const GValue * value, GParamSpec * pspec); - -static GstElement *ges_track_video_title_src_create_element (GESTrackSource - * self); - -static void -ges_track_video_title_src_class_init (GESTrackVideoTitleSourceClass * klass) -{ - GObjectClass *object_class; - GESTrackSourceClass *bg_class; - - object_class = G_OBJECT_CLASS (klass); - bg_class = GES_TRACK_SOURCE_CLASS (klass); - - object_class->get_property = ges_track_video_title_src_get_property; - object_class->set_property = ges_track_video_title_src_set_property; - object_class->dispose = ges_track_video_title_src_dispose; - object_class->finalize = ges_track_video_title_src_finalize; - - bg_class->create_element = ges_track_video_title_src_create_element; -} - -static void -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; -} - -static void -ges_track_video_title_src_dispose (GObject * object) -{ - GESTrackVideoTitleSource *self = GES_TRACK_VIDEO_TITLE_SOURCE (object); - if (self->text) { - g_free (self->text); - } - - if (self->font_desc) { - g_free (self->font_desc); - } - - if (self->text_el) { - g_object_unref (self->text_el); - self->text_el = NULL; - } - - if (self->background_el) { - g_object_unref (self->background_el); - self->background_el = NULL; - } - - G_OBJECT_CLASS (ges_track_video_title_src_parent_class)->dispose (object); -} - -static void -ges_track_video_title_src_finalize (GObject * object) -{ - G_OBJECT_CLASS (ges_track_video_title_src_parent_class)->finalize (object); -} - -static void -ges_track_video_title_src_get_property (GObject * object, - guint property_id, GValue * value, GParamSpec * pspec) -{ - switch (property_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static void -ges_track_video_title_src_set_property (GObject * object, - guint property_id, const GValue * value, GParamSpec * pspec) -{ - switch (property_id) { - default: - G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); - } -} - -static GstElement * -ges_track_video_title_src_create_element (GESTrackSource * object) -{ - GESTrackVideoTitleSource *self = GES_TRACK_VIDEO_TITLE_SOURCE (object); - GstElement *topbin, *background, *text; - GstPad *src; - - topbin = gst_bin_new ("titlesrc-bin"); - background = gst_element_factory_make ("videotestsrc", "titlesrc-bg"); - - text = gst_element_factory_make ("textoverlay", "titlsrc-text"); - if (self->text) { - g_object_set (text, "text", self->text, NULL); - } - 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); - - gst_bin_add_many (GST_BIN (topbin), background, text, NULL); - - gst_element_link (background, text); - - src = gst_ghost_pad_new ("src", gst_element_get_static_pad (text, "src")); - gst_element_add_pad (topbin, src); - - g_object_ref (text); - g_object_ref (background); - - self->text_el = text; - self->background_el = background; - - return topbin; -} - -/** - * ges_track_video_title_source_set_text: - * @self: the #GESTrackVideoTitleSource* to set text on - * @text: the text to render. an internal copy of this text will be - * made. - * - * Sets the text this track object will render. - * - */ - -void -ges_track_video_title_source_set_text (GESTrackVideoTitleSource * self, - const gchar * text) -{ - if (self->text) - g_free (self->text); - - self->text = g_strdup (text); - if (self->text_el) - g_object_set (self->text_el, "text", text, NULL); -} - -/** - * ges_track_video_title_source_set_font_desc: - * @self: the #GESTrackVideoTitleSource - * @font_desc: the pango font description - * - * Sets the text this track object will render. - * - */ - -void -ges_track_video_title_source_set_font_desc (GESTrackVideoTitleSource * self, - const gchar * font_desc) -{ - if (self->font_desc) - g_free (self->font_desc); - - self->font_desc = g_strdup (font_desc); - GST_LOG ("setting font-desc to '%s'", font_desc); - if (self->text_el) - g_object_set (self->text_el, "font-desc", font_desc, NULL); -} - -/** - * ges_track_video_title_source_valignment: - * @self: the #GESTrackVideoTitleSource* to set text on - * @valign: #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 - * @halign: #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) -{ - return g_object_new (GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, NULL); -} diff --git a/ges/ges-track-video-title-source.h b/ges/ges-track-video-title-source.h deleted file mode 100644 index 9f601f5..0000000 --- a/ges/ges-track-video-title-source.h +++ /dev/null @@ -1,126 +0,0 @@ -/* GStreamer Editing Services - * Copyright (C) 2010 Brandon Lewis - * 2010 Nokia Corporation - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Library General Public - * License as published by the Free Software Foundation; either - * version 2 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Library General Public License for more details. - * - * You should have received a copy of the GNU Library General Public - * License along with this library; if not, write to the - * Free Software Foundation, Inc., 59 Temple Place - Suite 330, - * Boston, MA 02111-1307, USA. - */ - -#ifndef _GES_TRACK_VIDEO_TITLE_SOURCE -#define _GES_TRACK_VIDEO_TITLE_SOURCE - -#include -#include -#include - -G_BEGIN_DECLS - -#define GES_TYPE_TRACK_VIDEO_TITLE_SOURCE ges_track_video_title_src_get_type() - -#define GES_TRACK_VIDEO_TITLE_SOURCE(obj) \ - (G_TYPE_CHECK_INSTANCE_CAST ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSource)) - -#define GES_TRACK_VIDEO_TITLE_SOURCE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_CAST ((klass), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE, GESTrackVideoTitleSourceClass)) - -#define GES_IS_TRACK_VIDEO_TITLE_SOURCE(obj) \ - (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE)) - -#define GES_IS_TRACK_VIDEO_TITLE_SOURCE_CLASS(klass) \ - (G_TYPE_CHECK_CLASS_TYPE ((klass), GES_TYPE_TRACK_VIDEO_TITLE_SOURCE)) - -#define GES_TRACK_VIDEO_TITLE_SOURCE_GET_CLASS(obj) \ - (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: - * @parent: parent - * - */ -struct _GESTrackVideoTitleSource { - GESTrackSource parent; - - /*< private >*/ - gchar *text; - gchar *font_desc; - gint halign; - gint valign; - GstElement *text_el; - GstElement *background_el; -}; - -/** - * GESTrackVideoTitleSourceClass: - * @parent_class: parent class - */ - -struct _GESTrackVideoTitleSourceClass { - GESTrackSourceClass parent_class; - - /*< private >*/ -}; - -GType ges_track_video_title_src_get_type (void); - -void ges_track_video_title_source_set_text(GESTrackVideoTitleSource *self, const - gchar *text); - -void ges_track_video_title_source_set_font_desc(GESTrackVideoTitleSource *self, - const gchar *font_desc); - -void ges_track_video_title_source_set_halignment(GESTrackVideoTitleSource - *self, GESTrackVideoTitleSrcHAlign halgn); - -void ges_track_video_title_source_set_valignment(GESTrackVideoTitleSource - *self, GESTrackVideoTitleSrcVAlign valign); - -GESTrackVideoTitleSource* ges_track_video_title_source_new (void); - -G_END_DECLS - -#endif /* _GES_TRACK_VIDEO_TITLE_SOURCE */ - diff --git a/ges/ges-types.h b/ges/ges-types.h index 3c8d001..d653843 100644 --- a/ges/ges-types.h +++ b/ges/ges-types.h @@ -88,10 +88,6 @@ typedef struct _GESTrackAudioBackgroundSource GESTrackAudioBackgroundSource; typedef struct _GESTrackAudioBackgroundSourceClass GESTrackAudioBackgroundSourceClass; -typedef struct _GESTrackTitleSource GESTrackTitleSource; -typedef struct _GESTrackTitleSourceClass - GESTrackTitleSourceClass; - typedef struct _GESTrackVideoTitleSource GESTrackVideoTitleSource; typedef struct _GESTrackVideoTitleSourceClass GESTrackVideoTitleSourceClass; diff --git a/ges/ges.h b/ges/ges.h index d939a82..307d709 100644 --- a/ges/ges.h +++ b/ges/ges.h @@ -46,7 +46,6 @@ #include #include #include -#include #include #include