Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/modules/battery


Modified Files:
        e_mod_main.c e_mod_main.h 


Log Message:


a temperature monitor module for acpi... it's simple... and really only
handles 1 temperature guage - but it's useful. fixed stuff in battery
modules, added config menus... ibar size change menu only works after a
restart for now.. need to fix that.

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/battery/e_mod_main.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -3 -r1.5 -r1.6
--- e_mod_main.c        27 Dec 2004 13:47:01 -0000      1.5
+++ e_mod_main.c        2 Jan 2005 02:39:44 -0000       1.6
@@ -34,7 +34,7 @@
    if (m->api->version < E_MODULE_API_VERSION)
      {
        e_error_dialog_show("Module API Error",
-                           "Error initializing Module: IBar\n"
+                           "Error initializing Module: Battery\n"
                            "It requires a minimum module API version of: %i.\n"
                            "The module API advertized by Enlightenment is: 
%i.\n"
                            "Aborting module.",
@@ -91,7 +91,10 @@
 about(E_Module *m)
 {
    e_error_dialog_show("Enlightenment Battery Module",
-                      "A simple module to give E17 a battery meter.");
+                      "A basic battery meter that uses either ACPI or APM\n"
+                      "on Linux to monitor your battery and AC power adaptor\n"
+                      "status. This will only work under Linux and is only\n"
+                      "as accurate as your BIOS or kernel drivers.");
    return 1;
 }
 
@@ -113,7 +116,8 @@
    E_CONFIG_VAL(D, T, width, INT);
    E_CONFIG_VAL(D, T, x, DOUBLE);
    E_CONFIG_VAL(D, T, y, DOUBLE);
-
+   E_CONFIG_VAL(D, T, poll_time, DOUBLE);
+   
    e->conf = e_config_domain_load("module.battery", e->conf_edd);
    if (!e->conf)
      {
@@ -121,10 +125,12 @@
        e->conf->width = 64;
        e->conf->x = 1.0;
        e->conf->y = 1.0;
+        e->conf->poll_time = 30.0;
      }
    E_CONFIG_LIMIT(e->conf->width, 2, 256);
    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->poll_time, 0.5, 1000.0);
    
    managers = e_manager_list();
    for (l = managers; l; l = l->next)
@@ -162,18 +168,109 @@
    free(e);
 }
 
+static void
+_battery_menu_fast(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Battery *e;
+   
+   e = data;
+   e->conf->poll_time = 1.0;
+   ecore_timer_del(e->face->battery_check_timer);
+   e->face->battery_check_timer = 
ecore_timer_add(e->face->bat->conf->poll_time, _battery_cb_check, e->face);
+   e_config_save_queue();
+}
+
+static void
+_battery_menu_medium(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Battery *e;
+   
+   e = data;
+   e->conf->poll_time = 5.0;
+   ecore_timer_del(e->face->battery_check_timer);
+   e->face->battery_check_timer = 
ecore_timer_add(e->face->bat->conf->poll_time, _battery_cb_check, e->face);
+   e_config_save_queue();
+}
+
+static void
+_battery_menu_normal(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Battery *e;
+   
+   e = data;
+   e->conf->poll_time = 10.0;
+   ecore_timer_del(e->face->battery_check_timer);
+   e->face->battery_check_timer = 
ecore_timer_add(e->face->bat->conf->poll_time, _battery_cb_check, e->face);
+   e_config_save_queue();
+}
+
+static void
+_battery_menu_slow(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Battery *e;
+   
+   e = data;
+   e->conf->poll_time = 30.0;
+   ecore_timer_del(e->face->battery_check_timer);
+   e->face->battery_check_timer = 
ecore_timer_add(e->face->bat->conf->poll_time, _battery_cb_check, e->face);
+   e_config_save_queue();
+}
+
+static void
+_battery_menu_very_slow(void *data, E_Menu *m, E_Menu_Item *mi)
+{
+   Battery *e;
+   
+   e = data;
+   e->conf->poll_time = 60.0;
+   ecore_timer_del(e->face->battery_check_timer);
+   e->face->battery_check_timer = 
ecore_timer_add(e->face->bat->conf->poll_time, _battery_cb_check, e->face);
+   e_config_save_queue();
+}
+
 static E_Menu *
 _battery_config_menu_new(Battery *e)
 {
    E_Menu *mn;
    E_Menu_Item *mi;
 
-   /* FIXME: hook callbacks to each menu item */
    mn = e_menu_new();
    
    mi = e_menu_item_new(mn);
-   e_menu_item_label_set(mi, "(Unused)");
-/*   e_menu_item_callback_set(mi, _battery_cb_time_set, e);*/
+   e_menu_item_label_set(mi, "Check Fast (1 sec)");
+   e_menu_item_radio_set(mi, 1);
+   e_menu_item_radio_group_set(mi, 1);
+   if (e->conf->poll_time == 1.0) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _battery_menu_fast, e);
+   
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, "Check Medium (5 sec)");
+   e_menu_item_radio_set(mi, 1);
+   e_menu_item_radio_group_set(mi, 1);
+   if (e->conf->poll_time == 5.0) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _battery_menu_medium, e);
+   
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, "Check Normal (10 sec)");
+   e_menu_item_radio_set(mi, 1);
+   e_menu_item_radio_group_set(mi, 1);
+   if (e->conf->poll_time == 10.0) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _battery_menu_normal, e);
+
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, "Check Slow (30 sec)");
+   e_menu_item_radio_set(mi, 1);
+   e_menu_item_radio_group_set(mi, 1);
+   if (e->conf->poll_time == 30.0) e_menu_item_toggle_set(mi, 1);
+   e_menu_item_callback_set(mi, _battery_menu_slow, e);
+
+   mi = e_menu_item_new(mn);
+   e_menu_item_label_set(mi, "Check Very Slow (60 sec)");
+   e_menu_item_radio_set(mi, 1);
+   e_menu_item_radio_group_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->config_menu = mn;
    
    return mn;
