diff options
author | Chris Michael <cp.michael@samsung.com> | 2015-05-05 09:12:25 -0400 |
---|---|---|
committer | Chris Michael <cp.michael@samsung.com> | 2015-05-07 14:39:46 -0400 |
commit | 1ab4975491f184f11b4c6407218669805a29894e (patch) | |
tree | b24a4b2c72c54cbf167b3b96ec37c79fd85e986e | |
parent | 34664306a99100cdcebcba9b163d2d28ee3d1350 (diff) | |
download | efl-1ab4975491f184f11b4c6407218669805a29894e.tar.gz |
ecore-drm: Add API function to return output modes
Summary: This adds a new API function to return a list of modes
supported on a given output
@feature
Signed-off-by: Chris Michael <cp.michael@samsung.com>
-rw-r--r-- | src/lib/ecore_drm/Ecore_Drm.h | 24 | ||||
-rw-r--r-- | src/lib/ecore_drm/ecore_drm_output.c | 9 | ||||
-rw-r--r-- | src/lib/ecore_drm/ecore_drm_private.h | 8 |
3 files changed, 31 insertions, 10 deletions
diff --git a/src/lib/ecore_drm/Ecore_Drm.h b/src/lib/ecore_drm/Ecore_Drm.h index e2b79a0567..2177b3f49f 100644 --- a/src/lib/ecore_drm/Ecore_Drm.h +++ b/src/lib/ecore_drm/Ecore_Drm.h @@ -153,8 +153,14 @@ struct _Ecore_Drm_Event_Output /* opaque structure to represent a drm device */ typedef struct _Ecore_Drm_Device Ecore_Drm_Device; -/* opaque structure to represent a drm output mode */ -typedef struct _Ecore_Drm_Output_Mode Ecore_Drm_Output_Mode; +/* structure to represent a drm output mode */ +typedef struct _Ecore_Drm_Output_Mode +{ + unsigned int flags; + int width, height; + unsigned int refresh; + drmModeModeInfo info; +} Ecore_Drm_Output_Mode; /* opaque structure to represent a drm output */ typedef struct _Ecore_Drm_Output Ecore_Drm_Output; @@ -836,6 +842,20 @@ EAPI Eina_Bool ecore_drm_output_backlight_get(Ecore_Drm_Output *output); */ EAPI char *ecore_drm_output_edid_get(Ecore_Drm_Output *output); +/** + * Get a list of the modes supported on a given output + * + * @param output The Ecore_Drm_Output to get the modes for + * + * @return An Eina_List of the modes supported for this output + * + * @note The returned list should not be freed + * + * @ingroup Ecore_Drm_Output_Group + * @since 1.15 + */ +EAPI Eina_List *ecore_drm_output_modes_get(Ecore_Drm_Output *output); + #ifdef __cplusplus } #endif diff --git a/src/lib/ecore_drm/ecore_drm_output.c b/src/lib/ecore_drm/ecore_drm_output.c index b6c44cc3a1..fbd2a2a53e 100644 --- a/src/lib/ecore_drm/ecore_drm_output.c +++ b/src/lib/ecore_drm/ecore_drm_output.c @@ -1137,3 +1137,12 @@ ecore_drm_output_edid_get(Ecore_Drm_Output *output) return strdup(output->edid_blob); } + +EAPI Eina_List * +ecore_drm_output_modes_get(Ecore_Drm_Output *output) +{ + EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL); + EINA_SAFETY_ON_NULL_RETURN_VAL(output->modes, NULL); + + return output->modes; +} diff --git a/src/lib/ecore_drm/ecore_drm_private.h b/src/lib/ecore_drm/ecore_drm_private.h index 3bacef2334..8a2ca3c91b 100644 --- a/src/lib/ecore_drm/ecore_drm_private.h +++ b/src/lib/ecore_drm/ecore_drm_private.h @@ -87,14 +87,6 @@ typedef struct _Ecore_Drm_Pageflip_Callback int count; } Ecore_Drm_Pageflip_Callback; -struct _Ecore_Drm_Output_Mode -{ - unsigned int flags; - int width, height; - unsigned int refresh; - drmModeModeInfo info; -}; - typedef enum _Ecore_Drm_Backlight_Type { ECORE_DRM_BACKLIGHT_RAW, |