From 9a76cd88c1259ca75acb93f7bee6cb7e7fb9427f Mon Sep 17 00:00:00 2001 From: =?utf8?q?Tim-Philipp=20M=C3=BCller?= Date: Wed, 8 Mar 2006 09:50:23 +0000 Subject: [PATCH] ext/pango/gsttextoverlay.c: Revert API/ABI break from March 1. Keep 'halign' and 'valign' as string type properties, ... Original commit message from CVS: * ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init), (gst_text_overlay_init), (gst_text_overlay_set_property), (gst_text_overlay_get_property): Revert API/ABI break from March 1. Keep 'halign' and 'valign' as string type properties, but mark them deprecated. Add 'halignment' and 'valignment' properties that use enums instead of strings. --- ChangeLog | 10 +++++++ ext/pango/gsttextoverlay.c | 74 +++++++++++++++++++++++++++++++++++----------- 2 files changed, 67 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index 798d267..b25da3d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,15 @@ 2006-03-08 Tim-Philipp Müller + * ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init), + (gst_text_overlay_init), (gst_text_overlay_set_property), + (gst_text_overlay_get_property): + Revert API/ABI break from March 1. Keep 'halign' and 'valign' + as string type properties, but mark them deprecated. Add + 'halignment' and 'valignment' properties that use enums + instead of strings. + +2006-03-08 Tim-Philipp Müller + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps): Allow palettes with less than 256 colours in AVI files (#333488, patch by: Fabrizio Gennari). diff --git a/ext/pango/gsttextoverlay.c b/ext/pango/gsttextoverlay.c index 865a20e..15b2171 100644 --- a/ext/pango/gsttextoverlay.c +++ b/ext/pango/gsttextoverlay.c @@ -103,8 +103,10 @@ static GstElementDetails text_overlay_details = { #define DEFAULT_PROP_TEXT "" #define DEFAULT_PROP_SHADING FALSE -#define DEFAULT_PROP_VALIGN GST_TEXT_OVERLAY_VALIGN_BASELINE -#define DEFAULT_PROP_HALIGN GST_TEXT_OVERLAY_HALIGN_CENTER +#define DEFAULT_PROP_VALIGNMENT GST_TEXT_OVERLAY_VALIGN_BASELINE +#define DEFAULT_PROP_HALIGNMENT GST_TEXT_OVERLAY_HALIGN_CENTER +#define DEFAULT_PROP_VALIGN "baseline" +#define DEFAULT_PROP_HALIGN "center" #define DEFAULT_PROP_XPAD 25 #define DEFAULT_PROP_YPAD 25 #define DEFAULT_PROP_DELTAX 0 @@ -120,8 +122,10 @@ enum PROP_0, PROP_TEXT, PROP_SHADING, - PROP_VALIGN, - PROP_HALIGN, + PROP_VALIGN, /* deprecated */ + PROP_HALIGN, /* deprecated */ + PROP_HALIGNMENT, + PROP_VALIGNMENT, PROP_XPAD, PROP_YPAD, PROP_DELTAX, @@ -308,15 +312,23 @@ gst_text_overlay_class_init (GstTextOverlayClass * klass) g_param_spec_boolean ("shaded-background", "shaded background", "Whether to shade the background under the text area", DEFAULT_PROP_SHADING, G_PARAM_READWRITE)); - g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VALIGN, - g_param_spec_enum ("valign", "vertical alignment", - "Vertical alignment of the text. ", - GST_TYPE_TEXT_OVERLAY_VALIGN, DEFAULT_PROP_VALIGN, + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VALIGNMENT, + g_param_spec_enum ("valignment", "vertical alignment", + "Vertical alignment of the text", + GST_TYPE_TEXT_OVERLAY_VALIGN, DEFAULT_PROP_VALIGNMENT, G_PARAM_READWRITE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_HALIGNMENT, + g_param_spec_enum ("halignment", "horizontal alignment", + "Horizontal alignment of the text", GST_TYPE_TEXT_OVERLAY_HALIGN, + DEFAULT_PROP_HALIGNMENT, G_PARAM_READWRITE)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_VALIGN, + g_param_spec_string ("valign", "vertical alignment", + "Vertical alignment of the text (deprecated; use valignment)", + DEFAULT_PROP_VALIGN, G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_HALIGN, - g_param_spec_enum ("halign", "horizontal alignment", - "Horizontal alignment of the text. ", GST_TYPE_TEXT_OVERLAY_HALIGN, - DEFAULT_PROP_HALIGN, G_PARAM_READWRITE)); + g_param_spec_string ("halign", "horizontal alignment", + "Horizontal alignment of the text (deprecated; use halignment)", + DEFAULT_PROP_HALIGN, G_PARAM_WRITABLE)); g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_XPAD, g_param_spec_int ("xpad", "horizontal paddding", "Horizontal paddding when using left/right alignment", 0, G_MAXINT, @@ -425,8 +437,8 @@ gst_text_overlay_init (GstTextOverlay * overlay, GstTextOverlayClass * klass) pango_layout_new (GST_TEXT_OVERLAY_GET_CLASS (overlay)->pango_context); memset (&overlay->bitmap, 0, sizeof (overlay->bitmap)); - overlay->halign = DEFAULT_PROP_HALIGN; - overlay->valign = DEFAULT_PROP_VALIGN; + overlay->halign = DEFAULT_PROP_HALIGNMENT; + overlay->valign = DEFAULT_PROP_VALIGNMENT; overlay->xpad = DEFAULT_PROP_XPAD; overlay->ypad = DEFAULT_PROP_YPAD; overlay->deltax = DEFAULT_PROP_DELTAX; @@ -558,10 +570,38 @@ gst_text_overlay_set_property (GObject * object, guint prop_id, case PROP_DELTAY: overlay->deltay = g_value_get_int (value); break; - case PROP_VALIGN: + case PROP_HALIGN:{ + const gchar *s = g_value_get_string (value); + + if (s && g_ascii_strcasecmp (s, "left") == 0) + overlay->valign = GST_TEXT_OVERLAY_HALIGN_LEFT; + else if (s && g_ascii_strcasecmp (s, "center") == 0) + overlay->valign = GST_TEXT_OVERLAY_HALIGN_CENTER; + else if (s && g_ascii_strcasecmp (s, "right") == 0) + overlay->valign = GST_TEXT_OVERLAY_HALIGN_RIGHT; + else + g_warning ("Invalid value '%s' for textoverlay property 'halign'", + GST_STR_NULL (s)); + break; + } + case PROP_VALIGN:{ + const gchar *s = g_value_get_string (value); + + if (s && g_ascii_strcasecmp (s, "baseline") == 0) + overlay->valign = GST_TEXT_OVERLAY_VALIGN_BASELINE; + else if (s && g_ascii_strcasecmp (s, "bottom") == 0) + overlay->valign = GST_TEXT_OVERLAY_VALIGN_BOTTOM; + else if (s && g_ascii_strcasecmp (s, "top") == 0) + overlay->valign = GST_TEXT_OVERLAY_VALIGN_TOP; + else + g_warning ("Invalid value '%s' for textoverlay property 'valign'", + GST_STR_NULL (s)); + break; + } + case PROP_VALIGNMENT: overlay->valign = g_value_get_enum (value); break; - case PROP_HALIGN: + case PROP_HALIGNMENT: overlay->halign = g_value_get_enum (value); break; case PROP_WRAP_MODE: @@ -620,10 +660,10 @@ gst_text_overlay_get_property (GObject * object, guint prop_id, case PROP_DELTAY: g_value_set_int (value, overlay->deltay); break; - case PROP_VALIGN: + case PROP_VALIGNMENT: g_value_set_enum (value, overlay->valign); break; - case PROP_HALIGN: + case PROP_HALIGNMENT: g_value_set_enum (value, overlay->halign); break; case PROP_WRAP_MODE: -- 2.7.4