summaryrefslogtreecommitdiffstats
path: root/src/detection/brightness/brightness.h
blob: abb94787e8bd9a7fbfc3ce3585cafa4e086569b4 (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
#pragma once

#include "fastfetch.h"
#include "modules/brightness/option.h"

typedef struct FFBrightnessResult {
    FFstrbuf name;
    double min, max, current;
    bool builtin;
} FFBrightnessResult;

enum {
    FF_DDC_EDID_ADDR = 0x50u,
    FF_DDC_CI_ADDR = 0x37u,
    FF_DDC_CI_WRITE_ADDR = FF_DDC_CI_ADDR << 1,
    FF_DDC_CI_READ_ADDR = FF_DDC_CI_WRITE_ADDR | 1,
    FF_DDC_CI_VCP_COMMAND = 0x51u,
    FF_DDC_CI_GET_VCP = 0x01u,
    FF_DDC_CI_SET_VCP = 0x03u,
    FF_DDC_CI_COMMAND_PACKET = 0x80u,
    FF_DDC_CI_LUMINANCE_OPCODE = 0x10u,
};
#define FF_BRIGHTNESS_DDCCI_SLEEP_SKIP ((uint32_t) -1)
#define FF_DDC_CI_MAKE_HEADER(len) (FF_DDC_CI_COMMAND_PACKET | ((len) & 0x7F))

const char* ffDetectBrightness(FFBrightnessOptions* options, FFlist* result); // list of FFBrightnessResult