[gnome-flashback] backends: keep a pointer to the monitor manager in GfOutput
- From: Alberts Muktupāvels <muktupavels src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-flashback] backends: keep a pointer to the monitor manager in GfOutput
- Date: Wed, 24 Jan 2018 16:19:52 +0000 (UTC)
commit bb92dac117f2ffe51de7a0d7485587418ff39048
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date: Wed Jan 24 18:05:28 2018 +0200
backends: keep a pointer to the monitor manager in GfOutput
Based on mutter commit:
https://gitlab.gnome.org/GNOME/mutter/commit/e0d839aea283
backends/gf-monitor-manager-xrandr.c | 1 +
backends/gf-output-private.h | 74 ++++++++++++++++++---------------
backends/gf-output.c | 6 +++
3 files changed, 47 insertions(+), 34 deletions(-)
---
diff --git a/backends/gf-monitor-manager-xrandr.c b/backends/gf-monitor-manager-xrandr.c
index 3ebbc62..08d1c3d 100644
--- a/backends/gf-monitor-manager-xrandr.c
+++ b/backends/gf-monitor-manager-xrandr.c
@@ -1664,6 +1664,7 @@ gf_monitor_manager_xrandr_read_current (GfMonitorManager *manager)
GBytes *edid;
output = g_object_new (GF_TYPE_OUTPUT, NULL);
+ output->monitor_manager = manager;
output->winsys_id = resources->outputs[i];
output->name = g_strdup (xrandr_output->name);
diff --git a/backends/gf-output-private.h b/backends/gf-output-private.h
index bd2bcd3..c26456b 100644
--- a/backends/gf-output-private.h
+++ b/backends/gf-output-private.h
@@ -29,6 +29,7 @@
#include "gf-monitor-manager-enums-private.h"
#include "gf-monitor-manager-types-private.h"
+#include "gf-monitor-manager.h"
G_BEGIN_DECLS
@@ -54,65 +55,70 @@ typedef struct
struct _GfOutput
{
- GObject parent;
+ GObject parent;
+
+ GfMonitorManager *monitor_manager;
/* The CRTC driving this output, NULL if the output is not enabled */
- GfCrtc *crtc;
+ GfCrtc *crtc;
/* The low-level ID of this output, used to apply back configuration */
- glong winsys_id;
- gchar *name;
- gchar *vendor;
- gchar *product;
- gchar *serial;
- gint width_mm;
- gint height_mm;
+ glong winsys_id;
+ gchar *name;
+ gchar *vendor;
+ gchar *product;
+ gchar *serial;
+ gint width_mm;
+ gint height_mm;
- GfConnectorType connector_type;
+ GfConnectorType connector_type;
- GfCrtcMode *preferred_mode;
- GfCrtcMode **modes;
- guint n_modes;
+ GfCrtcMode *preferred_mode;
+ GfCrtcMode **modes;
+ guint n_modes;
- GfCrtc **possible_crtcs;
- guint n_possible_crtcs;
+ GfCrtc **possible_crtcs;
+ guint n_possible_crtcs;
- GfOutput **possible_clones;
- guint n_possible_clones;
+ GfOutput **possible_clones;
+ guint n_possible_clones;
- gint backlight;
- gint backlight_min;
- gint backlight_max;
+ gint backlight;
+ gint backlight_min;
+ gint backlight_max;
/* Used when changing configuration */
- gboolean is_dirty;
+ gboolean is_dirty;
/* The low-level bits used to build the high-level info in GfLogicalMonitor */
- gboolean is_primary;
- gboolean is_presentation;
- gboolean is_underscanning;
- gboolean supports_underscanning;
+ gboolean is_primary;
+ gboolean is_presentation;
+ gboolean is_underscanning;
+ gboolean supports_underscanning;
- gpointer driver_private;
- GDestroyNotify driver_notify;
+ gpointer driver_private;
+ GDestroyNotify driver_notify;
/* Get a new preferred mode on hotplug events, to handle
* dynamic guest resizing
*/
- gboolean hotplug_mode_update;
- gint suggested_x;
- gint suggested_y;
+ gboolean hotplug_mode_update;
+ gint suggested_x;
+ gint suggested_y;
- GfTileInfo tile_info;
+ GfTileInfo tile_info;
};
#define GF_TYPE_OUTPUT (gf_output_get_type ())
G_DECLARE_FINAL_TYPE (GfOutput, gf_output, GF, OUTPUT, GObject)
-void gf_output_parse_edid (GfOutput *output,
- GBytes *edid);
+GfMonitorManager *gf_output_get_monitor_manager (GfOutput *output);
+
+
+void gf_output_parse_edid (GfOutput *output,
+ GBytes *edid);
-gboolean gf_output_is_laptop (GfOutput *output);
+gboolean gf_output_is_laptop (GfOutput *output);
G_END_DECLS
diff --git a/backends/gf-output.c b/backends/gf-output.c
index 70c9910..2051259 100644
--- a/backends/gf-output.c
+++ b/backends/gf-output.c
@@ -68,6 +68,12 @@ gf_output_init (GfOutput *output)
{
}
+GfMonitorManager *
+gf_output_get_monitor_manager (GfOutput *output)
+{
+ return output->monitor_manager;
+}
+
void
gf_output_parse_edid (GfOutput *output,
GBytes *edid)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]