aboutsummaryrefslogtreecommitdiff
path: root/scrbr.c
diff options
context:
space:
mode:
Diffstat (limited to 'scrbr.c')
-rw-r--r--scrbr.c37
1 files changed, 15 insertions, 22 deletions
diff --git a/scrbr.c b/scrbr.c
index 398a414..9711af6 100644
--- a/scrbr.c
+++ b/scrbr.c
@@ -7,36 +7,29 @@
#define BDIR "/sys/class/backlight/amdgpu_bl1"
#define BMAXF max_brightness_f
#define BCURF current_brightness_f
+#define insbuf(s,n) size = ftell(s);\
+ rewind(s); fgets(buf,size,s); n = atoi(buf)
FILE *BCURF, *BMAXF;
+int delay_scrbr = 6;
+char brightness_str[10];
void scrbr(void)
{
- char *buf;
+ if (delay_scrbr++ < 6) goto show_stat;
+ else delay_scrbr = 0;
unsigned short current_brightness;
unsigned short max_brightness;
unsigned short size;
-
+ char buf[12];
if (!BCURF) BCURF = fopen(BDIR"/brightness","r");
if (!BMAXF) BMAXF = fopen(BDIR"/max_brightness","r");
-
fseek(BCURF, 0, SEEK_END);
fseek(BMAXF, 0, SEEK_END);
-
- size = ftell(BCURF);
- buf = malloc(size);
- rewind(BCURF);
- fgets(buf, size, BCURF);
- current_brightness = atoi(buf);
- free(buf);
-
- size = ftell(BMAXF);
- buf = malloc(size);
- rewind(BMAXF);
- fgets(buf, size, BMAXF);
- max_brightness = atoi(buf);
- free(buf);
-
- char brightness[10];
- snprintf(brightness,10,ICON_BR"%3d%%",
- current_brightness*100/max_brightness);
- block(brightness,FG,BG,BG);
+ insbuf(BCURF,current_brightness);
+ insbuf(BMAXF,max_brightness);
+ snprintf(
+ brightness_str,10,ICON_BR"%3d%%",
+ current_brightness*100/max_brightness
+ );
+show_stat:
+ block(brightness_str,FG,BG,BG);
}