From f2c43e12463d248033bdb89ff68f0bce0f48e6bb Mon Sep 17 00:00:00 2001 From: Felix Mann Date: Sun, 10 Jul 2022 16:54:18 +0200 Subject: [PATCH] move backlight variable declarations from header to c file --- app/backlight.c | 41 ++++++++++++++++++++++++----------------- app/backlight.h | 5 ----- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/app/backlight.c b/app/backlight.c index d0a40bc..cbeb3fe 100644 --- a/app/backlight.c +++ b/app/backlight.c @@ -6,9 +6,16 @@ #define BACKLIGHT_IDLE_POLLING_RATE_MS 500 +static struct { + uint64_t last_triggered; + bool idling; + bool alarm_is_set; + uint8_t backlight_level; +} self; + void backlight_sync(void) { - pwm_set_gpio_level(PIN_BKL, backlight_level * 0x80); + pwm_set_gpio_level(PIN_BKL, self.backlight_level * 0x80); } static int64_t idle_detector_timer_task(alarm_id_t id, void *user_data) @@ -18,14 +25,14 @@ static int64_t idle_detector_timer_task(alarm_id_t id, void *user_data) uint8_t current_dimming_delay = reg_get_value(REG_ID_BK3); if (current_dimming_delay == 0) { - idling = true; + self.idling = true; cancel_alarm(id); - alarm_is_set = false; - } else if (!idling && to_ms_since_boot(get_absolute_time()) - last_triggered > (current_dimming_delay * 500)) { - idling = true; + self.alarm_is_set = false; + } else if (!self.idling && to_ms_since_boot(get_absolute_time()) - self.last_triggered > (current_dimming_delay * 500)) { + self.idling = true; cancel_alarm(id); - alarm_is_set = false; - backlight_level = reg_get_value(REG_ID_BK4); + self.alarm_is_set = false; + self.backlight_level = reg_get_value(REG_ID_BK4); backlight_sync(); } return BACKLIGHT_IDLE_POLLING_RATE_MS * 1000; @@ -33,22 +40,22 @@ static int64_t idle_detector_timer_task(alarm_id_t id, void *user_data) void backlight_trigger(void) { - idling = false; - last_triggered = to_ms_since_boot(get_absolute_time()); + self.idling = false; + self.last_triggered = to_ms_since_boot(get_absolute_time()); uint8_t desired_brightness = reg_get_value(REG_ID_BKL); - if (backlight_level < desired_brightness) { - backlight_level = desired_brightness; + if (self.backlight_level < desired_brightness) { + self.backlight_level = desired_brightness; backlight_sync(); } - if (!alarm_is_set) { + if (!self.alarm_is_set) { add_alarm_in_ms(BACKLIGHT_IDLE_POLLING_RATE_MS, idle_detector_timer_task, NULL, true); - alarm_is_set = true; + self.alarm_is_set = true; } } void backlight_init(void) { - idling = false; + self.idling = false; gpio_set_function(PIN_BKL, GPIO_FUNC_PWM); const uint slice_num = pwm_gpio_to_slice_num(PIN_BKL); @@ -56,12 +63,12 @@ void backlight_init(void) pwm_config config = pwm_get_default_config(); pwm_init(slice_num, &config, true); - backlight_level = reg_get_value(REG_ID_BKL); + self.backlight_level = reg_get_value(REG_ID_BKL); backlight_sync(); - last_triggered = 0; + self.last_triggered = 0; if (reg_get_value(REG_ID_BK3) > 0) { add_alarm_in_ms(BACKLIGHT_IDLE_POLLING_RATE_MS, idle_detector_timer_task, NULL, true); - alarm_is_set = true; + self.alarm_is_set = true; } } diff --git a/app/backlight.h b/app/backlight.h index 4ec309d..f4ece8a 100644 --- a/app/backlight.h +++ b/app/backlight.h @@ -3,11 +3,6 @@ #include #include -uint64_t last_triggered; -bool idling; -bool alarm_is_set; -uint8_t backlight_level; - void backlight_trigger(void); void backlight_sync(void); void backlight_init(void);