From 50554ca270ae4c58dfa156ae4960e06a7ec6ef31 Mon Sep 17 00:00:00 2001 From: Jonas Avellana <14019120+ninjonas@users.noreply.github.com> Date: Mon, 3 Feb 2020 18:50:50 -0700 Subject: Ninjonas userspace (#8070) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * [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 --- keyboards/kyria/keymaps/ninjonas/encoder.c | 84 ++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+) create mode 100644 keyboards/kyria/keymaps/ninjonas/encoder.c (limited to 'keyboards/kyria/keymaps/ninjonas/encoder.c') diff --git a/keyboards/kyria/keymaps/ninjonas/encoder.c b/keyboards/kyria/keymaps/ninjonas/encoder.c new file mode 100644 index 0000000000..e3a4f26616 --- /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 . + */ +#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 -- cgit v1.2.3