diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c index 3ad02ee3a..e002f9d93 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 4d61f1d4b..b24eaabfb 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 a02feca90..551be67e8 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 9970a7a45..02ec0fa09 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;