diff options
Diffstat (limited to 'quantum/process_keycode')
| -rw-r--r-- | quantum/process_keycode/process_magic.c | 242 | 
1 files changed, 122 insertions, 120 deletions
| diff --git a/quantum/process_keycode/process_magic.c b/quantum/process_keycode/process_magic.c index 9668a50f7f..44dd5f0579 100644 --- a/quantum/process_keycode/process_magic.c +++ b/quantum/process_keycode/process_magic.c @@ -39,138 +39,140 @@ 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) { -        return true; -    } - -    /* 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; +    if (record->event.pressed) { +        switch (keycode) { +            case MAGIC_SWAP_CONTROL_CAPSLOCK ... MAGIC_TOGGLE_ALT_GUI: +            case MAGIC_SWAP_LCTL_LGUI ... MAGIC_EE_HANDS_RIGHT: +                /* 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); +                        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_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_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; -        default: -            // Not a magic keycode so continue processing -            return true; -    } +                        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; +                } -    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; +    // Not a magic keycode so continue processing +    return true;  } | 
