gst-indent
[platform/upstream/gst-plugins-good.git] / ext / pango / gsttextoverlay.h
1 /* -*- Mode: C; c-file-style: "stroustrup" -*- */
2 #ifndef __GST_TEXTOVERLAY_H__
3 #define __GST_TEXTOVERLAY_H__
4
5 #include <gst/gst.h>
6 #include <pango/pangoft2.h>
7
8 G_BEGIN_DECLS
9 #define GST_TYPE_TEXTOVERLAY           (gst_textoverlay_get_type())
10 #define GST_TEXTOVERLAY(obj)           (G_TYPE_CHECK_INSTANCE_CAST((obj),\
11                                         GST_TYPE_TEXTOVERLAY, GstTextOverlay))
12 #define GST_TEXTOVERLAY_CLASS(klass)   (G_TYPE_CHECK_CLASS_CAST((klass),\
13                                         GST_TYPE_ULAW, GstTextOverlay))
14 #define GST_TEXTOVERLAY_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj),\
15                                         GST_TYPE_TEXTOVERLAY, GstTextOverlayClass))
16 #define GST_IS_TEXTOVERLAY(obj)        (G_TYPE_CHECK_INSTANCE_TYPE((obj),\
17                                         GST_TYPE_TEXTOVERLAY))
18 #define GST_IS_TEXTOVERLAY_CLASS(obj)  (G_TYPE_CHECK_CLASS_TYPE((klass),\
19                                         GST_TYPE_TEXTOVERLAY))
20 typedef struct _GstTextOverlay GstTextOverlay;
21 typedef struct _GstTextOverlayClass GstTextOverlayClass;
22
23 typedef enum _GstTextOverlayVAlign GstTextOverlayVAlign;
24 typedef enum _GstTextOverlayHAlign GstTextOverlayHAlign;
25
26 enum _GstTextOverlayVAlign
27 {
28   GST_TEXT_OVERLAY_VALIGN_BASELINE,
29   GST_TEXT_OVERLAY_VALIGN_BOTTOM,
30   GST_TEXT_OVERLAY_VALIGN_TOP,
31 };
32
33 enum _GstTextOverlayHAlign
34 {
35   GST_TEXT_OVERLAY_HALIGN_LEFT,
36   GST_TEXT_OVERLAY_HALIGN_CENTER,
37   GST_TEXT_OVERLAY_HALIGN_RIGHT,
38 };
39
40
41 struct _GstTextOverlay
42 {
43   GstElement element;
44
45   GstPad *video_sinkpad;
46   GstPad *text_sinkpad;
47   GstPad *srcpad;
48   gint width;
49   gint height;
50   PangoLayout *layout;
51   FT_Bitmap bitmap;
52   gint bitmap_buffer_size;
53   gint baseline_y;
54   GstTextOverlayVAlign valign;
55   GstTextOverlayHAlign halign;
56   gint x0;
57   gint y0;
58   GstBuffer *current_buffer;
59   GstBuffer *next_buffer;
60   gchar *default_text;
61   gboolean need_render;
62 };
63
64 struct _GstTextOverlayClass
65 {
66   GstElementClass parent_class;
67
68   PangoContext *pango_context;
69 };
70
71 GType
72 gst_textoverlay_get_type (void)
73     G_GNUC_CONST;
74
75 G_END_DECLS
76 #endif /* __GST_TEXTOVERLAY_H */