devilhorns pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=958b15c2077214b3349e9102dd486bc5bef929d7
commit 958b15c2077214b3349e9102dd486bc5bef929d7 Author: Chris Michael <cp.mich...@samsung.com> Date: Thu May 7 11:37:54 2015 -0400 ecore-drm: Add new API function to mark an output as primary Summary: This adds a new API function which we can use to mark a given Ecore_Drm_Output as being the primary output. @feature Signed-off-by: Chris Michael <cp.mich...@samsung.com> --- src/lib/ecore_drm/Ecore_Drm.h | 10 ++++++++++ src/lib/ecore_drm/ecore_drm_device.c | 2 +- src/lib/ecore_drm/ecore_drm_output.c | 16 ++++++++++++++++ 3 files changed, 27 insertions(+), 1 deletion(-) diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h index ad2ae4a..481da42 100644 --- a/src/lib/ecore_drm/Ecore_Drm.h +++ b/src/lib/ecore_drm/Ecore_Drm.h @@ -869,6 +869,16 @@ EAPI Eina_List *ecore_drm_output_modes_get(Ecore_Drm_Output *output); EAPI Ecore_Drm_Output *ecore_drm_output_primary_get(Ecore_Drm_Device *dev); /** + * Set a given output as primary + * + * @param output The Ecore_Drm_Output to set as primary + * + * @ingroup Ecore_Drm_Output_Group + * @since 1.15 + */ +EAPI void ecore_drm_output_primary_set(Ecore_Drm_Output *output); + +/** * Get the size of the crtc for a given output * * @param output The Ecore_Drm_Output to get the crtc size of diff --git a/src/lib/ecore_drm/ecore_drm_device.c b/src/lib/ecore_drm/ecore_drm_device.c index 2a29b0e..b902c19 100644 --- a/src/lib/ecore_drm/ecore_drm_device.c +++ b/src/lib/ecore_drm/ecore_drm_device.c @@ -553,7 +553,7 @@ ecore_drm_device_output_name_find(Ecore_Drm_Device *dev, const char *name) Eina_List *l; EINA_SAFETY_ON_NULL_RETURN_VAL(dev, NULL); - EINA_SAFETY_ON_TRUE_RETURN_VAL(name, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(name, NULL); EINA_LIST_FOREACH(dev->outputs, l, output) if ((output->name) && (!strcmp(name, output->name))) diff --git a/src/lib/ecore_drm/ecore_drm_output.c b/src/lib/ecore_drm/ecore_drm_output.c index 8b4369e..2596538 100644 --- a/src/lib/ecore_drm/ecore_drm_output.c +++ b/src/lib/ecore_drm/ecore_drm_output.c @@ -1265,6 +1265,22 @@ ecore_drm_output_primary_get(Ecore_Drm_Device *dev) } EAPI void +ecore_drm_output_primary_set(Ecore_Drm_Output *output) +{ + const Eina_List *l; + Ecore_Drm_Output *out; + + EINA_SAFETY_ON_NULL_RETURN(output); + + /* unmark all outputs as primary */ + EINA_LIST_FOREACH(output->dev->outputs, l, out) + out->primary = EINA_FALSE; + + /* mark this output as primary */ + output->primary = EINA_TRUE; +} + +EAPI void ecore_drm_output_crtc_size_get(Ecore_Drm_Output *output, int *width, int *height) { if (width) *width = 0; --