aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristopher Michael <cp.michael@samsung.com>2013-02-19 10:59:28 +0000
committerChristopher Michael <cpmichael1@comcast.net>2013-02-19 10:59:28 +0000
commitdc509dd812e0d090291a42aa94ea6c4fc85540dd (patch)
tree6f6dcc652919167fc84e9c73ed80ba6559634dfe /src
parentf7defbd2766675faed990d9c45f832ecb8a25809 (diff)
downloadenlightenment-dc509dd812e0d090291a42aa94ea6c4fc85540dd.tar.gz
enlightenment-dc509dd812e0d090291a42aa94ea6c4fc85540dd.tar.xz
enlightenment-dc509dd812e0d090291a42aa94ea6c4fc85540dd.zip
Add support for an outputs clones in e_randr and e_randr config.
Signed-off-by: Christopher Michael <cp.michael@samsung.com> SVN revision: 84206
Diffstat (limited to 'src')
-rw-r--r--src/bin/e_randr.c11
-rw-r--r--src/bin/e_randr.h2
2 files changed, 13 insertions, 0 deletions
diff --git a/src/bin/e_randr.c b/src/bin/e_randr.c
index fe06da206..27d2027c6 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 044eef277..d7411aec6 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