diff options
Diffstat (limited to 'tmk_core/common/backlight.c')
| -rw-r--r-- | tmk_core/common/backlight.c | 51 | 
1 files changed, 45 insertions, 6 deletions
| diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c index 3e29aacc49..8ddacd98b6 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c @@ -76,12 +76,51 @@ void backlight_decrease(void)   */  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); +	bool enabled = backlight_config.enable; +	dprintf("backlight toggle: %u\n", enabled); +	if (enabled)  +		backlight_disable(); +	else +		backlight_enable(); +} + +/** \brief Enable backlight + * + * FIXME: needs doc + */ +void backlight_enable(void) +{ +	if (backlight_config.enable) return; // do nothing if backlight is already on + +	backlight_config.enable = true; +	if (backlight_config.raw == 1) // enabled but level == 0 +		backlight_config.level = 1; +	eeconfig_update_backlight(backlight_config.raw); +	dprintf("backlight enable\n"); +	backlight_set(backlight_config.level); +} + +/** /brief Disable backlight + * + * FIXME: needs doc + */ +void backlight_disable(void) +{ +	if (!backlight_config.enable) return; // do nothing if backlight is already off + +	backlight_config.enable = false; +	eeconfig_update_backlight(backlight_config.raw); +	dprintf("backlight disable\n"); +	backlight_set(0); +} + +/** /brief Get the backlight status + * + * FIXME: needs doc + */ +bool is_backlight_enabled(void) +{ +	return backlight_config.enable;  }  /** \brief Backlight step through levels | 
