[mutter] monitor: Add getter for EDID MD5 checksum
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor: Add getter for EDID MD5 checksum
- Date: Thu, 1 Sep 2022 14:52:09 +0000 (UTC)
commit 8446cd9f4f53550ab0fbd38b0ba3eea4ef6bf653
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Tue Oct 26 11:27:56 2021 +0200
monitor: Add getter for EDID MD5 checksum
Will be used for colord device matching.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2141>
src/backends/meta-monitor.c | 9 +++++++++
src/backends/meta-monitor.h | 2 ++
src/backends/meta-output.c | 8 +++++++-
src/backends/meta-output.h | 3 +++
4 files changed, 21 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
index 3ad02ee3ad..e002f9d937 100644
--- a/src/backends/meta-monitor.c
+++ b/src/backends/meta-monitor.c
@@ -473,6 +473,15 @@ meta_monitor_get_serial (MetaMonitor *monitor)
return output_info->serial;
}
+const char *
+meta_monitor_get_edid_checksum_md5 (MetaMonitor *monitor)
+{
+ const MetaOutputInfo *output_info =
+ meta_monitor_get_main_output_info (monitor);
+
+ return output_info->edid_checksum_md5;
+}
+
MetaConnectorType
meta_monitor_get_connector_type (MetaMonitor *monitor)
{
diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h
index 4d61f1d4bc..b24eaabfb6 100644
--- a/src/backends/meta-monitor.h
+++ b/src/backends/meta-monitor.h
@@ -155,6 +155,8 @@ const char * meta_monitor_get_product (MetaMonitor *monitor);
META_EXPORT_TEST
const char * meta_monitor_get_serial (MetaMonitor *monitor);
+const char * meta_monitor_get_edid_checksum_md5 (MetaMonitor *monitor);
+
META_EXPORT_TEST
MetaConnectorType meta_monitor_get_connector_type (MetaMonitor *monitor);
diff --git a/src/backends/meta-output.c b/src/backends/meta-output.c
index a02feca90f..551be67e8e 100644
--- a/src/backends/meta-output.c
+++ b/src/backends/meta-output.c
@@ -94,6 +94,7 @@ meta_output_info_unref (MetaOutputInfo *output_info)
g_free (output_info->vendor);
g_free (output_info->product);
g_free (output_info->serial);
+ g_free (output_info->edid_checksum_md5);
g_free (output_info->modes);
g_free (output_info->possible_crtcs);
g_free (output_info->possible_clones);
@@ -310,11 +311,16 @@ meta_output_info_parse_edid (MetaOutputInfo *output_info,
{
MetaEdidInfo *parsed_edid;
size_t len;
+ gconstpointer data;
if (!edid)
goto out;
- parsed_edid = meta_edid_info_new_parse (g_bytes_get_data (edid, &len));
+ data = g_bytes_get_data (edid, &len);
+ parsed_edid = meta_edid_info_new_parse (data);
+
+ output_info->edid_checksum_md5 = g_compute_checksum_for_data (G_CHECKSUM_MD5,
+ data, len);
if (parsed_edid)
{
diff --git a/src/backends/meta-output.h b/src/backends/meta-output.h
index 9970a7a450..02ec0fa092 100644
--- a/src/backends/meta-output.h
+++ b/src/backends/meta-output.h
@@ -84,6 +84,9 @@ typedef struct _MetaOutputInfo
char *vendor;
char *product;
char *serial;
+
+ char *edid_checksum_md5;
+
int width_mm;
int height_mm;
CoglSubpixelOrder subpixel_order;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]