14 /* local subsystem functions */
16 _bl_write_file(const char *file, int val)
19 int fd = open(file, O_WRONLY);
25 snprintf(buf, sizeof(buf), "%d", val);
26 if (write(fd, buf, strlen(buf)) != (int)strlen(buf))
36 /* externally accessible functions */
38 main(int argc, char **argv)
40 int i, level, devok = 0;
41 const char *f, *dev = NULL, *str;
42 int maxlevel = 0, curlevel = -1;
46 for (i = 1; i < argc; i++)
48 if ((!strcmp(argv[i], "-h")) ||
49 (!strcmp(argv[i], "-help")) ||
50 (!strcmp(argv[i], "--help")))
52 printf("This is an internal tool for Enlightenment.\n"
59 level = atoi(argv[1]);
69 printf("ERROR: UNABLE TO ASSUME ROOT PRIVILEGES\n");
74 printf("ERROR: UNABLE TO ASSUME ROOT GROUP PRIVILEGES\n");
79 devs = eeze_udev_find_by_filter("backlight", NULL, NULL);
82 devs = eeze_udev_find_by_filter("leds", NULL, NULL);
87 EINA_LIST_FOREACH(devs, l, f)
98 if (!devok) return -1;
100 str = eeze_udev_syspath_get_sysattr(dev, "max_brightness");
103 maxlevel = atoi(str);
104 eina_stringshare_del(str);
105 str = eeze_udev_syspath_get_sysattr(dev, "brightness");
108 curlevel = atoi(str);
109 eina_stringshare_del(str);
113 if (maxlevel <= 0) maxlevel = 255;
116 curlevel = ((maxlevel * level) + (500 / maxlevel)) / 1000;
117 snprintf(buf, sizeof(buf), "%s/brightness", f);
118 return _bl_write_file(buf, curlevel);
121 EINA_LIST_FREE(devs, f)
122 eina_stringshare_del(f);