diff options
Diffstat (limited to 'quantum/process_keycode/process_magic.c')
| -rw-r--r-- | quantum/process_keycode/process_magic.c | 266 | 
1 files changed, 132 insertions, 134 deletions
| diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index ae60f29bf5..72332b20d7 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -40,154 +40,152 @@ float cg_swap_song[][2] = CG_SWAP_SONG;  bool process_magic(uint16_t keycode, keyrecord_t *record) {      // skip anything that isn't a keyup      if (record->event.pressed) { -        switch (keycode) { -            case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_ALT_GUI: -            case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT: -            case MAGIC_TOGGLE_GUI: -            case MAGIC_TOGGLE_CONTROL_CAPSLOCK: -            case MAGIC_SWAP_ESCAPE_CAPSLOCK ... MAGIC_TOGGLE_ESCAPE_CAPSLOCK: -                /* keymap config */ -                keymap_config.raw = eeconfig_read_keymap(); -                switch (keycode) { -                    case MAGIC_SWAP_CONTROL_CAPSLOCK: -                        keymap_config.swap_control_capslock = true; -                        break; -                    case MAGIC_SWAP_ESCAPE_CAPSLOCK: -                        keymap_config.swap_escape_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; +        if (IS_MAGIC_KEYCODE(keycode)) { +            /* keymap config */ +            keymap_config.raw = eeconfig_read_keymap(); +            switch (keycode) { +                case MAGIC_SWAP_CONTROL_CAPSLOCK: +                    keymap_config.swap_control_capslock = true; +                    break; +                case MAGIC_SWAP_ESCAPE_CAPSLOCK: +                    keymap_config.swap_escape_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); +                    PLAY_SONG(ag_swap_song);  #endif -                        break; -                    case MAGIC_SWAP_CTL_GUI: -                        keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = true; +                    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); +                    PLAY_SONG(cg_swap_song);  #endif -                        break; -                    case MAGIC_UNSWAP_CONTROL_CAPSLOCK: -                        keymap_config.swap_control_capslock = false; -                        break; -                    case MAGIC_UNSWAP_ESCAPE_CAPSLOCK: -                        keymap_config.swap_escape_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; +                    break; +                case MAGIC_UNSWAP_CONTROL_CAPSLOCK: +                    keymap_config.swap_control_capslock = false; +                    break; +                case MAGIC_UNSWAP_ESCAPE_CAPSLOCK: +                    keymap_config.swap_escape_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); +                    PLAY_SONG(ag_norm_song);  #endif -                        break; -                    case MAGIC_UNSWAP_CTL_GUI: -                        keymap_config.swap_lctl_lgui = keymap_config.swap_rctl_rgui = false; +                    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); +                    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; +                    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); -                        } +                    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; +                    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); -                        } +                    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; -                    case MAGIC_TOGGLE_GUI: -                        keymap_config.no_gui = !keymap_config.no_gui; -                        break; -                    case MAGIC_TOGGLE_CONTROL_CAPSLOCK: -                        keymap_config.swap_control_capslock = !keymap_config.swap_control_capslock; -                        break; -                    case MAGIC_TOGGLE_ESCAPE_CAPSLOCK: -                        keymap_config.swap_escape_capslock = !keymap_config.swap_escape_capslock; -                        break; -                } +                    break; +                case MAGIC_TOGGLE_BACKSLASH_BACKSPACE: +                    keymap_config.swap_backslash_backspace = !keymap_config.swap_backslash_backspace; +                    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; +                case MAGIC_TOGGLE_GUI: +                    keymap_config.no_gui = !keymap_config.no_gui; +                    break; +                case MAGIC_TOGGLE_CONTROL_CAPSLOCK: +                    keymap_config.swap_control_capslock = !keymap_config.swap_control_capslock; +                    break; +                case MAGIC_TOGGLE_ESCAPE_CAPSLOCK: +                    keymap_config.swap_escape_capslock = !keymap_config.swap_escape_capslock; +                    break; +            } -                eeconfig_update_keymap(keymap_config.raw); -                clear_keyboard(); // clear to prevent stuck keys +            eeconfig_update_keymap(keymap_config.raw); +            clear_keyboard(); // clear to prevent stuck keys -                return false; +            return false;          }      } | 
