From cf2a32501266ec49eaf3ee23f2ef5712f116f881 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Mon, 2 Jan 2023 07:25:44 -0500 Subject: [PATCH] ecore_drm2: Add API to return display mode info --- src/lib/ecore_drm2/Ecore_Drm2.h | 1 + src/lib/ecore_drm2/ecore_drm2_displays.c | 16 ++++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index 7978c8af8e..f43a167a49 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -70,6 +70,7 @@ EAPI Eina_Bool ecore_drm2_display_enabled_get(Ecore_Drm2_Display *disp); EAPI unsigned int ecore_drm2_display_crtc_get(Ecore_Drm2_Display *disp); EAPI char *ecore_drm2_display_edid_get(Ecore_Drm2_Display *disp); EAPI const Eina_List *ecore_drm2_display_modes_get(Ecore_Drm2_Display *disp); +EAPI void ecore_drm2_display_mode_info_get(Ecore_Drm2_Display_Mode *mode, int *w, int *h, unsigned int *refresh, unsigned int *flags); /* XXX: These are 'test' APIs */ EAPI void ecore_drm2_display_mode_set(Ecore_Drm2_Display *disp, Ecore_Drm2_Display_Mode *mode, int x, int y); diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c index d4e76b995c..906486098b 100644 --- a/src/lib/ecore_drm2/ecore_drm2_displays.c +++ b/src/lib/ecore_drm2/ecore_drm2_displays.c @@ -656,3 +656,19 @@ ecore_drm2_display_modes_get(Ecore_Drm2_Display *disp) EINA_SAFETY_ON_NULL_RETURN_VAL(disp, NULL); return disp->modes; } + +EAPI void +ecore_drm2_display_mode_info_get(Ecore_Drm2_Display_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; +}