summaryrefslogtreecommitdiffstats
path: root/gst-libs/gst/xoverlay
diff options
context:
space:
mode:
authorJulien Moutte <julien@moutte.net>2004-02-03 23:05:46 +0000
committerJulien Moutte <julien@moutte.net>2004-02-03 23:05:46 +0000
commitb5341b201641a1a5fb92162ca91c29d6b8be5553 (patch)
tree8a36db37c9242290fd4e2227556f1cadea78d8e2 /gst-libs/gst/xoverlay
parent00a2dfbe9b9df88883bbc677fab900a051dc8ce6 (diff)
downloadgst-plugins-bad-b5341b201641a1a5fb92162ca91c29d6b8be5553.tar.gz
gst-plugins-bad-b5341b201641a1a5fb92162ca91c29d6b8be5553.tar.bz2
gst-plugins-bad-b5341b201641a1a5fb92162ca91c29d6b8be5553.zip
gst-libs/gst/xoverlay/xoverlay.*: Adding the _expose method to tell an overlay to redraw the image because it has bee...
Original commit message from CVS: 2004-02-04 Julien MOUTTE <julien@moutte.net> * gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_expose): * gst-libs/gst/xoverlay/xoverlay.h: Adding the _expose method to tell an overlay to redraw the image because it has been exposed. * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put), (gst_ximagesink_expose), (gst_ximagesink_xoverlay_init), (gst_ximagesink_init): * sys/ximage/ximagesink.h: Implement expose method from XOverlay interface * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_destroy), (gst_xvimagesink_xvimage_put), (gst_xvimagesink_expose), (gst_xvimagesink_xoverlay_init), (gst_xvimagesink_init): * sys/xvimage/xvimagesink.h: Implement expose method from XOverlay interface
Diffstat (limited to 'gst-libs/gst/xoverlay')
-rw-r--r--gst-libs/gst/xoverlay/xoverlay.c17
-rw-r--r--gst-libs/gst/xoverlay/xoverlay.h2
2 files changed, 19 insertions, 0 deletions
diff --git a/gst-libs/gst/xoverlay/xoverlay.c b/gst-libs/gst/xoverlay/xoverlay.c
index 2efe2966..73004f68 100644
--- a/gst-libs/gst/xoverlay/xoverlay.c
+++ b/gst-libs/gst/xoverlay/xoverlay.c
@@ -183,3 +183,20 @@ gst_x_overlay_got_desired_size (GstXOverlay *overlay, guint width, guint height)
g_signal_emit (G_OBJECT (overlay),
gst_x_overlay_signals[DESIRED_SIZE], 0, width, height);
}
+
+/**
+ * gst_x_overlay_expose:
+ * @overlay: a #GstXOverlay to expose.
+ *
+ * Tell an overlay that it has been exposed. This will redraw the current frame
+ * in the drawable even if the pipeline is PAUSED.
+ */
+void
+gst_x_overlay_expose (GstXOverlay *overlay)
+{
+ GstXOverlayClass *klass = GST_X_OVERLAY_GET_CLASS (overlay);
+
+ if (klass->expose) {
+ klass->expose (overlay);
+ }
+}
diff --git a/gst-libs/gst/xoverlay/xoverlay.h b/gst-libs/gst/xoverlay/xoverlay.h
index 4c684870..d92dc5ff 100644
--- a/gst-libs/gst/xoverlay/xoverlay.h
+++ b/gst-libs/gst/xoverlay/xoverlay.h
@@ -54,6 +54,7 @@ typedef struct _GstXOverlayClass {
void (* get_desired_size) (GstXOverlay *overlay,
guint *width,
guint *height);
+ void (* expose) (GstXOverlay *overlay);
/* signals */
void (*have_xwindow_id) (GstXOverlay *overlay,
@@ -70,6 +71,7 @@ GType gst_x_overlay_get_type (void);
/* virtual class function wrappers */
void gst_x_overlay_set_xwindow_id (GstXOverlay *overlay, XID xwindow_id);
void gst_x_overlay_get_desired_size (GstXOverlay *overlay, guint *width, guint *height);
+void gst_x_overlay_expose (GstXOverlay *overlay);
/* public methods to fire signals */
void gst_x_overlay_got_xwindow_id (GstXOverlay *overlay, XID xwindow_id);