From 73dc9bc0def73d7808cbbf080dd813a744661ae0 Mon Sep 17 00:00:00 2001 From: Alessandro Mauri Date: Tue, 22 Oct 2024 19:05:38 +0200 Subject: [PATCH] implemented write_int() --- ambientd.c | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/ambientd.c b/ambientd.c index 7de75be..f5aa3ed 100644 --- a/ambientd.c +++ b/ambientd.c @@ -41,9 +41,11 @@ int get_luminance_raw (void) // read a string from a file and convert it to int, should only be used for // positive numbers since negative numbers mean an error -int read_int(FILE *fp) +static int read_int(FILE *fp) { - freopen(NULL, "r", fp); + if (freopen(NULL, "r", fp) == NULL) { + return -1; + } const char *p = fgets(STR_BUFFER, sizeof(STR_BUFFER), fp); if (p == NULL) { return -1; @@ -55,10 +57,23 @@ int read_int(FILE *fp) return r; } -float bezier(float t) +// write an intger value to a file as a string +static int write_int(FILE* fp, int value) +{ + if (freopen(NULL, "w", fp) == NULL) { + return -1; + } + int x = snprintf(STR_BUFFER, sizeof(STR_BUFFER), "%d", value); + if (x <= 0) { + return -1; + } + return fputs(STR_BUFFER, fp); +} + +static inline float bezier(float t) { const float B = 0.66; - const float D = 0.28; + const float D = 0.28; return 3*B*t+(3*D-6*B)*t*t+(1+3*B-3*D)*t*t*t; } @@ -144,15 +159,10 @@ int main (void) } brightness_adjusted = MIN(MAX(brightness_target + user_offset, min_brightness), max_brightness); - // TODO: put this in write_int() function - x = snprintf(STR_BUFFER, sizeof(STR_BUFFER), "%d", brightness_adjusted); - if (x <= 0) { - fprintf(stderr, "Error in snprintf(): %s\n", strerror(errno)); - } - if (fputs(STR_BUFFER, brightness_fp) == EOF) { + x = write_int(brightness_fp, brightness_adjusted); + if (x < 0) { fprintf(stderr, "error writing brightness: %s\n", strerror(errno)); } - rewind(brightness_fp); sleep(3);