ecore_drm2: Add API function to set display DPMS level

This commit is contained in:
Christopher Michael 2023-03-08 10:42:47 -05:00
parent 2ac01d0db7
commit 2b8b27ef5e
2 changed files with 17 additions and 0 deletions

View File

@ -66,6 +66,7 @@ EAPI unsigned int ecore_drm2_display_connector_type_get(Ecore_Drm2_Display *disp
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 void ecore_drm2_display_dpms_set(Ecore_Drm2_Display *disp, uint64_t level);
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);

View File

@ -670,6 +670,22 @@ ecore_drm2_display_dpms_get(Ecore_Drm2_Display *disp)
return disp->conn->state.current->dpms.value;
}
EAPI void
ecore_drm2_display_dpms_set(Ecore_Drm2_Display *disp, uint64_t level)
{
Ecore_Drm2_Connector_State *cstate, *pstate;
EINA_SAFETY_ON_NULL_RETURN(disp);
EINA_SAFETY_ON_NULL_RETURN(disp->conn);
cstate = disp->conn->state.current;
if (cstate->dpms.value == level) return;
pstate = disp->conn->state.pending;
pstate->dpms.value = level;
pstate->changes |= ECORE_DRM2_CONNECTOR_STATE_DPMS;
}
EAPI Eina_Bool
ecore_drm2_display_enabled_get(Ecore_Drm2_Display *disp)
{