Mercurial > backlight
changeset 18:281cc3a22f1b new-api
backlight: fix FreeBSD implementation
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 29 Jan 2020 06:03:40 +0100 |
parents | 37d1b7dd73ee |
children | 0de3886f98ad |
files | backlight.c |
diffstat | 1 files changed, 8 insertions(+), 3 deletions(-) [+] |
line wrap: on
line diff
--- a/backlight.c Fri Oct 11 14:18:17 2019 +0200 +++ b/backlight.c Wed Jan 29 06:03:40 2020 +0100 @@ -129,16 +129,21 @@ int levels[200] = {0}; size_t length = sizeof (levels); - if (sysctlbyname("hw.acpi.video.lcd0.levels", levels, &length, NULL, 0) == -1) + if (sysctlbyname("hw.acpi.video.lcd0.levels", levels, &length, NULL, 0) < 0) die("sysctl: %s\n", strerror(errno)); + length /= sizeof (int); + /* Find appropriate nearest level */ if (percent > 0 && percent < 100) { sort(levels, length); percent = levels[upper_bound(levels, length, percent)]; } - printf("===> setting level to %u\n", percent); + if (sysctlbyname("hw.acpi.video.lcd0.brightness", NULL, NULL, + &percent, sizeof (int)) < 0) + die("sysctl: %s\n", strerror(errno)); + } static unsigned int @@ -316,7 +321,7 @@ ++ argv; if (argc < 1) - usage(argv[0]); + usage("backlight"); if (strcmp(argv[0], "get") == 0) printf("%d\n", get());