correct median samples

This commit is contained in:
Alessandro Mauri 2024-10-24 23:36:25 +02:00
parent b513e25329
commit a712429466

View file

@ -5,8 +5,6 @@ import std::thread;
// import some functions from the C standard library
extern fn long strtol(char *buffer, char **endptr, int base);
const int MEDIAN_SAMPLES = 4;
const String LUMINANCE_DEV = "/sys/bus/iio/devices/iio:device0/in_illuminance_raw";
const String MAX_BRIGHTNESS_DEV = "/sys/class/backlight/intel_backlight/max_brightness";
const String BRIGHTNESS_DEV = "/sys/class/backlight/intel_backlight/brightness";
@ -119,9 +117,9 @@ fn int main()
thread::exit(1);
}
_x = get_luminance_raw()!!;
int[<*>] luminance_samples = {_x!!, _x!!, _x!!, _x!!};
int idx;
int x = get_luminance_raw() ?? MAX_LUMINANCE;
int[<4>] luminance_samples = x;
usz idx;
int user_offset;
int brightness_target = min_brightness;
int brightness_old = min_brightness;
@ -130,15 +128,15 @@ fn int main()
int luminance_median;
float luminance_percent;
while (1) {
_x = get_luminance_raw();
if (catch excuse = _x) {
int! tmp = get_luminance_raw();
if (catch excuse = tmp) {
io::eprintfn("Error reading luminance: %s", excuse);
} else {
luminance_samples[idx] = _x;
idx = (idx + 1) % MEDIAN_SAMPLES;
luminance_samples[idx] = tmp;
idx = (idx + 1) % luminance_samples.len;
}
luminance_median = luminance_samples.sum() / MEDIAN_SAMPLES;
luminance_median = (float)luminance_samples.sum() / luminance_samples.len;
luminance_percent = bezier(clamp(luminance_median/MAX_LUMINANCE, 0.0f, 1.0f));
brightness_old = brightness_target;