princeamd pushed a commit to branch enlightenment-0.17.

commit aa726e1be9c0a598488d4477c3e80a5d9ae6c9fc
Author: Christopher Michael <[email protected]>
Date:   Tue Feb 19 10:59:28 2013 +0000

    Backport: dc509dd :: Add support for an outputs clones in e_randr and 
e_randr config.
    
    Signed-off-by: Christopher Michael <[email protected]>
    
    SVN revision: 84206
    Signed-off-by: Deon Thomas <[email protected]>
---
 src/bin/e_randr.c | 11 +++++++++++
 src/bin/e_randr.h |  2 ++
 2 files changed, 13 insertions(+)

diff --git a/src/bin/e_randr.c b/src/bin/e_randr.c
index fe06da2..27d2027 100644
--- a/src/bin/e_randr.c
+++ b/src/bin/e_randr.c
@@ -122,6 +122,10 @@ _e_randr_config_load(void)
                                    (char *)(&(eroc.edid)) - (char *)(&(eroc)),
                                    (char *)(&(eroc.edid_count)) -
                                    (char *)(&(eroc)), NULL, NULL);
+   eet_data_descriptor_element_add(D, "clones", EET_T_UINT, EET_G_VAR_ARRAY,
+                                   (char *)(&(eroc.clones)) - (char 
*)(&(eroc)),
+                                   (char *)(&(eroc.clone_count)) -
+                                   (char *)(&(eroc)), NULL, NULL);
 
    /* define edd for crtc config */
    _e_randr_crtc_edd = 
@@ -288,6 +292,11 @@ _e_randr_config_new(void)
                          ecore_x_randr_output_edid_get(root, outputs[j], 
                                                        
&output_cfg->edid_count);
 
+                       /* get the clones for this output */
+                       output_cfg->clones = 
+                         ecore_x_randr_output_clones_get(root, outputs[i], 
+                                                         
&output_cfg->clone_count);
+
                        /* add this output to the list for this crtc */
                        crtc_cfg->outputs = 
                          eina_list_append(crtc_cfg->outputs, output_cfg);
@@ -327,7 +336,9 @@ _e_randr_config_free(void)
         /* loop the config outputs on this crtc and free them */
         EINA_LIST_FREE(crtc->outputs, output)
           {
+             if (output->clones) free(output->clones);
              if (output->edid) free(output->edid);
+
              E_FREE(output);
           }
 
diff --git a/src/bin/e_randr.h b/src/bin/e_randr.h
index 044eef2..d7411ae 100644
--- a/src/bin/e_randr.h
+++ b/src/bin/e_randr.h
@@ -26,6 +26,8 @@ struct _E_Randr_Output_Config
    unsigned char primary; // flag to indicate if primary output
    unsigned long edid_count; // monitor's edid length
    unsigned char *edid; // monitor's edid
+   unsigned int *clones; // array of clones (each element of type 
ecore_x_randr output id (xid)
+   unsigned long clone_count; // number of clones
 };
 
 struct _E_Randr_Crtc_Config

-- 

------------------------------------------------------------------------------
This SF.net email is sponsored by Windows:

Build for Windows Store.

http://p.sf.net/sfu/windows-dev2dev

Reply via email to