backlight_config_t backlight_config;
+/** \brief Backlight initialization
+ *
+ * FIXME: needs doc
+ */
void backlight_init(void)
{
/* check signature */
eeconfig_init();
}
backlight_config.raw = eeconfig_read_backlight();
+ if (backlight_config.level > BACKLIGHT_LEVELS) {
+ backlight_config.level = BACKLIGHT_LEVELS;
+ }
backlight_set(backlight_config.enable ? backlight_config.level : 0);
}
+/** \brief Backlight increase
+ *
+ * FIXME: needs doc
+ */
void backlight_increase(void)
{
if(backlight_config.level < BACKLIGHT_LEVELS)
{
backlight_config.level++;
- backlight_config.enable = 1;
- eeconfig_update_backlight(backlight_config.raw);
}
+ backlight_config.enable = 1;
+ eeconfig_update_backlight(backlight_config.raw);
dprintf("backlight increase: %u\n", backlight_config.level);
backlight_set(backlight_config.level);
}
+/** \brief Backlight decrease
+ *
+ * FIXME: needs doc
+ */
void backlight_decrease(void)
{
if(backlight_config.level > 0)
backlight_set(backlight_config.level);
}
+/** \brief Backlight toggle
+ *
+ * FIXME: needs doc
+ */
void backlight_toggle(void)
{
backlight_config.enable ^= 1;
+ if (backlight_config.raw == 1) // enabled but level = 0
+ backlight_config.level = 1;
eeconfig_update_backlight(backlight_config.raw);
dprintf("backlight toggle: %u\n", backlight_config.enable);
backlight_set(backlight_config.enable ? backlight_config.level : 0);
}
+/** \brief Backlight step through levels
+ *
+ * FIXME: needs doc
+ */
void backlight_step(void)
{
backlight_config.level++;
backlight_set(backlight_config.level);
}
+/** \brief Backlight set level
+ *
+ * FIXME: needs doc
+ */
void backlight_level(uint8_t level)
{
- backlight_config.level ^= level;
+ if (level > BACKLIGHT_LEVELS)
+ level = BACKLIGHT_LEVELS;
+ backlight_config.level = level;
backlight_config.enable = !!backlight_config.level;
eeconfig_update_backlight(backlight_config.raw);
backlight_set(backlight_config.level);
}
+
+/** \brief Get backlight level
+ *
+ * FIXME: needs doc
+ */
+uint8_t get_backlight_level(void)
+{
+ return backlight_config.level;
+}