diff options
author | Jonas Avellana <14019120+ninjonas@users.noreply.github.com> | 2020-02-03 18:50:50 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-02-04 12:50:50 +1100 |
commit | 50554ca270ae4c58dfa156ae4960e06a7ec6ef31 (patch) | |
tree | 0fded0ea9435f3cb05ae8ad5a753a1a22cd76bdb /keyboards/kyria/keymaps/ninjonas/encoder.c | |
parent | c6f389b527e04e11e62a11e329f8f52b67a47d63 (diff) | |
download | firmware-50554ca270ae4c58dfa156ae4960e06a7ec6ef31.tar.gz firmware-50554ca270ae4c58dfa156ae4960e06a7ec6ef31.tar.bz2 firmware-50554ca270ae4c58dfa156ae4960e06a7ec6ef31.zip |
Ninjonas userspace (#8070)
* [keymap(kyria)] moved OLED & encoder implementation to separate classes
* [feat] created logic to cycle through hue wheel when starting keyboard
* [feat] created logic to cycle through hue wheel and return to user's default color
* [refactor] updating OLED layout for crkbd & lily58
* [refactor] updating OLED layout for crkbd & lily58
* [fix(8070)] updating encoder.c logic based off drashna's code review
* [refactor(8070)] added key to send + Shift + M
Diffstat (limited to 'keyboards/kyria/keymaps/ninjonas/encoder.c')
-rw-r--r-- | keyboards/kyria/keymaps/ninjonas/encoder.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/keyboards/kyria/keymaps/ninjonas/encoder.c b/keyboards/kyria/keymaps/ninjonas/encoder.c new file mode 100644 index 000000000..e3a4f2661 --- /dev/null +++ b/keyboards/kyria/keymaps/ninjonas/encoder.c @@ -0,0 +1,84 @@ +/* Copyright 2020 ninjonas + * + * 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/>. + */ +#include "ninjonas.h" + +#ifdef ENCODER_ENABLE +void encoder_update_user(uint8_t index, bool clockwise) { + if (index == 0) { + switch (get_highest_layer(layer_state)) { + case _LOWER: + if (clockwise) { + tap_code16(SGUI(KC_TAB)); + } else { + tap_code16(LGUI(KC_TAB)); + } + break; + case _RAISE: + if (clockwise) { + tap_code(KC_PGUP); + } else { + tap_code(KC_PGDN); + } + break; + case _ADJUST: + if (clockwise) { + rgblight_increase_hue(); + } else { + rgblight_decrease_hue(); + } + break; + default: + if (clockwise) { + tap_code(KC_BRIU); + } else { + tap_code(KC_BRID); + } + break; + } + } else if (index == 1) { + switch (get_highest_layer(layer_state)) { + case _LOWER: + if (clockwise) { + tap_code(KC_UP); + } else { + tap_code(KC_DOWN); + } + break; + case _RAISE: + if (clockwise) { + tap_code16(LCTL(KC_TAB)); + } else { + tap_code16(LCTL(LSFT(KC_TAB))); + } + break; + case _ADJUST: + if (clockwise) { + rgblight_increase_val(); + } else { + rgblight_decrease_val(); + } + break; + default: + if (clockwise) { + tap_code(KC_VOLU); + } else { + tap_code(KC_VOLD); + } + break; + } + } +} +#endif
\ No newline at end of file |