diff options
| author | Inqiyad Sabr <sabr@ariamath.xyz> | 2025-11-19 11:53:47 +0600 |
|---|---|---|
| committer | Inqiyad Sabr <sabr@ariamath.xyz> | 2025-11-19 11:53:47 +0600 |
| commit | bcf99629acee9083f390cd459169f3c1c3d11da7 (patch) | |
| tree | 1c8aa09c6edb4652b62a3aed34c8f63b0131042f | |
| parent | 006e91063c9c13517fb96e0bd99993069c8c257b (diff) | |
different delay values for different states
| -rw-r--r-- | battery.c | 45 |
1 files changed, 34 insertions, 11 deletions
@@ -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); } |