[Xfce4-commits] [xfce/xfce4-settings] 03/67: display: Add SHA1-hashed EDID as property to each display

noreply at xfce.org noreply at xfce.org
Sat Sep 22 11:22:54 CEST 2018


This is an automated email from the git hooks/post-receive script.

o   c   h   o   s   i       p   u   s   h   e   d       a       c   o   m   m   i   t       t   o       b   r   a   n   c   h       m   a   s   t   e   r   
   in repository xfce/xfce4-settings.

commit c312032c1da073a9c40612db2a7a13a5a86ae1ad
Author: Simon Steinbeiss <simon.steinbeiss at elfenbeinturm.at>
Date:   Wed Aug 8 23:15:47 2018 +0200

    display: Add SHA1-hashed EDID as property to each display
---
 dialogs/display-settings/xfce-randr.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/dialogs/display-settings/xfce-randr.c b/dialogs/display-settings/xfce-randr.c
index 27f482a..409c2ba 100644
--- a/dialogs/display-settings/xfce-randr.c
+++ b/dialogs/display-settings/xfce-randr.c
@@ -45,9 +45,12 @@ struct _XfceRandrPrivate
     GdkDisplay          *display;
     XRRScreenResources  *resources;
 
+
     /* cache for the output/mode info */
     XRROutputInfo      **output_info;
     XfceRRMode         **modes;
+    /* SHA-1 checksum of the EDID */
+    gchar              **edid;
 };
 
 
@@ -204,6 +207,7 @@ xfce_randr_populate (XfceRandr *randr,
     /* allocate final space for the settings */
     randr->mode = g_new0 (RRMode, randr->noutput);
     randr->priv->modes = g_new0 (XfceRRMode *, randr->noutput);
+    randr->priv->edid = g_new0 (gchar *, randr->noutput);
     randr->position = g_new0 (XfceOutputPosition, randr->noutput);
     randr->rotation = g_new0 (Rotation, randr->noutput);
     randr->rotations = g_new0 (Rotation, randr->noutput);
@@ -326,6 +330,8 @@ xfce_randr_cleanup (XfceRandr *randr)
             XRRFreeOutputInfo (randr->priv->output_info[n]);
         if (G_LIKELY (randr->priv->modes[n]))
             g_free (randr->priv->modes[n]);
+        if (G_LIKELY (randr->priv->edid[n]))
+            g_free (randr->priv->edid[n]);
         if (G_LIKELY (randr->friendly_name[n]))
             g_free (randr->friendly_name[n]);
     }
@@ -337,6 +343,7 @@ xfce_randr_cleanup (XfceRandr *randr)
     g_free (randr->friendly_name);
     g_free (randr->mode);
     g_free (randr->priv->modes);
+    g_free (randr->priv->edid);
     g_free (randr->rotation);
     g_free (randr->rotations);
     g_free (randr->status);
@@ -418,6 +425,10 @@ xfce_randr_save_output (XfceRandr     *randr,
                 randr->priv->output_info[output]->name);
     xfconf_channel_set_bool (channel, property, mode != NULL);
 
+    g_snprintf (property, sizeof (property), "/%s/%s/EDID", scheme,
+                randr->priv->output_info[output]->name);
+    xfconf_channel_set_string (channel, property, randr->priv->edid[output]);
+
     if (mode == NULL)
         return;
 
@@ -557,8 +568,10 @@ xfce_randr_friendly_name (XfceRandr *randr,
     xdisplay = gdk_x11_display_get_xdisplay (randr->priv->display);
     edid_data = xfce_randr_read_edid_data (xdisplay, randr->priv->resources->outputs[output_rr_id]);
 
-    if (edid_data)
+    if (edid_data) {
         info = decode_edid (edid_data);
+        randr->priv->edid[output] = g_compute_checksum_for_data (G_CHECKSUM_SHA1 , edid_data, 128);
+    }
 
     if (info)
         friendly_name = make_display_name (info, output);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list