forked from enlightenment/enlightenment
add e_acpi_lid_is_closed() for returning cached state of computer lid
This commit is contained in:
parent
f843b48eb2
commit
98068e9b9c
|
@ -53,6 +53,7 @@ static int _e_acpi_events_frozen = 0;
|
||||||
static Ecore_Con_Server *_e_acpid = NULL;
|
static Ecore_Con_Server *_e_acpid = NULL;
|
||||||
static Eina_List *_e_acpid_hdls = NULL;
|
static Eina_List *_e_acpid_hdls = NULL;
|
||||||
static Eina_Strbuf *acpibuf = NULL;
|
static Eina_Strbuf *acpibuf = NULL;
|
||||||
|
static int lid_is_closed = -1;
|
||||||
|
|
||||||
static E_ACPI_Device_Simple _devices_simple[] =
|
static E_ACPI_Device_Simple _devices_simple[] =
|
||||||
{
|
{
|
||||||
|
@ -191,6 +192,14 @@ e_acpi_lid_status_get(void)
|
||||||
return E_ACPI_LID_UNKNOWN;
|
return E_ACPI_LID_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
EINTERN Eina_Bool
|
||||||
|
e_acpi_lid_is_closed(void)
|
||||||
|
{
|
||||||
|
if (lid_is_closed == -1)
|
||||||
|
lid_is_closed = (e_acpi_lid_status_get() == E_ACPI_LID_CLOSED);
|
||||||
|
return lid_is_closed;
|
||||||
|
}
|
||||||
|
|
||||||
EAPI void
|
EAPI void
|
||||||
e_acpi_events_freeze(void)
|
e_acpi_events_freeze(void)
|
||||||
{
|
{
|
||||||
|
@ -335,6 +344,9 @@ _e_acpi_cb_server_data(void *data EINA_UNUSED, int type EINA_UNUSED, void *event
|
||||||
case E_ACPI_TYPE_LID:
|
case E_ACPI_TYPE_LID:
|
||||||
acpi_event->status =
|
acpi_event->status =
|
||||||
_e_acpi_lid_status_get(device, bus);
|
_e_acpi_lid_status_get(device, bus);
|
||||||
|
/* no change in lid state */
|
||||||
|
if (lid_is_closed == (acpi_event->status == E_ACPI_LID_CLOSED)) break;
|
||||||
|
lid_is_closed = (acpi_event->status == E_ACPI_LID_CLOSED);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -72,7 +72,7 @@ EINTERN int e_acpi_init(void);
|
||||||
EINTERN int e_acpi_shutdown(void);
|
EINTERN int e_acpi_shutdown(void);
|
||||||
|
|
||||||
EINTERN E_Acpi_Lid_Status e_acpi_lid_status_get(void);
|
EINTERN E_Acpi_Lid_Status e_acpi_lid_status_get(void);
|
||||||
|
EINTERN Eina_Bool e_acpi_lid_is_closed(void);
|
||||||
EAPI void e_acpi_events_freeze(void);
|
EAPI void e_acpi_events_freeze(void);
|
||||||
EAPI void e_acpi_events_thaw(void);
|
EAPI void e_acpi_events_thaw(void);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue