Ecore DPMS function to get the current power level

This commit is contained in:
Deon 'PrinceAMD' Thomas 2013-05-07 11:47:27 +01:00 committed by Chris Michael
parent 59e011b67c
commit 19c4916f41
2 changed files with 33 additions and 0 deletions

View File

@ -397,6 +397,14 @@ typedef enum _Ecore_X_Error_Code
ECORE_X_ERROR_CODE_BAD_IMPLEMENTATION = 17,
} Ecore_X_Error_Code;
typedef enum _Ecore_X_Dpms_Mode
{
ECORE_X_DPMS_MODE_ON = 0,
ECORE_X_DPMS_MODE_STANDBY = 1,
ECORE_X_DPMS_MODE_SUSPEND = 2,
ECORE_X_DPMS_MODE_OFF = 3
} Ecore_X_Dpms_Mode;
typedef struct _Ecore_X_Event_Mouse_In Ecore_X_Event_Mouse_In;
typedef struct _Ecore_X_Event_Mouse_Out Ecore_X_Event_Mouse_Out;
typedef struct _Ecore_X_Event_Window_Focus_In Ecore_X_Event_Window_Focus_In;
@ -2360,6 +2368,7 @@ EAPI Eina_Bool ecore_x_dpms_query(void);
EAPI Eina_Bool ecore_x_dpms_capable_get(void);
EAPI Eina_Bool ecore_x_dpms_enabled_get(void);
EAPI void ecore_x_dpms_enabled_set(int enabled);
EAPI Ecore_X_Dpms_Mode ecore_x_dpms_power_level_get(void);
EAPI void ecore_x_dpms_timeouts_get(unsigned int *standby, unsigned int *suspend, unsigned int *off);
EAPI Eina_Bool ecore_x_dpms_timeouts_set(unsigned int standby, unsigned int suspend, unsigned int off);
EAPI unsigned int ecore_x_dpms_timeout_standby_get(void);

View File

@ -79,6 +79,30 @@ ecore_x_dpms_enabled_get(void)
#endif /* ifdef ECORE_XDPMS */
}
/**
* Check the DPMS power level.
* @return @c 0 if DPMS is :In Use
* @return @c 1 if DPMS is :Blanked, low power
* @return @c 2 if DPMS is :Blanked, lower power
* @return @c 3 if DPMS is :Shut off, awaiting activity
* @return @c -1 othwhise.
*/
EAPI Ecore_X_Dpms_Mode
ecore_x_dpms_power_level_get(void)
{
#ifdef ECORE_XDPMS
unsigned char state;
unsigned short power_lvl;
LOGFN(__FILE__, __LINE__, __FUNCTION__);
DPMSInfo(_ecore_x_disp, &power_lvl, &state);
return (int)power_lvl;
#else
return -1;
#endif
}
/**
* Sets the DPMS state of the display.
* @param enabled @c 0 to disable DPMS characteristics of the server, enable it otherwise.