@@ -230,7 +327,7 @@
    ef->battery_prev_drain = 1;
    ef->battery_prev_ac = -1;
    ef->battery_prev_battery = -1;
-   ef->battery_check_timer = ecore_timer_add(1.0, _battery_cb_check, ef);
+   ef->battery_check_timer = ecore_timer_add(ef->bat->conf->poll_time, 
_battery_cb_check, ef);
    
    _battery_cb_check(ef);
    
@@ -434,9 +531,9 @@
        char *name;
        
        name = bats->data;
+       bats = evas_list_remove_list(bats, bats);
        if ((!strcmp(name, ".")) || (!strcmp(name, "..")))
          {
-            bats = evas_list_remove_list(bats, bats);
             free(name);
             continue;
          }
@@ -447,12 +544,12 @@
             int design_cap = 0;
             int last_full = 0;
             
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s %*s", buf);
             if (!strcmp(buf, "unknown")) design_cap_unknown = 1;
             else sscanf(buf2, "%*[^:]: %i %*s", &design_cap);
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s %*s", buf);
             if (!strcmp(buf, "unknown")) last_full_unknown = 1;
             else sscanf(buf2, "%*[^:]: %i %*s", &last_full);
@@ -470,17 +567,17 @@
             int rate = 1;
             int level = 0;
             
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s", present);
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s", capacity_state);
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s", charging_state);
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s %*s", buf);
             if (!strcmp(buf, "unknown")) rate_unknown = 1;
             else sscanf(buf2, "%*[^:]: %i %*s", &rate);
-            fgets(buf2, sizeof(buf2), f); buf[sizeof(buf2) - 1] = 0;
+            fgets(buf2, sizeof(buf2), f); buf2[sizeof(buf2) - 1] = 0;
             sscanf(buf2, "%*[^:]: %250s %*s", buf);
             if (!strcmp(buf, "unknown")) level_unknown = 1;
             else sscanf(buf2, "%*[^:]: %i %*s", &level);
@@ -491,7 +588,6 @@
             bat_drain += rate;
             bat_level += level;
          }
-       bats = evas_list_remove_list(bats, bats);
        free(name);
      }
    
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/modules/battery/e_mod_main.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -3 -r1.2 -r1.3
--- e_mod_main.h        27 Dec 2004 10:49:46 -0000      1.2
+++ e_mod_main.h        2 Jan 2005 02:39:44 -0000       1.3
@@ -13,6 +13,7 @@
 {
    int width;
    double x, y;
+   double poll_time;
 };
 
 struct _Battery




-------------------------------------------------------
The SF.Net email is sponsored by: Beat the post-holiday blues
Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek.
It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to