tizen 2.0 init
[framework/multimedia/gst-plugins-good0.10.git] / ext / cairo / gsttextoverlay.h
1
2 #ifndef __GST_CAIRO_TEXT_OVERLAY_H__
3 #define __GST_CAIRO_TEXT_OVERLAY_H__
4
5 #include <gst/gst.h>
6 #include <gst/base/gstcollectpads.h>
7
8 G_BEGIN_DECLS
9
10 #define GST_TYPE_CAIRO_TEXT_OVERLAY           (gst_text_overlay_get_type())
11 #define GST_CAIRO_TEXT_OVERLAY(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj),\
12                                         GST_TYPE_CAIRO_TEXT_OVERLAY, GstCairoTextOverlay))
13 #define GST_CAIRO_TEXT_OVERLAY_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass),\
14                                         GST_TYPE_CAIRO_TEXT_OVERLAY, GstCairoTextOverlayClass))
15 #define GST_CAIRO_TEXT_OVERLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\
16                                         GST_TYPE_CAIRO_TEXT_OVERLAY, GstCairoTextOverlayClass))
17 #define GST_IS_CAIRO_TEXT_OVERLAY(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
18                                         GST_TYPE_CAIRO_TEXT_OVERLAY))
19 #define GST_IS_CAIRO_TEXT_OVERLAY_CLASS(klass)  (G_TYPE_CHECK_CLASS_TYPE((klass),\
20                                         GST_TYPE_CAIRO_TEXT_OVERLAY))
21
22 typedef struct _GstCairoTextOverlay      GstCairoTextOverlay;
23 typedef struct _GstCairoTextOverlayClass GstCairoTextOverlayClass;
24
25 typedef enum _GstCairoTextOverlayVAlign GstCairoTextOverlayVAlign;
26 typedef enum _GstCairoTextOverlayHAlign GstCairoTextOverlayHAlign;
27
28 enum _GstCairoTextOverlayVAlign {
29     GST_CAIRO_TEXT_OVERLAY_VALIGN_BASELINE,
30     GST_CAIRO_TEXT_OVERLAY_VALIGN_BOTTOM,
31     GST_CAIRO_TEXT_OVERLAY_VALIGN_TOP
32 };
33
34 enum _GstCairoTextOverlayHAlign {
35     GST_CAIRO_TEXT_OVERLAY_HALIGN_LEFT,
36     GST_CAIRO_TEXT_OVERLAY_HALIGN_CENTER,
37     GST_CAIRO_TEXT_OVERLAY_HALIGN_RIGHT
38 };
39
40
41 struct _GstCairoTextOverlay {
42     GstElement            element;
43
44     GstPad               *video_sinkpad;
45     GstPad               *text_sinkpad;
46     GstPad               *srcpad;
47
48     GstCollectPads       *collect;
49     GstCollectData       *video_collect_data;
50     GstCollectData       *text_collect_data;
51     GstPadEventFunction   collect_event;
52
53     gint                  width;
54     gint                  height;
55     gint                  fps_n;
56     gint                  fps_d;
57
58     GstCairoTextOverlayVAlign  valign;
59     GstCairoTextOverlayHAlign  halign;
60     gint                  xpad;
61     gint                  ypad;
62     gint                  deltax;
63     gint                  deltay;
64     gchar                *default_text;
65     gboolean              want_shading;
66
67     guchar               *text_fill_image;
68     guchar               *text_outline_image;
69     gint                  font_height;
70     gint                  text_x0, text_x1; /* start/end x position of text */
71     gint                  text_dy;
72
73     gboolean              need_render;
74
75     gchar                *font;
76     gint                  slant;
77     gint                  weight;
78     gdouble               scale;
79     gboolean              silent;
80 };
81
82 struct _GstCairoTextOverlayClass {
83   GstElementClass parent_class;
84 };
85
86 GType gst_text_overlay_get_type (void);
87
88 G_END_DECLS
89
90 #endif /* __GST_CAIRO_TEXT_OVERLAY_H */