[gnome-desktop] gnome-rr: Add gnome_rr_output_get_ids_from_edid()
- From: Bastien Nocera <hadess src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-desktop] gnome-rr: Add gnome_rr_output_get_ids_from_edid()
- Date: Thu, 14 Jun 2012 15:25:47 +0000 (UTC)
commit db122d9fdd503a9327f4207ebfcf78d9e7d2e3d8
Author: Bastien Nocera <hadess hadess net>
Date: Tue May 29 15:15:32 2012 +0100
gnome-rr: Add gnome_rr_output_get_ids_from_edid()
To get the vendor/product/serial triplet from an output's EDID data.
This is useful for output matching in gnome-settings-daemon.
https://bugzilla.gnome.org/show_bug.cgi?id=677031
libgnome-desktop/gnome-rr.c | 29 +++++++++++++++++++++++++++++
libgnome-desktop/gnome-rr.h | 4 ++++
2 files changed, 33 insertions(+), 0 deletions(-)
---
diff --git a/libgnome-desktop/gnome-rr.c b/libgnome-desktop/gnome-rr.c
index daffedf..c6139c9 100644
--- a/libgnome-desktop/gnome-rr.c
+++ b/libgnome-desktop/gnome-rr.c
@@ -41,6 +41,7 @@
#include "gnome-rr-config.h"
#include "private.h"
+#include "edid.h"
#include "gnome-rr-private.h"
#define DISPLAY(o) ((o)->info->screen->priv->xdisplay)
@@ -1706,6 +1707,34 @@ gnome_rr_output_get_edid_data (GnomeRROutput *output, gsize *size)
return output->edid_data;
}
+gboolean
+gnome_rr_output_get_ids_from_edid (GnomeRROutput *output,
+ char **vendor,
+ int *product,
+ int *serial)
+{
+ MonitorInfo *info;
+
+ g_return_val_if_fail (output != NULL, FALSE);
+
+ if (!output->edid_data)
+ return FALSE;
+ info = decode_edid (output->edid_data);
+ if (!info)
+ return FALSE;
+ if (vendor)
+ *vendor = g_memdup (info->manufacturer_code, 4);
+ if (product)
+ *product = info->product_code;
+ if (serial)
+ *serial = info->serial_number;
+
+ g_free (info);
+
+ return TRUE;
+
+}
+
/**
* gnome_rr_output_get_backlight_min:
*
diff --git a/libgnome-desktop/gnome-rr.h b/libgnome-desktop/gnome-rr.h
index 38e5fb5..b6ea42e 100644
--- a/libgnome-desktop/gnome-rr.h
+++ b/libgnome-desktop/gnome-rr.h
@@ -154,6 +154,10 @@ int gnome_rr_output_get_width_mm (GnomeRROutput *outou
int gnome_rr_output_get_height_mm (GnomeRROutput *output);
const guint8 * gnome_rr_output_get_edid_data (GnomeRROutput *output,
gsize *size);
+gboolean gnome_rr_output_get_ids_from_edid (GnomeRROutput *output,
+ char **vendor,
+ int *product,
+ int *serial);
gint gnome_rr_output_get_backlight_min (GnomeRROutput *output);
gint gnome_rr_output_get_backlight_max (GnomeRROutput *output);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]