aboutsummaryrefslogtreecommitdiff
path: root/users/drashna/oled_stuff.c
diff options
context:
space:
mode:
Diffstat (limited to 'users/drashna/oled_stuff.c')
-rw-r--r--users/drashna/oled_stuff.c55
1 files changed, 47 insertions, 8 deletions
diff --git a/users/drashna/oled_stuff.c b/users/drashna/oled_stuff.c
index 4abf5f05f..98e467d93 100644
--- a/users/drashna/oled_stuff.c
+++ b/users/drashna/oled_stuff.c
@@ -15,7 +15,6 @@
15 */ 15 */
16 16
17#include "drashna.h" 17#include "drashna.h"
18#include <stdio.h>
19 18
20#ifndef KEYLOGGER_LENGTH 19#ifndef KEYLOGGER_LENGTH
21// # ifdef OLED_DISPLAY_128X64 20// # ifdef OLED_DISPLAY_128X64
@@ -158,6 +157,19 @@ void render_keylock_status(uint8_t led_usb_state) {
158 oled_advance_page(true); 157 oled_advance_page(true);
159#endif 158#endif
160} 159}
160void render_matrix_scan_rate(void) {
161#ifdef DEBUG_MATRIX_SCAN_RATE
162 char matrix_rate[5];
163 uint16_t n = get_matrix_scan_rate();
164 matrix_rate[4] = '\0';
165 matrix_rate[3] = '0' + n % 10;
166 matrix_rate[2] = ( n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
167 matrix_rate[1] = n / 10 ? '0' + n / 10 : ' ';
168 matrix_rate[0] = ' ';
169 oled_write_P(PSTR("MS:"), false);
170 oled_write(matrix_rate, false);
171#endif
172}
161 173
162void render_mod_status(uint8_t modifiers) { 174void render_mod_status(uint8_t modifiers) {
163 static const char PROGMEM mod_status[5][3] = {{0xE8, 0xE9, 0}, {0xE4, 0xE5, 0}, {0xE6, 0xE7, 0}, {0xEA, 0xEB, 0}, {0xEC, 0xED, 0}}; 175 static const char PROGMEM mod_status[5][3] = {{0xE8, 0xE9, 0}, {0xE4, 0xE5, 0}, {0xE6, 0xE7, 0}, {0xEA, 0xEB, 0}, {0xEC, 0xED, 0}};
@@ -169,11 +181,17 @@ void render_mod_status(uint8_t modifiers) {
169#endif 181#endif
170 oled_write_P(mod_status[2], (modifiers & MOD_MASK_ALT)); 182 oled_write_P(mod_status[2], (modifiers & MOD_MASK_ALT));
171 oled_write_P(mod_status[1], (modifiers & MOD_MASK_CTRL)); 183 oled_write_P(mod_status[1], (modifiers & MOD_MASK_CTRL));
184
185 render_matrix_scan_rate();
172#if defined(OLED_DISPLAY_128X64) 186#if defined(OLED_DISPLAY_128X64)
173 oled_advance_page(true); 187 oled_advance_page(true);
174#endif 188#endif
175} 189}
176 190
191#ifdef SWAP_HANDS_ENABLE
192extern bool swap_hands;
193#endif
194
177void render_bootmagic_status(void) { 195void render_bootmagic_status(void) {
178 /* Show Ctrl-Gui Swap options */ 196 /* Show Ctrl-Gui Swap options */
179 static const char PROGMEM logo[][2][3] = { 197 static const char PROGMEM logo[][2][3] = {
@@ -209,7 +227,7 @@ void render_bootmagic_status(void) {
209 oled_write_P(PSTR(" "), false); 227 oled_write_P(PSTR(" "), false);
210 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro); 228 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NKRO), keymap_config.nkro);
211 oled_write_P(PSTR(" "), false); 229 oled_write_P(PSTR(" "), false);
212 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NOGUI), !keymap_config.no_gui); 230 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_NOGUI), keymap_config.no_gui);
213#ifdef OLED_DISPLAY_128X64 231#ifdef OLED_DISPLAY_128X64
214 oled_advance_page(true); 232 oled_advance_page(true);
215 oled_write_P(PSTR("Magic"), false); 233 oled_write_P(PSTR("Magic"), false);
@@ -221,10 +239,11 @@ void render_bootmagic_status(void) {
221 } 239 }
222#endif 240#endif
223 oled_write_P(PSTR(" "), false); 241 oled_write_P(PSTR(" "), false);
224 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_GRV), keymap_config.swap_grave_esc); 242 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_ONESHOT), !is_oneshot_enabled());
243#ifdef SWAP_HANDS_ENABLE
225 oled_write_P(PSTR(" "), false); 244 oled_write_P(PSTR(" "), false);
226 oled_write_P(PSTR(" "), false); 245 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_SWAP), swap_hands);
227 oled_write_P(PSTR(OLED_RENDER_BOOTMAGIC_CAPS), keymap_config.swap_control_capslock); 246#endif
228#ifdef OLED_DISPLAY_128X64 247#ifdef OLED_DISPLAY_128X64
229 oled_advance_page(true); 248 oled_advance_page(true);
230#endif 249#endif
@@ -282,12 +301,22 @@ __attribute__((weak)) void oled_driver_render_logo(void) {
282 301
283void render_wpm(void) { 302void render_wpm(void) {
284#ifdef WPM_ENABLE 303#ifdef WPM_ENABLE
304 uint8_t n = get_current_wpm();
285# ifdef OLED_DISPLAY_128X64 305# ifdef OLED_DISPLAY_128X64
286 char wpm_counter[4]; 306 char wpm_counter[4];
307 wpm_counter[3] = '\0';
308 wpm_counter[2] = '0' + n % 10;
309 wpm_counter[1] = ( n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
310 wpm_counter[0] = n / 10 ? '0' + n / 10 : ' ';
287# else 311# else
288 char wpm_counter[6]; 312 char wpm_counter[6];
289# endif 313 wpm_counter[5] = '\0';
290 snprintf(wpm_counter, sizeof(wpm_counter), "%3u", get_current_wpm()); 314 wpm_counter[4] = '0' + n % 10;
315 wpm_counter[3] = ( n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
316 wpm_counter[2] = n / 10 ? '0' + n / 10 : ' ';
317 wpm_counter[1] = ' ';
318 wpm_counter[0] = ' ';
319 # endif
291 oled_write_P(PSTR(OLED_RENDER_WPM_COUNTER), false); 320 oled_write_P(PSTR(OLED_RENDER_WPM_COUNTER), false);
292 oled_write(wpm_counter, false); 321 oled_write(wpm_counter, false);
293#endif 322#endif
@@ -299,7 +328,13 @@ extern uint16_t dpi_array[];
299 328
300void render_pointing_dpi_status(void) { 329void render_pointing_dpi_status(void) {
301 char dpi_status[6]; 330 char dpi_status[6];
302 snprintf(dpi_status, sizeof(dpi_status), "%5u", dpi_array[keyboard_config.dpi_config]); 331 uint16_t n = dpi_array[keyboard_config.dpi_config];
332 dpi_status[5] = '\0';
333 dpi_status[4] = '0' + n % 10;
334 dpi_status[3] = ( n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
335 dpi_status[2] = ( n /= 10) % 10 ? '0' + (n) % 10 : (n / 10) % 10 ? '0' : ' ';
336 dpi_status[1] = n / 10 ? '0' + n / 10 : ' ';
337 dpi_status[0] = ' ';
303 oled_write_P(PSTR(" DPI: "), false); 338 oled_write_P(PSTR(" DPI: "), false);
304 oled_write(dpi_status, false); 339 oled_write(dpi_status, false);
305} 340}
@@ -320,7 +355,11 @@ void render_status_secondary(void) {
320void render_status_main(void) { 355void render_status_main(void) {
321#if defined(OLED_DISPLAY_128X64) 356#if defined(OLED_DISPLAY_128X64)
322 oled_driver_render_logo(); 357 oled_driver_render_logo();
358# ifdef DEBUG_MATRIX_SCAN_RATE
359 render_matrix_scan_rate();
360# else
323 render_wpm(); 361 render_wpm();
362# endif
324# ifdef KEYBOARD_handwired_dactyl_manuform_5x6_right_trackball 363# ifdef KEYBOARD_handwired_dactyl_manuform_5x6_right_trackball
325 render_pointing_dpi_status(); 364 render_pointing_dpi_status();
326# endif 365# endif