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 Eina_List *_e_acpid_hdls = NULL;
|
||||
static Eina_Strbuf *acpibuf = NULL;
|
||||
static int lid_is_closed = -1;
|
||||
|
||||
static E_ACPI_Device_Simple _devices_simple[] =
|
||||
{
|
||||
|
@ -191,6 +192,14 @@ e_acpi_lid_status_get(void)
|
|||
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
|
||||
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:
|
||||
acpi_event->status =
|
||||
_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;
|
||||
|
||||
default:
|
||||
|
|
|
@ -72,7 +72,7 @@ EINTERN int e_acpi_init(void);
|
|||
EINTERN int e_acpi_shutdown(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_thaw(void);
|
||||
|
||||
|
|
Loading…
Reference in New Issue