From 2ac01d0db72c5f94418d619aa18c1df1647bb5e1 Mon Sep 17 00:00:00 2001 From: Christopher Michael Date: Wed, 8 Mar 2023 10:35:07 -0500 Subject: [PATCH] ecore_drm2: Add API to enable/disable a display --- src/lib/ecore_drm2/Ecore_Drm2.h | 1 + src/lib/ecore_drm2/ecore_drm2_displays.c | 13 +++++++++++++ 2 files changed, 14 insertions(+) diff --git a/src/lib/ecore_drm2/Ecore_Drm2.h b/src/lib/ecore_drm2/Ecore_Drm2.h index f07c2dc967..822afa8833 100644 --- a/src/lib/ecore_drm2/Ecore_Drm2.h +++ b/src/lib/ecore_drm2/Ecore_Drm2.h @@ -67,6 +67,7 @@ EAPI unsigned int ecore_drm2_display_subpixel_get(Ecore_Drm2_Display *disp); EAPI void ecore_drm2_display_physical_size_get(Ecore_Drm2_Display *disp, int *w, int *h); EAPI int ecore_drm2_display_dpms_get(Ecore_Drm2_Display *disp); EAPI Eina_Bool ecore_drm2_display_enabled_get(Ecore_Drm2_Display *disp); +EAPI void ecore_drm2_display_enabled_set(Ecore_Drm2_Display *disp, Eina_Bool enabled); 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); diff --git a/src/lib/ecore_drm2/ecore_drm2_displays.c b/src/lib/ecore_drm2/ecore_drm2_displays.c index 93e9a03b90..581426429b 100644 --- a/src/lib/ecore_drm2/ecore_drm2_displays.c +++ b/src/lib/ecore_drm2/ecore_drm2_displays.c @@ -677,6 +677,19 @@ ecore_drm2_display_enabled_get(Ecore_Drm2_Display *disp) return disp->state.current->enabled; } +EAPI void +ecore_drm2_display_enabled_set(Ecore_Drm2_Display *disp, Eina_Bool enabled) +{ + EINA_SAFETY_ON_NULL_RETURN(disp); + + if (disp->state.current->enabled == enabled) return; + + /* TODO, FIXME */ + + disp->state.pending->enabled = enabled; + disp->state.pending->changes |= ECORE_DRM2_DISPLAY_STATE_ENABLED; +} + EAPI unsigned int ecore_drm2_display_crtc_get(Ecore_Drm2_Display *disp) {