aboutsummaryrefslogtreecommitdiff
path: root/tmk_core/common/backlight.c
diff options
context:
space:
mode:
Diffstat (limited to 'tmk_core/common/backlight.c')
-rw-r--r--tmk_core/common/backlight.c110
1 files changed, 43 insertions, 67 deletions
diff --git a/tmk_core/common/backlight.c b/tmk_core/common/backlight.c
index c0e9fb5ee..708022f68 100644
--- a/tmk_core/common/backlight.c
+++ b/tmk_core/common/backlight.c
@@ -25,15 +25,14 @@ backlight_config_t backlight_config;
25 * 25 *
26 * FIXME: needs doc 26 * FIXME: needs doc
27 */ 27 */
28void backlight_init(void) 28void backlight_init(void) {
29{
30 /* check signature */ 29 /* check signature */
31 if (!eeconfig_is_enabled()) { 30 if (!eeconfig_is_enabled()) {
32 eeconfig_init(); 31 eeconfig_init();
33 } 32 }
34 backlight_config.raw = eeconfig_read_backlight(); 33 backlight_config.raw = eeconfig_read_backlight();
35 if (backlight_config.level > BACKLIGHT_LEVELS) { 34 if (backlight_config.level > BACKLIGHT_LEVELS) {
36 backlight_config.level = BACKLIGHT_LEVELS; 35 backlight_config.level = BACKLIGHT_LEVELS;
37 } 36 }
38 backlight_set(backlight_config.enable ? backlight_config.level : 0); 37 backlight_set(backlight_config.enable ? backlight_config.level : 0);
39} 38}
@@ -42,10 +41,8 @@ void backlight_init(void)
42 * 41 *
43 * FIXME: needs doc 42 * FIXME: needs doc
44 */ 43 */
45void backlight_increase(void) 44void backlight_increase(void) {
46{ 45 if (backlight_config.level < BACKLIGHT_LEVELS) {
47 if(backlight_config.level < BACKLIGHT_LEVELS)
48 {
49 backlight_config.level++; 46 backlight_config.level++;
50 } 47 }
51 backlight_config.enable = 1; 48 backlight_config.enable = 1;
@@ -58,10 +55,8 @@ void backlight_increase(void)
58 * 55 *
59 * FIXME: needs doc 56 * FIXME: needs doc
60 */ 57 */
61void backlight_decrease(void) 58void backlight_decrease(void) {
62{ 59 if (backlight_config.level > 0) {
63 if(backlight_config.level > 0)
64 {
65 backlight_config.level--; 60 backlight_config.level--;
66 backlight_config.enable = !!backlight_config.level; 61 backlight_config.enable = !!backlight_config.level;
67 eeconfig_update_backlight(backlight_config.raw); 62 eeconfig_update_backlight(backlight_config.raw);
@@ -74,64 +69,56 @@ void backlight_decrease(void)
74 * 69 *
75 * FIXME: needs doc 70 * FIXME: needs doc
76 */ 71 */
77void backlight_toggle(void) 72void backlight_toggle(void) {
78{ 73 bool enabled = backlight_config.enable;
79 bool enabled = backlight_config.enable; 74 dprintf("backlight toggle: %u\n", enabled);
80 dprintf("backlight toggle: %u\n", enabled); 75 if (enabled)
81 if (enabled) 76 backlight_disable();
82 backlight_disable(); 77 else
83 else 78 backlight_enable();
84 backlight_enable();
85} 79}
86 80
87/** \brief Enable backlight 81/** \brief Enable backlight
88 * 82 *
89 * FIXME: needs doc 83 * FIXME: needs doc
90 */ 84 */
91void backlight_enable(void) 85void backlight_enable(void) {
92{ 86 if (backlight_config.enable) return; // do nothing if backlight is already on
93 if (backlight_config.enable) return; // do nothing if backlight is already on 87
94 88 backlight_config.enable = true;
95 backlight_config.enable = true; 89 if (backlight_config.raw == 1) // enabled but level == 0
96 if (backlight_config.raw == 1) // enabled but level == 0 90 backlight_config.level = 1;
97 backlight_config.level = 1; 91 eeconfig_update_backlight(backlight_config.raw);
98 eeconfig_update_backlight(backlight_config.raw); 92 dprintf("backlight enable\n");
99 dprintf("backlight enable\n"); 93 backlight_set(backlight_config.level);
100 backlight_set(backlight_config.level);
101} 94}
102 95
103/** \brief Disable backlight 96/** \brief Disable backlight
104 * 97 *
105 * FIXME: needs doc 98 * FIXME: needs doc
106 */ 99 */
107void backlight_disable(void) 100void backlight_disable(void) {
108{ 101 if (!backlight_config.enable) return; // do nothing if backlight is already off
109 if (!backlight_config.enable) return; // do nothing if backlight is already off 102
110 103 backlight_config.enable = false;
111 backlight_config.enable = false; 104 eeconfig_update_backlight(backlight_config.raw);
112 eeconfig_update_backlight(backlight_config.raw); 105 dprintf("backlight disable\n");
113 dprintf("backlight disable\n"); 106 backlight_set(0);
114 backlight_set(0);
115} 107}
116 108
117/** /brief Get the backlight status 109/** /brief Get the backlight status
118 * 110 *
119 * FIXME: needs doc 111 * FIXME: needs doc
120 */ 112 */
121bool is_backlight_enabled(void) 113bool is_backlight_enabled(void) { return backlight_config.enable; }
122{
123 return backlight_config.enable;
124}
125 114
126/** \brief Backlight step through levels 115/** \brief Backlight step through levels
127 * 116 *
128 * FIXME: needs doc 117 * FIXME: needs doc
129 */ 118 */
130void backlight_step(void) 119void backlight_step(void) {
131{
132 backlight_config.level++; 120 backlight_config.level++;
133 if(backlight_config.level > BACKLIGHT_LEVELS) 121 if (backlight_config.level > BACKLIGHT_LEVELS) {
134 {
135 backlight_config.level = 0; 122 backlight_config.level = 0;
136 } 123 }
137 backlight_config.enable = !!backlight_config.level; 124 backlight_config.enable = !!backlight_config.level;
@@ -144,11 +131,9 @@ void backlight_step(void)
144 * 131 *
145 * FIXME: needs doc 132 * FIXME: needs doc
146 */ 133 */
147void backlight_level(uint8_t level) 134void backlight_level(uint8_t level) {
148{ 135 if (level > BACKLIGHT_LEVELS) level = BACKLIGHT_LEVELS;
149 if (level > BACKLIGHT_LEVELS) 136 backlight_config.level = level;
150 level = BACKLIGHT_LEVELS;
151 backlight_config.level = level;
152 backlight_config.enable = !!backlight_config.level; 137 backlight_config.enable = !!backlight_config.level;
153 eeconfig_update_backlight(backlight_config.raw); 138 eeconfig_update_backlight(backlight_config.raw);
154 backlight_set(backlight_config.level); 139 backlight_set(backlight_config.level);
@@ -158,21 +143,17 @@ void backlight_level(uint8_t level)
158 * 143 *
159 * FIXME: needs doc 144 * FIXME: needs doc
160 */ 145 */
161uint8_t get_backlight_level(void) 146uint8_t get_backlight_level(void) { return backlight_config.level; }
162{
163 return backlight_config.level;
164}
165 147
166#ifdef BACKLIGHT_BREATHING 148#ifdef BACKLIGHT_BREATHING
167/** \brief Backlight breathing toggle 149/** \brief Backlight breathing toggle
168 * 150 *
169 * FIXME: needs doc 151 * FIXME: needs doc
170 */ 152 */
171void backlight_toggle_breathing(void) 153void backlight_toggle_breathing(void) {
172{
173 bool breathing = backlight_config.breathing; 154 bool breathing = backlight_config.breathing;
174 dprintf("backlight breathing toggle: %u\n", breathing); 155 dprintf("backlight breathing toggle: %u\n", breathing);
175 if (breathing) 156 if (breathing)
176 backlight_disable_breathing(); 157 backlight_disable_breathing();
177 else 158 else
178 backlight_enable_breathing(); 159 backlight_enable_breathing();
@@ -182,9 +163,8 @@ void backlight_toggle_breathing(void)
182 * 163 *
183 * FIXME: needs doc 164 * FIXME: needs doc
184 */ 165 */
185void backlight_enable_breathing(void) 166void backlight_enable_breathing(void) {
186{ 167 if (backlight_config.breathing) return; // do nothing if breathing is already on
187 if (backlight_config.breathing) return; // do nothing if breathing is already on
188 168
189 backlight_config.breathing = true; 169 backlight_config.breathing = true;
190 eeconfig_update_backlight(backlight_config.raw); 170 eeconfig_update_backlight(backlight_config.raw);
@@ -196,9 +176,8 @@ void backlight_enable_breathing(void)
196 * 176 *
197 * FIXME: needs doc 177 * FIXME: needs doc
198 */ 178 */
199void backlight_disable_breathing(void) 179void backlight_disable_breathing(void) {
200{ 180 if (!backlight_config.breathing) return; // do nothing if breathing is already off
201 if (!backlight_config.breathing) return; // do nothing if breathing is already off
202 181
203 backlight_config.breathing = false; 182 backlight_config.breathing = false;
204 eeconfig_update_backlight(backlight_config.raw); 183 eeconfig_update_backlight(backlight_config.raw);
@@ -210,8 +189,5 @@ void backlight_disable_breathing(void)
210 * 189 *
211 * FIXME: needs doc 190 * FIXME: needs doc
212 */ 191 */
213bool is_backlight_breathing(void) 192bool is_backlight_breathing(void) { return backlight_config.breathing; }
214{
215 return backlight_config.breathing;
216}
217#endif 193#endif