diff options
author | Nick Brassel <[email protected]> | 2023-11-28 16:39:48 +1100 |
---|---|---|
committer | Nick Brassel <[email protected]> | 2023-11-28 16:40:47 +1100 |
commit | 0115951de12bd4c798a43a380651c34552552e85 (patch) | |
tree | 62999011ae782d93aa6dc9c889615db2a840cafc /users/ericgebhart/extensions/mod_lock.c | |
parent | 0379d1f59e58cefa18cdb72ba1b77507d1108ae6 (diff) | |
parent | 4d99e0a23cff02f4c6e55e093b5de08a9be0df7c (diff) | |
download | qmk_firmware-0.23.0.tar.gz qmk_firmware-0.23.0.zip |
`develop` -> `master`, 2023q4 edition0.23.0
Diffstat (limited to 'users/ericgebhart/extensions/mod_lock.c')
-rw-r--r-- | users/ericgebhart/extensions/mod_lock.c | 81 |
1 files changed, 0 insertions, 81 deletions
diff --git a/users/ericgebhart/extensions/mod_lock.c b/users/ericgebhart/extensions/mod_lock.c deleted file mode 100644 index c78f7cdfe8..0000000000 --- a/users/ericgebhart/extensions/mod_lock.c +++ /dev/null @@ -1,81 +0,0 @@ -/* - Copyright 2022 Eric Gebhart <[email protected]>, @possumvibes - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see <http://www.gnu.org/licenses/>. -*/ -// Derived from mod_lock by @possumvibes. - -#include "mod_lock.h" - -#undef MODL -#define MODL(KEYCODE, MODKC) \ - {false, MODKC, KEYCODE}, - -#define A_KEY(KEYCODE) case KEYCODE: -#define BLANK(...) - -#undef IGNORE_KC -#define IGNORE_KC BLANK - -mod_lock_state_t modlock_states[] = { -#ifdef MOD_LOCK_ENABLE -#include "mod_lock.def" -#endif -}; -uint8_t NUM_MODLOCK_STATES = sizeof(modlock_states) / sizeof(mod_lock_state_t); - -void process_mod_lock(uint16_t keycode, keyrecord_t *record) { -#ifdef MOD_LOCK_ENABLE - mod_lock_state_t *curr_state = NULL; - - for (int i = 0; i < NUM_MODLOCK_STATES; ++i) { - curr_state = &modlock_states[i]; - - if (keycode == curr_state->trigger) { - if (record->event.pressed) { - if (curr_state->locking) { - unregister_code(curr_state->mod); - } else { - register_code(curr_state->mod); - } - - curr_state->locking = !curr_state->locking; - } - } else { - // check for cancel condition on keydown and keyup - if (curr_state->locking && is_mod_lock_cancel_key(keycode)) { - unregister_code(curr_state->mod); - curr_state->locking = false; - } - } - } -#endif -} - -#undef MODL -#undef IGNORE_KC -#define MODL BLANK -#define IGNORE_KC A_KEY -bool is_mod_lock_cancel_key(uint16_t keycode) { - // Mod locks are exclusively used on the nav layer. - // any key besides nav keys should cancel the lock. - switch (keycode) { -#ifdef MOD_LOCK_ENABLE -#include "mod_lock.def" -#endif - return false; - default: - return true; - } -} |