diff options
Diffstat (limited to 'tmk_core/common/backlight.c')
-rw-r--r-- | tmk_core/common/backlight.c | 110 |
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 | */ |
28 | void backlight_init(void) | 28 | void 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 | */ |
45 | void backlight_increase(void) | 44 | void 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 | */ |
61 | void backlight_decrease(void) | 58 | void 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 | */ |
77 | void backlight_toggle(void) | 72 | void 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 | */ |
91 | void backlight_enable(void) | 85 | void 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 | */ |
107 | void backlight_disable(void) | 100 | void 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 | */ |
121 | bool is_backlight_enabled(void) | 113 | bool 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 | */ |
130 | void backlight_step(void) | 119 | void 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 | */ |
147 | void backlight_level(uint8_t level) | 134 | void 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 | */ |
161 | uint8_t get_backlight_level(void) | 146 | uint8_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 | */ |
171 | void backlight_toggle_breathing(void) | 153 | void 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 | */ |
185 | void backlight_enable_breathing(void) | 166 | void 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 | */ |
199 | void backlight_disable_breathing(void) | 179 | void 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 | */ |
213 | bool is_backlight_breathing(void) | 192 | bool is_backlight_breathing(void) { return backlight_config.breathing; } |
214 | { | ||
215 | return backlight_config.breathing; | ||
216 | } | ||
217 | #endif | 193 | #endif |