mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-10-02 08:42:32 +00:00
add font-desc property to TimelineTitleSource
This commit is contained in:
parent
bae04feef4
commit
c0f0d6f5f4
2 changed files with 49 additions and 0 deletions
|
@ -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)
|
||||||
{
|
{
|
||||||
|
|
|
@ -57,6 +57,7 @@ struct _GESTimelineTitleSource {
|
||||||
/*< private >*/
|
/*< private >*/
|
||||||
gboolean mute;
|
gboolean mute;
|
||||||
gchar *text;
|
gchar *text;
|
||||||
|
gchar *font_desc;
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in a new issue