X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Fcommon%2Fbacklight.c;h=3e29aacc499c1d8b9c25f29dc60cac92a90d1d70;hb=621ce29a53e9e94e085fbd86c0b7134e9df4bfe5;hp=0e0ad2d1541d8e05dc7de68f64ce1eec4ec3b2a9;hpb=c05cbaf534d7d58bb8ca4cd9405525b941194372;p=qmk_firmware.git diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 0e0ad2d15..3e29aacc4 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -21,6 +21,10 @@ along with this program. If not, see . backlight_config_t backlight_config; +/** \brief Backlight initialization + * + * FIXME: needs doc + */ void backlight_init(void) { /* check signature */ @@ -28,9 +32,16 @@ void backlight_init(void) 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) @@ -43,6 +54,10 @@ void backlight_increase(void) backlight_set(backlight_config.level); } +/** \brief Backlight decrease + * + * FIXME: needs doc + */ void backlight_decrease(void) { if(backlight_config.level > 0) @@ -55,14 +70,24 @@ void backlight_decrease(void) 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++; @@ -76,15 +101,25 @@ void backlight_step(void) 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; -} \ No newline at end of file +}