aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--battery.c45
1 files changed, 34 insertions, 11 deletions
diff --git a/battery.c b/battery.c
index 7c8a8dd..b6c9690 100644
--- a/battery.c
+++ b/battery.c
@@ -6,11 +6,13 @@
#define bat_open(f,F) if (!f) f = fopen(BATDIR"/"F,"r")
FILE *fenergy_now, *fenergy_full, *fbat_status;
float bat_p;
-int bat_state, bat_delay = 6;
+int bat_state,
+ bat_delay_val = 30,
+ bat_delay = 30;
char bat_str[13];
void battery(void)
{
- if (bat_delay++ < 6) goto show_stat;
+ if (bat_delay++ < bat_delay_val) goto show_stat;
else bat_delay = 0;
bat_open(fenergy_now,"energy_now");
@@ -19,25 +21,46 @@ void battery(void)
if (fenergy_now)
{
- int energy_now, energy_full;
+ int c, energy_now, energy_full;
rewind(fenergy_now);
rewind(fenergy_full);
rewind(fbat_status);
energy_now = energy_full = 0;
- int c;
bat_val(fenergy_now, energy_now);
bat_val(fenergy_full, energy_full);
bat_p = (float)energy_now * 100 / energy_full;
char *icon;
bat_state = fgetc(fbat_status);
switch(bat_state) {
- case 'N': icon = ""; break;
- case 'C': icon = "󱐋"; break;
- case 'D': if (bat_p > 79) icon = " ";
- else if (bat_p > 50) icon = " ";
- else if (bat_p > 30) icon = " ";
- else if (bat_p > 10) icon = " ";
- else icon = " ";
+ case 'N':
+ icon = "";
+ bat_delay_val = 300;
+ break;
+ case 'C':
+ icon = "󱐋";
+ bat_delay_val = 0; // 1 sec
+ break;
+ case 'D':
+ if (bat_p > 79) {
+ icon = " ";
+ bat_delay_val = 300;
+ }
+ else if (bat_p > 50) {
+ icon = " ";
+ bat_delay_val = 240;
+ }
+ else if (bat_p > 30) {
+ icon = " ";
+ bat_delay_val = 180;
+ }
+ else if (bat_p > 10) {
+ icon = " ";
+ bat_delay_val = 120;
+ }
+ else {
+ icon = " ";
+ bat_delay_val = 60;
+ }
}
snprintf(bat_str,13,"%s %02.2f%%",icon,bat_p);
}