Introduction
Introduction Statistics Contact Development Disclaimer Help
tAdd backlight code. - droid4-sys - Droid4 tools
git clone git://parazyd.org/droid4-sys.git | https://git.parazyd.org/droid4-sys
Log
Files
Refs
LICENSE
---
commit abccab3a85f3d3ae63d56b8b09e58712153c9ef9
Author: parazyd <[email protected]>
Date: Wed, 22 May 2019 22:59:57 +0200
Add backlight code.
Diffstat:
A Makefile | 27 +++++++++++++++++++++++++++
A arg.h | 50 +++++++++++++++++++++++++++++…
A backlight.c | 62 +++++++++++++++++++++++++++++…
A config.mk | 4 ++++
4 files changed, 143 insertions(+), 0 deletions(-)
---
diff --git a/Makefile b/Makefile
t@@ -0,0 +1,27 @@
+.POSIX:
+
+include config.mk
+
+BIN = backlight
+OBJ = $(BIN:=.o)
+
+all: $(BIN)
+
+$(OBJ): config.mk
+
+$(BIN): $(OBJ)
+ $(CC) $(OBJ) $(LDFLAGS) -o $@
+
+clean:
+ rm -f $(BIN) $(OBJ)
+
+install: all
+ mkdir -p $(DESTDIR)$(PREFIX)/bin
+ cp -f $(BIN) $(DESTDIR)$(PREFIX)/bin
+ chmod 4711 $(DESTDIR)$(PREFIX)/bin/$(BIN)
+
+uninstall:
+ rm -rf $(DESTDIR)$(PREFIX)/bin/$(BIN)
+
+.c.o:
+ $(CC) $(CFLAGS) -c $<
diff --git a/arg.h b/arg.h
t@@ -0,0 +1,50 @@
+/*
+ * Copy me if you can.
+ * by 20h
+ */
+
+#ifndef ARG_H__
+#define ARG_H__
+
+extern char *argv0;
+
+/* use main(int argc, char *argv[]) */
+#define ARGBEGIN for (argv0 = *argv, argv++, argc--;\
+ argv[0] && argv[0][0] == '-'\
+ && argv[0][1];\
+ argc--, argv++) {\
+ char argc_;\
+ char **argv_;\
+ int brk_;\
+ if (argv[0][1] == '-' && argv[0][2] == '\0') {\
+ argv++;\
+ argc--;\
+ break;\
+ }\
+ int i_;\
+ for (i_ = 1, brk_ = 0, argv_ = argv;\
+ argv[0][i_] && !brk_;\
+ i_++) {\
+ if (argv_ != argv)\
+ break;\
+ argc_ = argv[0][i_];\
+ switch (argc_)
+
+#define ARGEND }\
+ }
+
+#define ARGC() argc_
+
+#define EARGF(x) ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\
+ ((x), abort(), (char *)0) :\
+ (brk_ = 1, (argv[0][i_+1] != '\0')?\
+ (&argv[0][i_+1]) :\
+ (argc--, argv++, argv[0])))
+
+#define ARGF() ((argv[0][i_+1] == '\0' && argv[1] == NULL)?\
+ (char *)0 :\
+ (brk_ = 1, (argv[0][i_+1] != '\0')?\
+ (&argv[0][i_+1]) :\
+ (argc--, argv++, argv[0])))
+
+#endif
diff --git a/backlight.c b/backlight.c
t@@ -0,0 +1,62 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+#include "arg.h"
+
+char *argv0;
+
+void usage(void) {
+ fprintf(stderr, "usage: %s [-l|-k] [on|off]\n", argv0);
+ exit(1);
+}
+
+int main(int argc, char *argv[]) {
+ const char *kbd_backlight = "/sys/class/leds/kbd_backlight/brightness";
+ const char *lcd_backlight = "/sys/class/backlight/lcd/brightness";
+ int iskbd = 0, islcd = 0, state = -1;
+ char *act = NULL;
+ FILE *fd = NULL;
+
+ ARGBEGIN {
+ case 'l':
+ islcd = 1;
+ act = EARGF(usage());
+ break;
+ case 'k':
+ iskbd = 1;
+ act = EARGF(usage());
+ break;
+ default:
+ usage();
+ } ARGEND;
+
+ if ((islcd && iskbd) || (!islcd && !iskbd))
+ usage();
+
+ if (!strcmp(act, "on"))
+ state = 1;
+ else if (!strcmp(act, "off"))
+ state = 0;
+ if (state < 0)
+ usage();
+
+ if (islcd)
+ fd = fopen(lcd_backlight, "w");
+ if (iskbd)
+ fd = fopen(kbd_backlight, "w");
+
+ if (fd == NULL) {
+ fprintf(stderr, "Unable to open file for writing.\n");
+ return 1;
+ }
+
+ if (islcd)
+ fprintf(fd, "%d", state==0 ? 0 : 200);
+ if (iskbd)
+ fprintf(fd, "%d", state==0 ? 0 : 255);
+
+ fclose(fd);
+
+ return 0;
+}
diff --git a/config.mk b/config.mk
t@@ -0,0 +1,4 @@
+PREFIX = /usr/local
+
+CFLAGS = -O2 -Wall -Werror -pedantic
+LDFLAGS = -static -s
You are viewing proxied material from parazyd.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.