Skip to content

Commit

Permalink
Backlight status functions (qmk#4259)
Browse files Browse the repository at this point in the history
* add functions to set specific backlight state

* add function to query backlight state

* update documentation with new backlight functions

* Update tmk_core/common/backlight.c

Co-Authored-By: codyd51 <[email protected]>

* Update tmk_core/common/backlight.h

Co-Authored-By: codyd51 <[email protected]>

* update docs for is_backlight_enabled() name change
  • Loading branch information
codyd51 authored and djthread committed Mar 17, 2019
1 parent 05d1967 commit a636060
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 14 deletions.
19 changes: 11 additions & 8 deletions docs/feature_backlight.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,14 +54,17 @@ In this handler, the value of an incrementing counter is mapped onto a precomput

## Backlight Functions

|Function |Description |
|----------|----------------------------------------------------------|
|`backlight_toggle()` |Turn the backlight on or off |
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`get_backlight_level()`|Return the current backlight level |
|Function |Description |
|----------|-----------------------------------------------------------|
|`backlight_toggle()` |Turn the backlight on or off |
|`backlight_enable()` |Turn the backlight on |
|`backlight_disable()` |Turn the backlight off |
|`backlight_step()` |Cycle through backlight levels |
|`backlight_increase()` |Increase the backlight level |
|`backlight_decrease()` |Decrease the backlight level |
|`backlight_level(x)` |Sets the backlight level to specified level |
|`get_backlight_level()` |Return the current backlight level |
|`is_backlight_enabled()`|Return whether the backlight is currently on |

### Backlight Breathing Functions

Expand Down
51 changes: 45 additions & 6 deletions tmk_core/common/backlight.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
4 changes: 4 additions & 0 deletions tmk_core/common/backlight.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,11 @@ void backlight_init(void);
void backlight_increase(void);
void backlight_decrease(void);
void backlight_toggle(void);
void backlight_enable(void);
void backlight_disable(void);
bool is_backlight_enabled(void);
void backlight_step(void);
void backlight_set(uint8_t level);
void backlight_level(uint8_t level);
uint8_t get_backlight_level(void);

0 comments on commit a636060

Please sign in to comment.