diff options
Diffstat (limited to 'keyboards/crkbd/keymaps/drashna/keymap.c')
| -rw-r--r-- | keyboards/crkbd/keymaps/drashna/keymap.c | 177 |
1 files changed, 0 insertions, 177 deletions
diff --git a/keyboards/crkbd/keymaps/drashna/keymap.c b/keyboards/crkbd/keymaps/drashna/keymap.c index 9a1beeb74..55d51eb08 100644 --- a/keyboards/crkbd/keymaps/drashna/keymap.c +++ b/keyboards/crkbd/keymaps/drashna/keymap.c | |||
| @@ -6,34 +6,6 @@ extern uint8_t is_master; | |||
| 6 | // Following line allows macro to read current RGB settings | 6 | // Following line allows macro to read current RGB settings |
| 7 | extern rgblight_config_t rgblight_config; | 7 | extern rgblight_config_t rgblight_config; |
| 8 | #endif | 8 | #endif |
| 9 | #ifdef OLED_DRIVER_ENABLE | ||
| 10 | # define KEYLOGGER_LENGTH 5 | ||
| 11 | static uint32_t oled_timer = 0; | ||
| 12 | static char keylog_str[KEYLOGGER_LENGTH + 1] = {"\n"}; | ||
| 13 | static uint16_t log_timer = 0; | ||
| 14 | // clang-format off | ||
| 15 | static const char PROGMEM code_to_name[0xFF] = { | ||
| 16 | // 0 1 2 3 4 5 6 7 8 9 A B c D E F | ||
| 17 | ' ', ' ', ' ', ' ', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', // 0x | ||
| 18 | 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', // 1x | ||
| 19 | '3', '4', '5', '6', '7', '8', '9', '0', 20, 19, 27, 26, 22, '-', '=', '[', // 2x | ||
| 20 | ']','\\', '#', ';','\'', '`', ',', '.', '/', 128, ' ', ' ', ' ', ' ', ' ', ' ', // 3x | ||
| 21 | ' ', ' ', ' ', ' ', ' ', ' ', 'P', 'S', ' ', ' ', ' ', ' ', 16, ' ', ' ', ' ', // 4x | ||
| 22 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 5x | ||
| 23 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 6x | ||
| 24 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 7x | ||
| 25 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 8x | ||
| 26 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // 9x | ||
| 27 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ax | ||
| 28 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Bx | ||
| 29 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Cx | ||
| 30 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Dx | ||
| 31 | 'C', 'S', 'A', 'C', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', // Ex | ||
| 32 | ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ' // Fx | ||
| 33 | }; | ||
| 34 | |||
| 35 | void add_keylog(uint16_t keycode); | ||
| 36 | #endif | ||
| 37 | 9 | ||
| 38 | enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; | 10 | enum crkbd_keycodes { RGBRST = NEW_SAFE_RANGE }; |
| 39 | 11 | ||
| @@ -139,10 +111,6 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { | |||
| 139 | 111 | ||
| 140 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | 112 | bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { |
| 141 | if (record->event.pressed) { | 113 | if (record->event.pressed) { |
| 142 | #ifdef OLED_DRIVER_ENABLE | ||
| 143 | oled_timer = timer_read32(); | ||
| 144 | add_keylog(keycode); | ||
| 145 | #endif | ||
| 146 | #ifndef SPLIT_KEYBOARD | 114 | #ifndef SPLIT_KEYBOARD |
| 147 | if (keycode == RESET && !is_master) { | 115 | if (keycode == RESET && !is_master) { |
| 148 | return false; | 116 | return false; |
| @@ -154,151 +122,6 @@ bool process_record_keymap(uint16_t keycode, keyrecord_t *record) { | |||
| 154 | 122 | ||
| 155 | #ifdef OLED_DRIVER_ENABLE | 123 | #ifdef OLED_DRIVER_ENABLE |
| 156 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } | 124 | oled_rotation_t oled_init_user(oled_rotation_t rotation) { return OLED_ROTATION_270; } |
| 157 | |||
| 158 | void add_keylog(uint16_t keycode) { | ||
| 159 | if ((keycode >= QK_MOD_TAP && keycode <= QK_MOD_TAP_MAX) || (keycode >= QK_LAYER_TAP && keycode <= QK_LAYER_TAP_MAX) || (keycode >= QK_MODS && keycode <= QK_MODS_MAX)) { | ||
| 160 | keycode = keycode & 0xFF; | ||
| 161 | } else if (keycode > 0xFF) { | ||
| 162 | keycode = 0; | ||
| 163 | } | ||
| 164 | |||
| 165 | for (uint8_t i = (KEYLOGGER_LENGTH - 1); i > 0; --i) { | ||
| 166 | keylog_str[i] = keylog_str[i - 1]; | ||
| 167 | } | ||
| 168 | |||
| 169 | if (keycode < (sizeof(code_to_name) / sizeof(char))) { | ||
| 170 | keylog_str[0] = pgm_read_byte(&code_to_name[keycode]); | ||
| 171 | } | ||
| 172 | |||
| 173 | log_timer = timer_read(); | ||
| 174 | } | ||
| 175 | |||
| 176 | void update_log(void) { | ||
| 177 | if (timer_elapsed(log_timer) > 750) { | ||
| 178 | // add_keylog(0); | ||
| 179 | } | ||
| 180 | } | ||
| 181 | |||
| 182 | void render_keylogger_status(void) { | ||
| 183 | oled_write_P(PSTR("KLogr"), false); | ||
| 184 | oled_write(keylog_str, false); | ||
| 185 | } | ||
| 186 | |||
| 187 | void render_default_layer_state(void) { | ||
| 188 | oled_write_P(PSTR("Lyout"), false); | ||
| 189 | switch (get_highest_layer(default_layer_state)) { | ||
| 190 | case _QWERTY: | ||
| 191 | oled_write_P(PSTR(" QRTY"), false); | ||
| 192 | break; | ||
| 193 | case _COLEMAK: | ||
| 194 | oled_write_P(PSTR(" COLE"), false); | ||
| 195 | break; | ||
| 196 | case _DVORAK: | ||
| 197 | oled_write_P(PSTR(" DVRK"), false); | ||
| 198 | break; | ||
| 199 | case _WORKMAN: | ||
| 200 | oled_write_P(PSTR(" WKMN"), false); | ||
| 201 | break; | ||
| 202 | case _NORMAN: | ||
| 203 | oled_write_P(PSTR(" NORM"), false); | ||
| 204 | break; | ||
| 205 | case _MALTRON: | ||
| 206 | oled_write_P(PSTR(" MLTN"), false); | ||
| 207 | break; | ||
| 208 | case _EUCALYN: | ||
| 209 | oled_write_P(PSTR(" ECLN"), false); | ||
| 210 | break; | ||
| 211 | case _CARPLAX: | ||
| 212 | oled_write_P(PSTR(" CRPX"), false); | ||
| 213 | break; | ||
| 214 | } | ||
| 215 | } | ||
| 216 | |||
| 217 | void render_layer_state(void) { | ||
| 218 | oled_write_P(PSTR("LAYER"), false); | ||
| 219 | oled_write_P(PSTR("Lower"), layer_state_is(_LOWER)); | ||
| 220 | oled_write_P(PSTR("Raise"), layer_state_is(_RAISE)); | ||
| 221 | oled_write_P(PSTR(" Mods"), layer_state_is(_MODS)); | ||
| 222 | } | ||
| 223 | |||
| 224 | void render_keylock_status(uint8_t led_usb_state) { | ||
| 225 | oled_write_P(PSTR("Lock:"), false); | ||
| 226 | oled_write_P(PSTR(" "), false); | ||
| 227 | oled_write_P(PSTR("N"), led_usb_state & (1 << USB_LED_NUM_LOCK)); | ||
| 228 | oled_write_P(PSTR("C"), led_usb_state & (1 << USB_LED_CAPS_LOCK)); | ||
| 229 | oled_write_ln_P(PSTR("S"), led_usb_state & (1 << USB_LED_SCROLL_LOCK)); | ||
| 230 | } | ||
| 231 | |||
| 232 | void render_mod_status(uint8_t modifiers) { | ||
| 233 | oled_write_P(PSTR("Mods:"), false); | ||
| 234 | oled_write_P(PSTR(" "), false); | ||
| 235 | oled_write_P(PSTR("S"), (modifiers & MOD_MASK_SHIFT)); | ||
| 236 | oled_write_P(PSTR("C"), (modifiers & MOD_MASK_CTRL)); | ||
| 237 | oled_write_P(PSTR("A"), (modifiers & MOD_MASK_ALT)); | ||
| 238 | oled_write_P(PSTR("G"), (modifiers & MOD_MASK_GUI)); | ||
| 239 | } | ||
| 240 | |||
| 241 | void render_bootmagic_status(void) { | ||
| 242 | /* Show Ctrl-Gui Swap options */ | ||
| 243 | static const char PROGMEM logo[][2][3] = { | ||
| 244 | {{0x97, 0x98, 0}, {0xb7, 0xb8, 0}}, | ||
| 245 | {{0x95, 0x96, 0}, {0xb5, 0xb6, 0}}, | ||
| 246 | }; | ||
| 247 | oled_write_P(PSTR("BTMGK"), false); | ||
| 248 | oled_write_P(PSTR(" "), false); | ||
| 249 | oled_write_P(logo[0][0], !keymap_config.swap_lctl_lgui); | ||
| 250 | oled_write_P(logo[1][0], keymap_config.swap_lctl_lgui); | ||
| 251 | oled_write_P(PSTR(" "), false); | ||
| 252 | oled_write_P(logo[0][1], !keymap_config.swap_lctl_lgui); | ||
| 253 | oled_write_P(logo[1][1], keymap_config.swap_lctl_lgui); | ||
| 254 | oled_write_P(PSTR(" NKRO"), keymap_config.nkro); | ||
| 255 | } | ||
| 256 | |||
| 257 | void render_user_status(void) { | ||
| 258 | oled_write_P(PSTR("USER:"), false); | ||
| 259 | oled_write_P(PSTR(" Anim"), userspace_config.rgb_matrix_idle_anim); | ||
| 260 | oled_write_P(PSTR(" Layr"), userspace_config.rgb_layer_change); | ||
| 261 | oled_write_P(PSTR(" Nuke"), userspace_config.nuke_switch); | ||
| 262 | } | ||
| 263 | |||
| 264 | void render_status_main(void) { | ||
| 265 | /* Show Keyboard Layout */ | ||
| 266 | render_default_layer_state(); | ||
| 267 | render_keylock_status(host_keyboard_leds()); | ||
| 268 | render_bootmagic_status(); | ||
| 269 | render_user_status(); | ||
| 270 | |||
| 271 | render_keylogger_status(); | ||
| 272 | } | ||
| 273 | |||
| 274 | void render_status_secondary(void) { | ||
| 275 | /* Show Keyboard Layout */ | ||
| 276 | render_default_layer_state(); | ||
| 277 | render_layer_state(); | ||
| 278 | render_mod_status(get_mods() | get_oneshot_mods()); | ||
| 279 | |||
| 280 | render_keylogger_status(); | ||
| 281 | } | ||
| 282 | |||
| 283 | void oled_task_user(void) { | ||
| 284 | if (timer_elapsed32(oled_timer) > 30000) { | ||
| 285 | oled_off(); | ||
| 286 | return; | ||
| 287 | } | ||
| 288 | # ifndef SPLIT_KEYBOARD | ||
| 289 | else { | ||
| 290 | oled_on(); | ||
| 291 | } | ||
| 292 | # endif | ||
| 293 | |||
| 294 | update_log(); | ||
| 295 | if (is_master) { | ||
| 296 | render_status_main(); // Renders the current keyboard state (layer, lock, caps, scroll, etc) | ||
| 297 | } else { | ||
| 298 | render_status_secondary(); | ||
| 299 | } | ||
| 300 | } | ||
| 301 | |||
| 302 | #endif | 125 | #endif |
| 303 | 126 | ||
| 304 | uint16_t get_tapping_term(uint16_t keycode) { | 127 | uint16_t get_tapping_term(uint16_t keycode) { |
