add font-desc property to TimelineTitleSource

This commit is contained in:
Brandon Lewis 2010-06-16 16:58:42 +02:00 committed by Edward Hervey
parent bae04feef4
commit c0f0d6f5f4
2 changed files with 49 additions and 0 deletions

View file

@ -38,12 +38,14 @@ G_DEFINE_TYPE (GESTimelineTitleSource, ges_tl_title_src,
GES_TYPE_TIMELINE_SOURCE); GES_TYPE_TIMELINE_SOURCE);
#define DEFAULT_PROP_TEXT "" #define DEFAULT_PROP_TEXT ""
#define DEFAULT_PROP_FONT_DESC DEFAULT_FONT_DESC
enum enum
{ {
PROP_0, PROP_0,
PROP_MUTE, PROP_MUTE,
PROP_TEXT, PROP_TEXT,
PROP_FONT_DESC,
}; };
static void static void
@ -52,6 +54,10 @@ ges_tl_title_src_set_mute (GESTimelineTitleSource * self, gboolean mute);
static void static void
ges_tl_title_src_set_text (GESTimelineTitleSource * self, const gchar * text); ges_tl_title_src_set_text (GESTimelineTitleSource * self, const gchar * text);
static void
ges_tl_title_src_set_font_desc (GESTimelineTitleSource * self, const gchar *
font_desc);
static GESTrackObject static GESTrackObject
* ges_tl_title_src_create_track_object (GESTimelineObject * obj, * ges_tl_title_src_create_track_object (GESTimelineObject * obj,
GESTrack * track); GESTrack * track);
@ -69,6 +75,9 @@ ges_tl_title_src_get_property (GObject * object, guint property_id,
case PROP_TEXT: case PROP_TEXT:
g_value_set_string (value, tfs->text); g_value_set_string (value, tfs->text);
break; break;
case PROP_FONT_DESC:
g_value_set_string (value, tfs->font_desc);
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
} }
@ -87,6 +96,9 @@ ges_tl_title_src_set_property (GObject * object, guint property_id,
case PROP_TEXT: case PROP_TEXT:
ges_tl_title_src_set_text (tfs, g_value_get_string (value)); ges_tl_title_src_set_text (tfs, g_value_get_string (value));
break; break;
case PROP_FONT_DESC:
ges_tl_title_src_set_font_desc (tfs, g_value_get_string (value));
break;
default: default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec); G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
} }
@ -99,6 +111,8 @@ ges_tl_title_src_dispose (GObject * object)
if (self->text) if (self->text)
g_free (self->text); g_free (self->text);
if (self->font_desc)
g_free (self->font_desc);
G_OBJECT_CLASS (ges_tl_title_src_parent_class)->dispose (object); G_OBJECT_CLASS (ges_tl_title_src_parent_class)->dispose (object);
} }
@ -130,6 +144,19 @@ ges_tl_title_src_class_init (GESTimelineTitleSourceClass * klass)
g_param_spec_string ("text", "Text", "The text to display", g_param_spec_string ("text", "Text", "The text to display",
DEFAULT_PROP_TEXT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); DEFAULT_PROP_TEXT, G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
/**
* GESTimelineTitleSource:font-dec
*
* Pango font description string
*/
g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FONT_DESC,
g_param_spec_string ("font-desc", "font description",
"Pango font description of font to be used for rendering. "
"See documentation of pango_font_description_from_string "
"for syntax.", DEFAULT_PROP_FONT_DESC,
G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS));
/** /**
* GESTimelineTitleSource:mute: * GESTimelineTitleSource:mute:
* *
@ -148,6 +175,7 @@ ges_tl_title_src_init (GESTimelineTitleSource * self)
{ {
GES_TIMELINE_OBJECT (self)->duration = 0; GES_TIMELINE_OBJECT (self)->duration = 0;
self->text = NULL; self->text = NULL;
self->text = NULL;
} }
static void static void
@ -169,6 +197,26 @@ ges_tl_title_src_set_text (GESTimelineTitleSource * self, const gchar * text)
} }
} }
static void
ges_tl_title_src_set_font_desc (GESTimelineTitleSource * self, const gchar *
font_desc)
{
GList *tmp;
GESTimelineObject *object = (GESTimelineObject *) self;
GST_DEBUG ("self:%p, font_desc:%s", self, font_desc);
self->font_desc = g_strdup (font_desc);
for (tmp = object->trackobjects; tmp; tmp = tmp->next) {
GESTrackObject *trackobject = (GESTrackObject *) tmp->data;
if (trackobject->track->type == GES_TRACK_TYPE_VIDEO)
ges_track_video_title_source_set_font_desc (GES_TRACK_VIDEO_TITLE_SOURCE
(trackobject), self->font_desc);
}
}
static void static void
ges_tl_title_src_set_mute (GESTimelineTitleSource * self, gboolean mute) ges_tl_title_src_set_mute (GESTimelineTitleSource * self, gboolean mute)
{ {

View file

@ -57,6 +57,7 @@ struct _GESTimelineTitleSource {
/*< private >*/ /*< private >*/
gboolean mute; gboolean mute;
gchar *text; gchar *text;
gchar *font_desc;
}; };
/** /**