diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index 7032afedbe..508c0fd91f 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -465,6 +465,20 @@ EAPI void ecore_drm2_output_physical_size_get(Ecore_Drm2_Output *output, int *w, */ EAPI const Eina_List *ecore_drm2_output_modes_get(Ecore_Drm2_Output *output); +/** + * Get information from an existing output mode + * + * @param mode + * @param w + * @param h + * @param refresh + * @param flags + * + * @ingroup Ecore_Drm2_Output_Group + * @since 1.18 + */ +EAPI void ecore_drm2_output_mode_info_get(Ecore_Drm2_Output_Mode *mode, int *w, int *h, unsigned int *refresh, unsigned int *flags); + /** * @defgroup Ecore_Drm2_Fb_Group Drm framebuffer functions * diff --git a/src/lib/ecore_drm2/ecore_drm2_outputs.c b/src/lib/ecore_drm2/ecore_drm2_outputs.c index 83ff1f3587..0f89fe748a 100644 --- a/src/lib/ecore_drm2/ecore_drm2_outputs.c +++ b/src/lib/ecore_drm2/ecore_drm2_outputs.c @@ -973,3 +973,19 @@ ecore_drm2_output_modes_get(Ecore_Drm2_Output *output) EINA_SAFETY_ON_NULL_RETURN_VAL(output, NULL); return output->modes; } + +EAPI void +ecore_drm2_output_mode_info_get(Ecore_Drm2_Output_Mode *mode, int *w, int *h, unsigned int *refresh, unsigned int *flags) +{ + if (w) *w = 0; + if (h) *h = 0; + if (refresh) *refresh = 0; + if (flags) *flags = 0; + + EINA_SAFETY_ON_NULL_RETURN(mode); + + if (w) *w = mode->width; + if (h) *h = mode->height; + if (refresh) *refresh = mode->refresh; + if (flags) *flags = mode->flags; +}