ohmu
·
2026-10-15
1#include "brightness.h"
2
3#include "common/sysctl.h"
4
5const char* ffDetectBrightness([[maybe_unused]] FFBrightnessOptions* options, FFlist* result) {
6 // https://man.netbsd.org/NetBSD-10.1/acpiout.4#DESCRIPTION
7 char key[] = "hw.acpi.acpiout0.brightness";
8 char* pn = key + strlen("hw.acpi.acpiout");
9
10 for (uint32_t i = 0; i <= 9; ++i) {
11 *pn = (char) ('0' + i);
12 int value = ffSysctlGetInt(key, -1);
13 if (value == -1) {
14 continue;
15 }
16
17 FFBrightnessResult* brightness = FF_LIST_ADD(FFBrightnessResult, *result);
18 ffStrbufInitF(&brightness->name, "acpiout%d", i);
19
20 brightness->max = 100;
21 brightness->min = 0;
22 brightness->current = value;
23 brightness->builtin = true;
24 }
25 return nullptr;
26}