aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Michael <cpmichael@osg.samsung.com>2016-02-04 08:56:32 -0500
committerChris Michael <cpmichael@osg.samsung.com>2016-02-04 09:27:38 -0500
commitbb774a538e0f3a74cf9737f69a7ccba7b6909e61 (patch)
tree990e8d064c0a78e8aba8304950e3d889b2ba7d57
parentecore-drm: Add opaque structure for Ecore_Drm_Plane (diff)
downloadefl-bb774a538e0f3a74cf9737f69a7ccba7b6909e61.tar.gz
ecore-drm: Add API function to get supported rotations from an output
This patch adds an API function so that we can get the supported rotations from an output. This is needed so that the Screen Setup dialog in Enlightenment can list the rotations supported for the user to choose from while running using drm @feature Signed-off-by: Chris Michael <cpmichael@osg.samsung.com>
-rw-r--r--src/lib/ecore_drm/Ecore_Drm.h4
-rw-r--r--src/lib/ecore_drm/ecore_drm_output.c19
2 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h
index 66ac7fe94b..2942eeb765 100644
--- a/src/lib/ecore_drm/Ecore_Drm.h
+++ b/src/lib/ecore_drm/Ecore_Drm.h
@@ -1002,6 +1002,10 @@ EAPI Eina_Bool ecore_drm_output_possible_crtc_get(Ecore_Drm_Output *output, unsi
*/
EAPI Eina_Bool ecore_drm_output_mode_set(Ecore_Drm_Output *output, Ecore_Drm_Output_Mode *mode, int x, int y);
+/* TODO: doxy */
+/* @since 1.18 */
+EAPI unsigned int ecore_drm_output_supported_rotations_get(Ecore_Drm_Output *output, Ecore_Drm_Plane_Type type);
+
/**
* Enable key remap functionality on a Ecore_Drm_Evdev
*
diff --git a/src/lib/ecore_drm/ecore_drm_output.c b/src/lib/ecore_drm/ecore_drm_output.c
index c5fed37f6b..9dd4fd3e5c 100644
--- a/src/lib/ecore_drm/ecore_drm_output.c
+++ b/src/lib/ecore_drm/ecore_drm_output.c
@@ -1481,3 +1481,22 @@ ecore_drm_output_mode_set(Ecore_Drm_Output *output, Ecore_Drm_Output_Mode *mode,
return ret;
}
+
+EAPI unsigned int
+ecore_drm_output_supported_rotations_get(Ecore_Drm_Output *output, Ecore_Drm_Plane_Type type)
+{
+ Ecore_Drm_Plane *plane;
+ Eina_List *l;
+ unsigned int rot = -1;
+
+ EINA_SAFETY_ON_NULL_RETURN_VAL(output, rot);
+
+ EINA_LIST_FOREACH(output->planes, l, plane)
+ {
+ if (plane->type != type) continue;
+ rot = plane->supported_rotations;
+ break;
+ }
+
+ return rot;
+}