correct median samples
This commit is contained in:
parent
b513e25329
commit
a712429466
1 changed files with 9 additions and 11 deletions
20
ambientd.c3
20
ambientd.c3
|
|
@ -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) {
|
||||
io::eprintfn("Error reading luminance: %s", excuse);
|
||||
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;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue