forked from enlightenment/enlightenment
parent
f1ed5dd58d
commit
2c076a1ee6
|
@ -27,7 +27,7 @@ group {
|
||||||
parts {
|
parts {
|
||||||
part {
|
part {
|
||||||
name: "battery";
|
name: "battery";
|
||||||
clip_to: "fade_clip";
|
clip_to: "pulse_clip";
|
||||||
description {
|
description {
|
||||||
state: "default" 0.0;
|
state: "default" 0.0;
|
||||||
aspect: 0.669291339 0.669291339;
|
aspect: 0.669291339 0.669291339;
|
||||||
|
@ -206,6 +206,24 @@ group {
|
||||||
color: 255 255 255 128;
|
color: 255 255 255 128;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
part {
|
||||||
|
name: "pulse_clip";
|
||||||
|
type: RECT;
|
||||||
|
mouse_events: 0;
|
||||||
|
clip_to: "fade_clip";
|
||||||
|
description {
|
||||||
|
state: "default" 0.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "faded" 1.0;
|
||||||
|
color: 255 255 255 255;
|
||||||
|
}
|
||||||
|
description {
|
||||||
|
state: "faded" 0.0;
|
||||||
|
color: 255 255 255 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
programs {
|
programs {
|
||||||
program {
|
program {
|
||||||
|
@ -243,6 +261,29 @@ group {
|
||||||
action: STATE_SET "faded" 0.0;
|
action: STATE_SET "faded" 0.0;
|
||||||
target: "fade_clip";
|
target: "fade_clip";
|
||||||
}
|
}
|
||||||
|
program {
|
||||||
|
name: "pulse";
|
||||||
|
signal: "pulse";
|
||||||
|
source: "";
|
||||||
|
action: STATE_SET "faded" 0.0;
|
||||||
|
transition: ACCELERATE 0.3;
|
||||||
|
after: "pulse2";
|
||||||
|
target: "pulse_clip";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "pulse2";
|
||||||
|
signal: "pulse2";
|
||||||
|
source: "";
|
||||||
|
action: STATE_SET "faded" 1.0;
|
||||||
|
transition: ACCELERATE 0.1;
|
||||||
|
target: "pulse_clip";
|
||||||
|
}
|
||||||
|
program {
|
||||||
|
name: "pulsestop";
|
||||||
|
signal: "pulsestop";
|
||||||
|
source: "";
|
||||||
|
action: STATE_SET "default" 0.0;
|
||||||
|
target: "pulse_clip";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -58,6 +58,8 @@ shutdown(E_Module *m)
|
||||||
{
|
{
|
||||||
if (m->config_menu)
|
if (m->config_menu)
|
||||||
{
|
{
|
||||||
|
_battery_config_menu_del(e, e->config_menu_alarm);
|
||||||
|
_battery_config_menu_del(e, e->config_menu_poll);
|
||||||
_battery_config_menu_del(e, m->config_menu);
|
_battery_config_menu_del(e, m->config_menu);
|
||||||
m->config_menu = NULL;
|
m->config_menu = NULL;
|
||||||
}
|
}
|
||||||
|
@ -117,20 +119,23 @@ _battery_init(E_Module *m)
|
||||||
E_CONFIG_VAL(D, T, x, DOUBLE);
|
E_CONFIG_VAL(D, T, x, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, y, DOUBLE);
|
E_CONFIG_VAL(D, T, y, DOUBLE);
|
||||||
E_CONFIG_VAL(D, T, poll_time, DOUBLE);
|
E_CONFIG_VAL(D, T, poll_time, DOUBLE);
|
||||||
|
E_CONFIG_VAL(D, T, alarm, INT);
|
||||||
|
|
||||||
e->conf = e_config_domain_load("module.battery", e->conf_edd);
|
e->conf = e_config_domain_load("module.battery", e->conf_edd);
|
||||||
if (!e->conf)
|
if (!e->conf)
|
||||||
{
|
{
|
||||||
e->conf = E_NEW(Config, 1);
|
e->conf = E_NEW(Config, 1);
|
||||||
e->conf->width = 64;
|
e->conf->width = 64;
|
||||||
e->conf->x = 1.0;
|
e->conf->x = 1.0;
|
||||||
e->conf->y = 1.0;
|
e->conf->y = 1.0;
|
||||||
e->conf->poll_time = 30.0;
|
e->conf->poll_time = 30.0;
|
||||||
|
e->conf->alarm = 30;
|
||||||
}
|
}
|
||||||
E_CONFIG_LIMIT(e->conf->width, 2, 256);
|
E_CONFIG_LIMIT(e->conf->width, 2, 256);
|
||||||
E_CONFIG_LIMIT(e->conf->x, 0.0, 1.0);
|
E_CONFIG_LIMIT(e->conf->x, 0.0, 1.0);
|
||||||
E_CONFIG_LIMIT(e->conf->y, 0.0, 1.0);
|
E_CONFIG_LIMIT(e->conf->y, 0.0, 1.0);
|
||||||
E_CONFIG_LIMIT(e->conf->poll_time, 0.5, 1000.0);
|
E_CONFIG_LIMIT(e->conf->poll_time, 0.5, 1000.0);
|
||||||
|
E_CONFIG_LIMIT(e->conf->alarm, 0, 60);
|
||||||
|
|
||||||
managers = e_manager_list();
|
managers = e_manager_list();
|
||||||
for (l = managers; l; l = l->next)
|
for (l = managers; l; l = l->next)
|
||||||
|
@ -168,6 +173,69 @@ _battery_shutdown(Battery *e)
|
||||||
free(e);
|
free(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_10(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_20(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_30(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 30;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_40(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 40;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_50(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 50;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_60(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 60;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
_battery_menu_alarm_disable(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
|
{
|
||||||
|
Battery *e;
|
||||||
|
|
||||||
|
e = data;
|
||||||
|
e->conf->alarm = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
_battery_menu_fast(void *data, E_Menu *m, E_Menu_Item *mi)
|
_battery_menu_fast(void *data, E_Menu *m, E_Menu_Item *mi)
|
||||||
{
|
{
|
||||||
|
@ -236,6 +304,59 @@ _battery_config_menu_new(Battery *e)
|
||||||
|
|
||||||
mn = e_menu_new();
|
mn = e_menu_new();
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "Disable");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 0) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_disable, e);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "10 mins");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 10) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_10, e);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "20 mins");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 20) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_20, e);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "30 mins");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 30) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_30, e);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "40 mins");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 40) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_40, e);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "50 mins");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 50) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_50, e);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "1 hour");
|
||||||
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
e_menu_item_radio_group_set(mi, 1);
|
||||||
|
if (e->conf->alarm == 60) e_menu_item_toggle_set(mi, 1);
|
||||||
|
e_menu_item_callback_set(mi, _battery_menu_alarm_60, e);
|
||||||
|
|
||||||
|
e->config_menu_alarm = mn;
|
||||||
|
|
||||||
|
mn = e_menu_new();
|
||||||
|
|
||||||
mi = e_menu_item_new(mn);
|
mi = e_menu_item_new(mn);
|
||||||
e_menu_item_label_set(mi, "Check Fast (1 sec)");
|
e_menu_item_label_set(mi, "Check Fast (1 sec)");
|
||||||
e_menu_item_radio_set(mi, 1);
|
e_menu_item_radio_set(mi, 1);
|
||||||
|
@ -271,6 +392,18 @@ _battery_config_menu_new(Battery *e)
|
||||||
if (e->conf->poll_time == 60.0) e_menu_item_toggle_set(mi, 1);
|
if (e->conf->poll_time == 60.0) e_menu_item_toggle_set(mi, 1);
|
||||||
e_menu_item_callback_set(mi, _battery_menu_very_slow, e);
|
e_menu_item_callback_set(mi, _battery_menu_very_slow, e);
|
||||||
|
|
||||||
|
e->config_menu_poll = mn;
|
||||||
|
|
||||||
|
mn = e_menu_new();
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "Set Poll Time");
|
||||||
|
e_menu_item_submenu_set(mi, e->config_menu_poll);
|
||||||
|
|
||||||
|
mi = e_menu_item_new(mn);
|
||||||
|
e_menu_item_label_set(mi, "Set Alarm");
|
||||||
|
e_menu_item_submenu_set(mi, e->config_menu_alarm);
|
||||||
|
|
||||||
e->config_menu = mn;
|
e->config_menu = mn;
|
||||||
|
|
||||||
return mn;
|
return mn;
|
||||||
|
@ -443,7 +576,7 @@ _battery_cb_face_move(void *data, Evas *e, Evas_Object *obj, void *event_info)
|
||||||
if (ef->fy + ef->fw > sh) ef->fw = sh - ef->fy;
|
if (ef->fy + ef->fw > sh) ef->fw = sh - ef->fy;
|
||||||
evas_object_resize(ef->bat_object, ef->fw, ef->fw);
|
evas_object_resize(ef->bat_object, ef->fw, ef->fw);
|
||||||
evas_object_resize(ef->event_object, ef->fw, ef->fw);
|
evas_object_resize(ef->event_object, ef->fw, ef->fw);
|
||||||
}
|
}
|
||||||
ef->xx = ev->cur.canvas.x;
|
ef->xx = ev->cur.canvas.x;
|
||||||
ef->yy = ev->cur.canvas.y;
|
ef->yy = ev->cur.canvas.y;
|
||||||
}
|
}
|
||||||
|
@ -614,38 +747,54 @@ _battery_linux_acpi_check(Battery_Face *ef)
|
||||||
|
|
||||||
if ((charging) || (discharging))
|
if ((charging) || (discharging))
|
||||||
{
|
{
|
||||||
ef->battery_prev_battery = 1;
|
ef->battery_prev_battery = 1;
|
||||||
if ((charging ) && (ef->battery_prev_ac != 1))
|
if ((charging ) && (ef->battery_prev_ac != 1))
|
||||||
{
|
{
|
||||||
edje_object_signal_emit(ef->bat_object, "charge", "");
|
edje_object_signal_emit(ef->bat_object, "charge", "");
|
||||||
ef->battery_prev_ac = 1;
|
ef->battery_prev_ac = 1;
|
||||||
}
|
edje_object_signal_emit(ef->bat_object, "pulsestop", "");
|
||||||
else if ((discharging) && (ef->battery_prev_ac != 0))
|
ef->bat->alarm_triggered = 0;
|
||||||
{
|
}
|
||||||
edje_object_signal_emit(ef->bat_object, "discharge", "");
|
else if (discharging)
|
||||||
ef->battery_prev_ac = 0;
|
{
|
||||||
}
|
if (ef->battery_prev_ac != 0)
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(ef->bat_object, "discharge", "");
|
||||||
|
ef->battery_prev_ac = 0;
|
||||||
|
}
|
||||||
|
if (((hours * 60) + minutes) <= ef->bat->conf->alarm)
|
||||||
|
{
|
||||||
|
if (!ef->bat->alarm_triggered)
|
||||||
|
{
|
||||||
|
e_error_dialog_show("Battery Running Low",
|
||||||
|
"Your battery is running low.\n"
|
||||||
|
"You may wish to switch to an AC source.");
|
||||||
|
}
|
||||||
|
edje_object_signal_emit(ef->bat_object, "pulse", "");
|
||||||
|
ef->bat->alarm_triggered = 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (level_unknown)
|
if (level_unknown)
|
||||||
{
|
{
|
||||||
edje_object_part_text_set(ef->bat_object, "reading", "BAD DIRVER");
|
edje_object_part_text_set(ef->bat_object, "reading", "BAD DIRVER");
|
||||||
edje_object_part_text_set(ef->bat_object, "time", "--:--");
|
edje_object_part_text_set(ef->bat_object, "time", "--:--");
|
||||||
_battery_level_set(ef, 0.0);
|
_battery_level_set(ef, 0.0);
|
||||||
}
|
}
|
||||||
else if (rate_unknown)
|
else if (rate_unknown)
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "%i%%", bat_val);
|
snprintf(buf, sizeof(buf), "%i%%", bat_val);
|
||||||
edje_object_part_text_set(ef->bat_object, "reading", buf);
|
edje_object_part_text_set(ef->bat_object, "reading", buf);
|
||||||
edje_object_part_text_set(ef->bat_object, "time", "--:--");
|
edje_object_part_text_set(ef->bat_object, "time", "--:--");
|
||||||
_battery_level_set(ef, (double)bat_val / 100.0);
|
_battery_level_set(ef, (double)bat_val / 100.0);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
snprintf(buf, sizeof(buf), "%i%%", bat_val);
|
snprintf(buf, sizeof(buf), "%i%%", bat_val);
|
||||||
edje_object_part_text_set(ef->bat_object, "reading", buf);
|
edje_object_part_text_set(ef->bat_object, "reading", buf);
|
||||||
snprintf(buf, sizeof(buf), "%i:%02i", hours, minutes);
|
snprintf(buf, sizeof(buf), "%i:%02i", hours, minutes);
|
||||||
edje_object_part_text_set(ef->bat_object, "time", buf);
|
edje_object_part_text_set(ef->bat_object, "time", buf);
|
||||||
_battery_level_set(ef, (double)bat_val / 100.0);
|
_battery_level_set(ef, (double)bat_val / 100.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (!battery)
|
else if (!battery)
|
||||||
{
|
{
|
||||||
|
@ -723,7 +872,7 @@ _battery_linux_apm_check(Battery_Face *ef)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
switch( bat_stat )
|
switch (bat_stat)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
edje_object_part_text_set(ef->bat_object, "reading", "High");
|
edje_object_part_text_set(ef->bat_object, "reading", "High");
|
||||||
|
@ -747,25 +896,42 @@ _battery_linux_apm_check(Battery_Face *ef)
|
||||||
|
|
||||||
if (ac_stat == 1)
|
if (ac_stat == 1)
|
||||||
{
|
{
|
||||||
if ((ac_stat == 1) && (ef->battery_prev_ac == 0))
|
if ((ac_stat == 1) && (ef->battery_prev_ac == 0))
|
||||||
{
|
{
|
||||||
edje_object_signal_emit(ef->bat_object, "charge", "");
|
edje_object_signal_emit(ef->bat_object, "charge", "");
|
||||||
ef->battery_prev_ac = 1;
|
ef->battery_prev_ac = 1;
|
||||||
}
|
}
|
||||||
else if ((ac_stat == 0) && (ef->battery_prev_ac == 1))
|
else if ((ac_stat == 0) && (ef->battery_prev_ac == 1))
|
||||||
{
|
{
|
||||||
edje_object_signal_emit(ef->bat_object, "discharge", "");
|
edje_object_signal_emit(ef->bat_object, "discharge", "");
|
||||||
ef->battery_prev_ac = 0;
|
ef->battery_prev_ac = 0;
|
||||||
}
|
}
|
||||||
edje_object_part_text_set(ef->bat_object, "time", "--:--");
|
edje_object_part_text_set(ef->bat_object, "time", "--:--");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
hours = time_val / 3600;
|
hours = time_val / 3600;
|
||||||
minutes = (time_val / 60) % 60;
|
minutes = (time_val / 60) % 60;
|
||||||
snprintf(buf, sizeof(buf), "%i:%02i", hours, minutes);
|
snprintf(buf, sizeof(buf), "%i:%02i", hours, minutes);
|
||||||
edje_object_part_text_set(ef->bat_object, "time", buf);
|
edje_object_part_text_set(ef->bat_object, "time", buf);
|
||||||
}
|
|
||||||
|
if (((hours * 60) + minutes) <= ef->bat->conf->alarm)
|
||||||
|
{
|
||||||
|
if (!ef->bat->alarm_triggered)
|
||||||
|
{
|
||||||
|
e_error_dialog_show("Battery Running Low",
|
||||||
|
"Your battery is running low.\n"
|
||||||
|
"You may wish to switch to an AC source.");
|
||||||
|
}
|
||||||
|
edje_object_signal_emit(ef->bat_object, "pulse", "");
|
||||||
|
ef->bat->alarm_triggered = 1;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
edje_object_signal_emit(ef->bat_object, "pulsestop", "");
|
||||||
|
ef->bat->alarm_triggered = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,15 +14,19 @@ struct _Config
|
||||||
int width;
|
int width;
|
||||||
double x, y;
|
double x, y;
|
||||||
double poll_time;
|
double poll_time;
|
||||||
|
int alarm;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Battery
|
struct _Battery
|
||||||
{
|
{
|
||||||
E_Menu *config_menu;
|
E_Menu *config_menu;
|
||||||
|
E_Menu *config_menu_alarm;
|
||||||
|
E_Menu *config_menu_poll;
|
||||||
Battery_Face *face;
|
Battery_Face *face;
|
||||||
|
|
||||||
E_Config_DD *conf_edd;
|
E_Config_DD *conf_edd;
|
||||||
Config *conf;
|
Config *conf;
|
||||||
|
int alarm_triggered;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct _Battery_Face
|
struct _Battery_Face
|
||||||
|
|
Loading…
Reference in New Issue