From d598f01cb7b9d4d9e8fc7bbc951b70be7726a468 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Tue, 3 Dec 2019 19:48:55 +0000 Subject: Relocate magic keycode processing (#7512) * Move magic keycode processing to own file * Save some bytes * Update comments * Update define to one thats not already used... * Fix audio --- quantum/quantum.c | 157 ++---------------------------------------------------- 1 file changed, 3 insertions(+), 154 deletions(-) (limited to 'quantum/quantum.c') diff --git a/quantum/quantum.c b/quantum/quantum.c index dd57d7a5e9..7463c9d732 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -57,23 +57,7 @@ extern backlight_config_t backlight_config; # ifndef GOODBYE_SONG # define GOODBYE_SONG SONG(GOODBYE_SOUND) # endif -# ifndef AG_NORM_SONG -# define AG_NORM_SONG SONG(AG_NORM_SOUND) -# endif -# ifndef AG_SWAP_SONG -# define AG_SWAP_SONG SONG(AG_SWAP_SOUND) -# endif -# ifndef CG_NORM_SONG -# define CG_NORM_SONG SONG(AG_NORM_SOUND) -# endif -# ifndef CG_SWAP_SONG -# define CG_SWAP_SONG SONG(AG_SWAP_SOUND) -# endif float goodbye_song[][2] = GOODBYE_SONG; -float ag_norm_song[][2] = AG_NORM_SONG; -float ag_swap_song[][2] = AG_SWAP_SONG; -float cg_norm_song[][2] = CG_NORM_SONG; -float cg_swap_song[][2] = CG_SWAP_SONG; # ifdef DEFAULT_LAYER_SONGS float default_layer_songs[][16][2] = DEFAULT_LAYER_SONGS; # endif @@ -266,6 +250,9 @@ bool process_record_quantum(keyrecord_t *record) { #endif #ifdef SPACE_CADET_ENABLE process_space_cadet(keycode, record) && +#endif +#ifdef MAGIC_KEYCODE_ENABLE + process_magic(keycode, record) && #endif true)) { return false; @@ -478,144 +465,6 @@ bool process_record_quantum(keyrecord_t *record) { // keycodes that depend on both pressed and non-pressed state switch (keycode) { - case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_ALT_GUI: - case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT: - if (record->event.pressed) { - // MAGIC actions (BOOTMAGIC without the boot) - if (!eeconfig_is_enabled()) { - eeconfig_init(); - } - /* keymap config */ - keymap_config.raw = eeconfig_read_keymap(); - switch (keycode) { - case MAGIC_SWAP_CONTROL_CAPSLOCK: - keymap_config.swap_control_capslock = true; - break; - case MAGIC_CAPSLOCK_TO_CONTROL: - keymap_config.capslock_to_control = true; - break; - case MAGIC_SWAP_LALT_LGUI: - keymap_config.swap_lalt_lgui = true; - break; - case MAGIC_SWAP_RALT_RGUI: - keymap_config.swap_ralt_rgui = true; - break; - case MAGIC_SWAP_LCTL_LGUI: - keymap_config.swap_lctl_lgui = true; - break; - case MAGIC_SWAP_RCTL_RGUI: - keymap_config.swap_rctl_rgui = true; - break; - case MAGIC_NO_GUI: - keymap_config.no_gui = true; - break; - case MAGIC_SWAP_GRAVE_ESC: - keymap_config.swap_grave_esc = true; - break; - case MAGIC_SWAP_BACKSLASH_BACKSPACE: - keymap_config.swap_backslash_backspace = true; - break; - case MAGIC_HOST_NKRO: - clear_keyboard(); // clear first buffer to prevent stuck keys - keymap_config.nkro = true; - break; - case MAGIC_SWAP_ALT_GUI: - keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = true; -#ifdef AUDIO_ENABLE - PLAY_SONG(ag_swap_song); -#endif - break; - case MAGIC_SWAP_CTL_GUI: - keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = true; -#ifdef AUDIO_ENABLE - PLAY_SONG(cg_swap_song); -#endif - break; - case MAGIC_UNSWAP_CONTROL_CAPSLOCK: - keymap_config.swap_control_capslock = false; - break; - case MAGIC_UNCAPSLOCK_TO_CONTROL: - keymap_config.capslock_to_control = false; - break; - case MAGIC_UNSWAP_LALT_LGUI: - keymap_config.swap_lalt_lgui = false; - break; - case MAGIC_UNSWAP_RALT_RGUI: - keymap_config.swap_ralt_rgui = false; - break; - case MAGIC_UNSWAP_LCTL_LGUI: - keymap_config.swap_lctl_lgui = false; - break; - case MAGIC_UNSWAP_RCTL_RGUI: - keymap_config.swap_rctl_rgui = false; - break; - case MAGIC_UNNO_GUI: - keymap_config.no_gui = false; - break; - case MAGIC_UNSWAP_GRAVE_ESC: - keymap_config.swap_grave_esc = false; - break; - case MAGIC_UNSWAP_BACKSLASH_BACKSPACE: - keymap_config.swap_backslash_backspace = false; - break; - case MAGIC_UNHOST_NKRO: - clear_keyboard(); // clear first buffer to prevent stuck keys - keymap_config.nkro = false; - break; - case MAGIC_UNSWAP_ALT_GUI: - keymap_config.swap_lalt_lgui = keymap_config.swap_ralt_rgui = false; -#ifdef AUDIO_ENABLE - PLAY_SONG(ag_norm_song); -#endif - break; - case MAGIC_UNSWAP_CTL_GUI: - keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = false; -#ifdef AUDIO_ENABLE - PLAY_SONG(cg_norm_song); -#endif - break; - case MAGIC_TOGGLE_ALT_GUI: - keymap_config.swap_lalt_lgui = !keymap_config.swap_lalt_lgui; - keymap_config.swap_ralt_rgui = keymap_config.swap_lalt_lgui; -#ifdef AUDIO_ENABLE - if (keymap_config.swap_ralt_rgui) { - PLAY_SONG(ag_swap_song); - } else { - PLAY_SONG(ag_norm_song); - } -#endif - break; - case MAGIC_TOGGLE_CTL_GUI: - keymap_config.swap_lctl_lgui = !keymap_config.swap_lctl_lgui; - keymap_config.swap_rctl_rgui = keymap_config.swap_lctl_lgui; -#ifdef AUDIO_ENABLE - if (keymap_config.swap_rctl_rgui) { - PLAY_SONG(cg_swap_song); - } else { - PLAY_SONG(cg_norm_song); - } -#endif - break; - case MAGIC_TOGGLE_NKRO: - clear_keyboard(); // clear first buffer to prevent stuck keys - keymap_config.nkro = !keymap_config.nkro; - break; - case MAGIC_EE_HANDS_LEFT: - eeconfig_update_handedness(true); - break; - case MAGIC_EE_HANDS_RIGHT: - eeconfig_update_handedness(false); - break; - default: - break; - } - eeconfig_update_keymap(keymap_config.raw); - clear_keyboard(); // clear to prevent stuck keys - - return false; - } - break; - case GRAVE_ESC: { /* true if the last press of GRAVE_ESC was shifted (i.e. GUI or SHIFT were pressed), false otherwise. * Used to ensure that the correct keycode is released if the key is released. -- cgit v1.2.3