From 8e773e6d107ddf3e0cad7cdedae33cd6d15259ad Mon Sep 17 00:00:00 2001 From: gb Date: Mon, 22 Mar 2010 12:47:13 +0000 Subject: [PATCH] Add gst_vaapi_window_get_fullscreen() helper and "fullscreen" property. --- docs/reference/libs/libs-sections.txt | 2 ++ gst-libs/gst/vaapi/gstvaapiwindow.c | 34 ++++++++++++++++++++++++++- gst-libs/gst/vaapi/gstvaapiwindow.h | 3 +++ 3 files changed, 38 insertions(+), 1 deletion(-) diff --git a/docs/reference/libs/libs-sections.txt b/docs/reference/libs/libs-sections.txt index 852bd32f82..f12019b0c1 100644 --- a/docs/reference/libs/libs-sections.txt +++ b/docs/reference/libs/libs-sections.txt @@ -166,8 +166,10 @@ GstVaapiRectangle GstVaapiWindow GstVaapiWindow GstVaapiWindowClass +gst_vaapi_window_get_display gst_vaapi_window_show gst_vaapi_window_hide +gst_vaapi_window_get_fullscreen gst_vaapi_window_set_fullscreen gst_vaapi_window_get_width gst_vaapi_window_get_height diff --git a/gst-libs/gst/vaapi/gstvaapiwindow.c b/gst-libs/gst/vaapi/gstvaapiwindow.c index d93f7afb8d..9f2d2abf62 100644 --- a/gst-libs/gst/vaapi/gstvaapiwindow.c +++ b/gst-libs/gst/vaapi/gstvaapiwindow.c @@ -49,7 +49,8 @@ enum { PROP_DISPLAY, PROP_WIDTH, - PROP_HEIGHT + PROP_HEIGHT, + PROP_FULLSCREEN }; static void @@ -113,6 +114,9 @@ gst_vaapi_window_set_property( case PROP_HEIGHT: gst_vaapi_window_set_height(window, g_value_get_uint(value)); break; + case PROP_FULLSCREEN: + gst_vaapi_window_set_fullscreen(window, g_value_get_boolean(value)); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -139,6 +143,9 @@ gst_vaapi_window_get_property( case PROP_HEIGHT: g_value_set_uint(value, gst_vaapi_window_get_height(window)); break; + case PROP_FULLSCREEN: + g_value_set_boolean(value, window->priv->is_fullscreen); + break; default: G_OBJECT_WARN_INVALID_PROPERTY_ID(object, prop_id, pspec); break; @@ -201,6 +208,15 @@ gst_vaapi_window_class_init(GstVaapiWindowClass *klass) "The window height", 1, G_MAXUINT32, 1, G_PARAM_READWRITE)); + + g_object_class_install_property + (object_class, + PROP_FULLSCREEN, + g_param_spec_boolean("fullscreen", + "Fullscreen", + "The fullscreen state of the window", + FALSE, + G_PARAM_READWRITE)); } static void @@ -264,6 +280,22 @@ gst_vaapi_window_hide(GstVaapiWindow *window) GST_VAAPI_WINDOW_GET_CLASS(window)->hide(window); } +/** + * gst_vaapi_window_get_fullscreen: + * @window: a #GstVaapiWindow + * + * Retrieves whether the @window is fullscreen or not + * + * Return value: %TRUE if the window is fullscreen + */ +gboolean +gst_vaapi_window_get_fullscreen(GstVaapiWindow *window) +{ + g_return_val_if_fail(GST_VAAPI_IS_WINDOW(window), FALSE); + + return window->priv->is_fullscreen; +} + /** * gst_vaapi_window_set_fullscreen: * @window: a #GstVaapiWindow diff --git a/gst-libs/gst/vaapi/gstvaapiwindow.h b/gst-libs/gst/vaapi/gstvaapiwindow.h index 4c2bbcbe8f..2eb1f0ee83 100644 --- a/gst-libs/gst/vaapi/gstvaapiwindow.h +++ b/gst-libs/gst/vaapi/gstvaapiwindow.h @@ -110,6 +110,9 @@ gst_vaapi_window_show(GstVaapiWindow *window); void gst_vaapi_window_hide(GstVaapiWindow *window); +gboolean +gst_vaapi_window_get_fullscreen(GstVaapiWindow *window); + void gst_vaapi_window_set_fullscreen(GstVaapiWindow *window, gboolean fullscreen);