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());