E-Power: Mode tweaks.

- Try newest (most likely?) method first.
- Enable selecting specific mode (for debug).
This commit is contained in:
Kim Woelders 2013-07-14 19:52:26 +02:00
parent ed72a3550d
commit 0c472462c8
1 changed files with 24 additions and 3 deletions

View File

@ -27,6 +27,11 @@ typedef struct
typedef void (bi_fetch_f) (bat_info_t * bi);
#define MODE_APM 1
#define MODE_ACPI 2
#define MODE_SYS 3
static char power_mode = 0;
static Epplet_gadget b_close, b_suspend, b_sleep, b_help, image, label;
static void
@ -367,11 +372,21 @@ cb_timer(void *data)
{
struct stat st;
if ((stat("/proc/apm", &st) > -1) && S_ISREG(st.st_mode))
if (power_mode == 0)
{
if ((stat("/sys/class/power_supply", &st) > -1) && S_ISDIR(st.st_mode))
power_mode = MODE_SYS;
else if ((stat("/proc/acpi/battery", &st) > -1) && S_ISDIR(st.st_mode))
power_mode = MODE_ACPI;
if ((stat("/proc/apm", &st) > -1) && S_ISREG(st.st_mode))
power_mode = MODE_APM;
}
if (power_mode == MODE_APM)
cb_timer_apm();
else if ((stat("/proc/acpi/battery", &st) > -1) && S_ISDIR(st.st_mode))
else if (power_mode == MODE_ACPI)
cb_timer_gen(_bat_info_fetch_acpi);
else if ((stat("/sys/class/power_supply", &st) > -1) && S_ISDIR(st.st_mode))
else if (power_mode == MODE_SYS)
cb_timer_gen(_bat_info_fetch_sys);
Epplet_timer(cb_timer, NULL, 10.0, "TIMER");
@ -424,6 +439,12 @@ cb_sleep(void *data)
int
main(int argc, char **argv)
{
char *s;
s = getenv("E_Power_Mode");
if (s)
power_mode = atoi(s);
Epplet_Init("E-Power", "0.1", "Enlightenment Laptop Power Epplet",
3, 3, argc, argv, 0);
atexit(Epplet_cleanup);