still no functionality changes. SVN revision: 48943devs/princeamd/enlightenment-0.17-elive
parent
e65da68f57
commit
bafe1c825f
3 changed files with 130 additions and 6 deletions
@ -0,0 +1,113 @@ |
||||
#include "e.h" |
||||
#include "e_mod_main.h" |
||||
|
||||
void |
||||
_battery_udev_start() |
||||
{ |
||||
device_batteries = eeze_udev_find_by_type(EEZE_UDEV_TYPE_POWER_BAT, NULL); |
||||
device_ac_adapters = eeze_udev_find_by_type(EEZE_UDEV_TYPE_POWER_AC, NULL); |
||||
|
||||
battery_config->batwatch = eeze_udev_watch_add(EEZE_UDEV_TYPE_POWER_BAT, _battery_udev_event_battery, NULL); |
||||
battery_config->acwatch = eeze_udev_watch_add(EEZE_UDEV_TYPE_POWER_AC, _battery_udev_event_ac, NULL); |
||||
|
||||
init_time = ecore_time_get(); |
||||
} |
||||
|
||||
void |
||||
_battery_udev_event_battery(const char syspath, const char *event, void *data, Eeze_Udev_Watch *watch) |
||||
{ |
||||
if ((!strcmp(event, "add")) || (!strcmp(event, "online"))) |
||||
_battery_udev_battery_add(syspath); |
||||
else if ((!strcmp(event, "remove")) || (!strcmp(event, "offline"))) |
||||
_battery_udev_battery_del(syspath); |
||||
else /* must be change */ |
||||
_battery_udev_battery_update(syspath, data); |
||||
} |
||||
|
||||
void |
||||
_battery_udev_event_ac(const char syspath, const char *event, void *data, Eeze_Udev_Watch *watch) |
||||
{ |
||||
if ((!strcmp(event, "add")) || (!strcmp(event, "online"))) |
||||
_battery_udev_ac_add(syspath); |
||||
else if ((!strcmp(event, "remove")) || (!strcmp(event, "offline"))) |
||||
_battery_udev_ac_del(syspath); |
||||
else /* must be change */ |
||||
_battery_udev_ac_update(syspath, data); |
||||
} |
||||
|
||||
void |
||||
_battery_udev_battery_add(const char *syspath) |
||||
{ |
||||
Battery *bat; |
||||
|
||||
if (!(bat = _battery_battery_find(syspath))) |
||||
{ |
||||
if (!(bat = E_NEW(Battery, 1); |
||||
{ |
||||
eina_stringshare_del(syspath); |
||||
return; |
||||
} |
||||
bat->udi = syspath; /* already stringshared */ |
||||
device_batteries = eina_list_append(device_batteries, bat); |
||||
bat->watch = eeze_udev_watch_add(EEZE_UDEV_TYPE_POWER_BAT, _battery_udev_event_battery, bat); |
||||
_battery_udev_battery_init(bat); |
||||
|
||||
_battery_device_update(); |
||||
} |
||||
|
||||
void |
||||
_battery_udev_ac_add(const char *syspath) |
||||
{ |
||||
Ac_Adapter *ac; |
||||
|
||||
if (!(ac = _battery_ac_adapter_find(syspath))) |
||||
{ |
||||
if (!(ac = E_NEW(Ac_Adapter, 1); |
||||
{ |
||||
eina_stringshare_del(syspath); |
||||
return; |
||||
} |
||||
ac->udi = syspath; /* already stringshared */ |
||||
device_ac_adapters = eina_list_append(device_ac_adapters, ac); |
||||
ac->watch = eeze_udev_watch_add(EEZE_UDEV_TYPE_POWER_AC, _battery_udev_event_ac, ac); |
||||
_battery_udev_ac_init(ac); |
||||
|
||||
_battery_device_update(); |
||||
} |
||||
|
||||
void |
||||
_battery_udev_battery_del(const char *syspath) |
||||
{ |
||||
Eina_List *l; |
||||
Battery *bat; |
||||
|
||||
if ((battery = _battery_battery_find(syspath))) |
||||
{ |
||||
eeze_udev_watch_del(bat->watch); |
||||
l = eina_list_data_find(device_batteries, bat); |
||||
eina_stringshare_del(bat->udi); |
||||
free(bat); |
||||
device_batteries = eina_list_remove_list(device_batteries, l); |
||||
return; |
||||
} |
||||
_battery_device_update(); |
||||
} |
||||
|
||||
void |
||||
_battery_udev_ac_del(const char *syspath) |
||||
{ |
||||
Eina_List *l; |
||||
Ac_Adapter *ac; |
||||
|
||||
if ((ac = _battery_ac_adapter_find(syspath))) |
||||
{ |
||||
eeze_udev_watch_del(ac->watch); |
||||
l = eina_list_data_find(device_ac_adapters, ac); |
||||
eina_stringshare_del(ac->udi); |
||||
free(ac); |
||||
device_ac_adapters = eina_list_remove_list(device_ac_adapters, l); |
||||
return; |
||||
} |
||||
_battery_device_update(); |
||||
} |
||||
|
Loading…
Reference in new issue