summaryrefslogtreecommitdiffstats
path: root/src/detection/brightness/brightness_nbsd.c
blob: afd6656049d3462664708ad61fa6824690e88455 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include "brightness.h"

#include "common/sysctl.h"

const char* ffDetectBrightness(FF_A_UNUSED FFBrightnessOptions* options, FFlist* result) {
    // https://man.netbsd.org/NetBSD-10.1/acpiout.4#DESCRIPTION
    char key[] = "hw.acpi.acpiout0.brightness";
    char* pn = key + strlen("hw.acpi.acpiout");

    for (uint32_t i = 0; i <= 9; ++i) {
        *pn = (char) ('0' + i);
        int value = ffSysctlGetInt(key, -1);
        if (value == -1) {
            continue;
        }

        FFBrightnessResult* brightness = FF_LIST_ADD(FFBrightnessResult, *result);
        ffStrbufInitF(&brightness->name, "acpiout%d", i);

        brightness->max = 100;
        brightness->min = 0;
        brightness->current = value;
        brightness->builtin = true;
    }
    return NULL;
}