diff options
Diffstat (limited to 'tmk_core/common')
-rw-r--r-- | tmk_core/common/backlight.c | 51 | ||||
-rw-r--r-- | tmk_core/common/backlight.h | 4 |
2 files changed, 49 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 |
diff --git a/tmk_core/common/backlight.h b/tmk_core/common/backlight.h index ef8ab9b2b..420c9d19e 100644 --- a/tmk_core/common/backlight.h +++ b/tmk_core/common/backlight.h | |||
@@ -32,7 +32,11 @@ void backlight_init(void); | |||
32 | void backlight_increase(void); | 32 | void backlight_increase(void); |
33 | void backlight_decrease(void); | 33 | void backlight_decrease(void); |
34 | void backlight_toggle(void); | 34 | void backlight_toggle(void); |
35 | void backlight_enable(void); | ||
36 | void backlight_disable(void); | ||
37 | bool is_backlight_enabled(void); | ||
35 | void backlight_step(void); | 38 | void backlight_step(void); |
36 | void backlight_set(uint8_t level); | 39 | void backlight_set(uint8_t level); |
37 | void backlight_level(uint8_t level); | 40 | void backlight_level(uint8_t level); |
38 | uint8_t get_backlight_level(void); | 41 | uint8_t get_backlight_level(void); |
42 | |||