[gnome-flashback] output: move GfGpu field to instance private
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] output: move GfGpu field to instance private
- Date: Sat, 11 Jul 2020 18:41:59 +0000 (UTC)
commit 8d74ca6312b5cffdf5f2748a6dfc348a7c6de2e4
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Tue Jul 7 15:19:49 2020 +0300
output: move GfGpu field to instance private
Based on mutter commit:
https://gitlab.gnome.org/GNOME/mutter/-/commit/f4fd92d8e8ba7957f2a4
backends/gf-output-private.h | 2 --
backends/gf-output-xrandr.c | 5 +--
backends/gf-output.c | 81 +++++++++++++++++++++++++++++++++++++++++++-
3 files changed, 83 insertions(+), 5 deletions(-)
---
diff --git a/backends/gf-output-private.h b/backends/gf-output-private.h
index c006a31..36d5788 100644
--- a/backends/gf-output-private.h
+++ b/backends/gf-output-private.h
@@ -57,8 +57,6 @@ struct _GfOutput
{
GObject parent;
- GfGpu *gpu;
-
/* The low-level ID of this output, used to apply back configuration */
glong winsys_id;
gchar *name;
diff --git a/backends/gf-output-xrandr.c b/backends/gf-output-xrandr.c
index a656fc9..46b0928 100644
--- a/backends/gf-output-xrandr.c
+++ b/backends/gf-output-xrandr.c
@@ -767,8 +767,9 @@ gf_create_xrandr_output (GfGpuXrandr *gpu_xrandr,
GBytes *edid;
unsigned int i;
- output = g_object_new (GF_TYPE_OUTPUT, NULL);
- output->gpu = GF_GPU (gpu_xrandr);
+ output = g_object_new (GF_TYPE_OUTPUT,
+ "gpu", GF_GPU (gpu_xrandr),
+ NULL);
output->winsys_id = output_id;
output->name = g_strdup (xrandr_output->name);
diff --git a/backends/gf-output.c b/backends/gf-output.c
index 7351d4a..65759a0 100644
--- a/backends/gf-output.c
+++ b/backends/gf-output.c
@@ -32,10 +32,23 @@
typedef struct
{
+ GfGpu *gpu;
+
/* The CRTC driving this output, NULL if the output is not enabled */
GfCrtc *crtc;
} GfOutputPrivate;
+enum
+{
+ PROP_0,
+
+ PROP_GPU,
+
+ LAST_PROP
+};
+
+static GParamSpec *output_properties[LAST_PROP] = { NULL };
+
G_DEFINE_TYPE_WITH_PRIVATE (GfOutput, gf_output, G_TYPE_OBJECT)
static void
@@ -73,6 +86,54 @@ gf_output_finalize (GObject *object)
G_OBJECT_CLASS (gf_output_parent_class)->finalize (object);
}
+static void
+gf_output_get_property (GObject *object,
+ guint property_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GfOutput *self;
+ GfOutputPrivate *priv;
+
+ self = GF_OUTPUT (object);
+ priv = gf_output_get_instance_private (self);
+
+ switch (property_id)
+ {
+ case PROP_GPU:
+ g_value_set_object (value, priv->gpu);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
+static void
+gf_output_set_property (GObject *object,
+ guint property_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GfOutput *self;
+ GfOutputPrivate *priv;
+
+ self = GF_OUTPUT (object);
+ priv = gf_output_get_instance_private (self);
+
+ switch (property_id)
+ {
+ case PROP_GPU:
+ priv->gpu = g_value_get_object (value);
+ break;
+
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
+ break;
+ }
+}
+
static void
gf_output_class_init (GfOutputClass *output_class)
{
@@ -82,6 +143,20 @@ gf_output_class_init (GfOutputClass *output_class)
object_class->dispose = gf_output_dispose;
object_class->finalize = gf_output_finalize;
+ object_class->get_property = gf_output_get_property;
+ object_class->set_property = gf_output_set_property;
+
+ output_properties[PROP_GPU] =
+ g_param_spec_object ("gpu",
+ "GfGpu",
+ "GfGpu",
+ GF_TYPE_GPU,
+ G_PARAM_READWRITE |
+ G_PARAM_CONSTRUCT_ONLY |
+ G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, LAST_PROP,
+ output_properties);
}
static void
@@ -92,7 +167,11 @@ gf_output_init (GfOutput *output)
GfGpu *
gf_output_get_gpu (GfOutput *output)
{
- return output->gpu;
+ GfOutputPrivate *priv;
+
+ priv = gf_output_get_instance_private (output);
+
+ return priv->gpu;
}
void
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]