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 3e29aacc4..8ddacd98b 100644 --- a/tmk_core/common/backlight.c +++ b/tmk_core/common/backlight.c | |||
| @@ -76,12 +76,51 @@ void backlight_decrease(void) | |||
| 76 | */ | 76 | */ |
| 77 | void backlight_toggle(void) | 77 | void backlight_toggle(void) |
| 78 | { | 78 | { |
| 79 | backlight_config.enable ^= 1; | 79 | bool enabled = backlight_config.enable; |
| 80 | if (backlight_config.raw == 1) // enabled but level = 0 | 80 | dprintf("backlight toggle: %u\n", enabled); |
| 81 | backlight_config.level = 1; | 81 | if (enabled) |
| 82 | eeconfig_update_backlight(backlight_config.raw); | 82 | backlight_disable(); |
| 83 | dprintf("backlight toggle: %u\n", backlight_config.enable); | 83 | else |
| 84 | backlight_set(backlight_config.enable ? backlight_config.level : 0); | 84 | backlight_enable(); |
| 85 | } | ||
| 86 | |||
| 87 | /** \brief Enable backlight | ||
| 88 | * | ||
| 89 | * FIXME: needs doc | ||
| 90 | */ | ||
| 91 | void backlight_enable(void) | ||
| 92 | { | ||
| 93 | if (backlight_config.enable) return; // do nothing if backlight is already on | ||
| 94 | |||
| 95 | backlight_config.enable = true; | ||
| 96 | if (backlight_config.raw == 1) // enabled but level == 0 | ||
| 97 | backlight_config.level = 1; | ||
| 98 | eeconfig_update_backlight(backlight_config.raw); | ||
| 99 | dprintf("backlight enable\n"); | ||
| 100 | backlight_set(backlight_config.level); | ||
| 101 | } | ||
| 102 | |||
| 103 | /** /brief Disable backlight | ||
| 104 | * | ||
| 105 | * FIXME: needs doc | ||
| 106 | */ | ||
| 107 | void backlight_disable(void) | ||
| 108 | { | ||
| 109 | if (!backlight_config.enable) return; // do nothing if backlight is already off | ||
| 110 | |||
| 111 | backlight_config.enable = false; | ||
| 112 | eeconfig_update_backlight(backlight_config.raw); | ||
| 113 | dprintf("backlight disable\n"); | ||
| 114 | backlight_set(0); | ||
| 115 | } | ||
| 116 | |||
| 117 | /** /brief Get the backlight status | ||
| 118 | * | ||
| 119 | * FIXME: needs doc | ||
| 120 | */ | ||
| 121 | bool is_backlight_enabled(void) | ||
| 122 | { | ||
| 123 | return backlight_config.enable; | ||
| 85 | } | 124 | } |
| 86 | 125 | ||
| 87 | /** \brief Backlight step through levels | 126 | /** \brief Backlight step through levels |
