Remove encoder in-matrix workaround code (#20389)
This commit is contained in:
		
							parent
							
								
									74fbd5a031
								
							
						
					
					
						commit
						c4a67d3f33
					
				
					 241 changed files with 1106 additions and 5235 deletions
				
			
		| 
						 | 
				
			
			@ -1,48 +0,0 @@
 | 
			
		|||
 /* Copyright 2020 Josef Adamcik
 | 
			
		||||
  * Modification for VIA support and RGB underglow by Jens Bonk-Wiltfang
 | 
			
		||||
  *
 | 
			
		||||
  * 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/>.
 | 
			
		||||
  */
 | 
			
		||||
 | 
			
		||||
//Setting up what encoder rotation does. If your encoder can be pressed as a button, that function can be set in Via.
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_ENABLE
 | 
			
		||||
    static uint8_t encoder_state[2] = {0};
 | 
			
		||||
    //Use these keymap positions to specify the encoder functions on rotate.
 | 
			
		||||
    static keypos_t encoder_ccw[2] = {{6, 3}, {6, 8}};
 | 
			
		||||
    static keypos_t encoder_cw[2] = {{6, 1}, {6, 6}};
 | 
			
		||||
 | 
			
		||||
    void encoder_action_unregister(void) {
 | 
			
		||||
        for (int index = 0; index < 2; ++index) {
 | 
			
		||||
            if (encoder_state[index]) {
 | 
			
		||||
                keyevent_t encoder_event = (keyevent_t){.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index], .pressed = false, .time = timer_read(), .type = KEY_EVENT};
 | 
			
		||||
                encoder_state[index] = 0;
 | 
			
		||||
                action_exec(encoder_event);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void encoder_action_register(uint8_t index, bool clockwise) {
 | 
			
		||||
        keyevent_t encoder_event = (keyevent_t){.key = clockwise ? encoder_cw[index] : encoder_ccw[index], .pressed = true, .time = timer_read(), .type = KEY_EVENT};
 | 
			
		||||
        encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
 | 
			
		||||
        action_exec(encoder_event);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void matrix_scan_user(void) { encoder_action_unregister(); }
 | 
			
		||||
 | 
			
		||||
    bool encoder_update_user(uint8_t index, bool clockwise) {
 | 
			
		||||
        encoder_action_register(index, clockwise);
 | 
			
		||||
        return false;
 | 
			
		||||
    };
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			@ -18,7 +18,6 @@
 | 
			
		|||
#include QMK_KEYBOARD_H
 | 
			
		||||
 | 
			
		||||
#include "oled.c"
 | 
			
		||||
#include "encoder.c"
 | 
			
		||||
 | 
			
		||||
// Base layer is the number of layers CYCLE selects from.
 | 
			
		||||
#define BASE_LAYERS 2
 | 
			
		||||
| 
						 | 
				
			
			@ -35,27 +34,6 @@ enum custom_layers {
 | 
			
		|||
    _RAISE
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
// Extra keys are added for rotary encoder support in VIA
 | 
			
		||||
#define LAYOUT_via( \
 | 
			
		||||
    LA1, LA2, LA3, LA4, LA5, LA6,           RA6, RA5, RA4, RA3, RA2, RA1, \
 | 
			
		||||
    LB1, LB2, LB3, LB4, LB5, LB6, LB7, RB7, RB6, RB5, RB4, RB3, RB2, RB1, \
 | 
			
		||||
    LC1, LC2, LC3, LC4, LC5, LC6, LE1, RE6, RC6, RC5, RC4, RC3, RC2, RC1, \
 | 
			
		||||
    LD1, LD2, LD3, LD4, LD5, LD6, LD7, RD7, RD6, RD5, RD4, RD3, RD2, RD1, \
 | 
			
		||||
              LE2, LE3, LE4, LE5, LE6, RE5, RE4, RE3, RE2, RE1 \
 | 
			
		||||
    ) \
 | 
			
		||||
    { \
 | 
			
		||||
        { LA1, LA2, LA3, LA4, LA5, LA6, KC_NO }, \
 | 
			
		||||
        { LB1, LB2, LB3, LB4, LB5, LB6, LB7   }, \
 | 
			
		||||
        { LC1, LC2, LC3, LC4, LC5, LC6, KC_NO }, \
 | 
			
		||||
        { LD1, LD2, LD3, LD4, LD5, LD6, LD7   }, \
 | 
			
		||||
        { LE1, LE2, LE3, LE4, LE5, LE6, KC_NO }, \
 | 
			
		||||
        { RA1, RA2, RA3, RA4, RA5, RA6, KC_NO }, \
 | 
			
		||||
        { RB1, RB2, RB3, RB4, RB5, RB6, RB7   }, \
 | 
			
		||||
        { RC1, RC2, RC3, RC4, RC5, RC6, KC_NO }, \
 | 
			
		||||
        { RD1, RD2, RD3, RD4, RD5, RD6, RD7   }, \
 | 
			
		||||
        { RE1, RE2, RE3, RE4, RE5, RE6, KC_NO } \
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
//Default keymap. This can be changed in Via. Use oled.c to change beavior that Via cannot change.
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			@ -74,11 +52,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 *            `-----------------------------------'            '------''---------------------------'
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
[_QWERTY] = LAYOUT_via(
 | 
			
		||||
[_QWERTY] = LAYOUT(
 | 
			
		||||
   KC_GRV, KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                         KC_6    , KC_7   , KC_8   , KC_9   , KC_0   , KC_GRV ,
 | 
			
		||||
   KC_ESC, KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   , KC_VOLU,       KC_PGUP, KC_Y    , KC_U   , KC_I   , KC_O   , KC_P   , KC_BSPC,
 | 
			
		||||
   KC_TAB, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   , KC_MUTE,       KC_NO  , KC_H    , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT,
 | 
			
		||||
  KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_VOLD,       KC_PGDN, KC_N    , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
 | 
			
		||||
   KC_ESC, KC_Q   , KC_W   , KC_E   , KC_R   , KC_T   ,                         KC_Y    , KC_U   , KC_I   , KC_O   , KC_P   , KC_BSPC,
 | 
			
		||||
   KC_TAB, KC_A   , KC_S   , KC_D   , KC_F   , KC_G   ,                         KC_H    , KC_J   , KC_K   , KC_L   , KC_SCLN, KC_QUOT,
 | 
			
		||||
  KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_V   , KC_B   , KC_MUTE, KC_NO,         KC_N    , KC_M   , KC_COMM, KC_DOT , KC_SLSH, KC_RSFT,
 | 
			
		||||
                  KC_LGUI,KC_LALT ,KC_LCTL,MO(_LOWER), KC_ENT ,           KC_SPC  ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI
 | 
			
		||||
),
 | 
			
		||||
/*
 | 
			
		||||
| 
						 | 
				
			
			@ -97,7 +75,7 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 *            `-----------------------------------'            '------''---------------------------'
 | 
			
		||||
 */
 | 
			
		||||
/*
 | 
			
		||||
[_COLEMAK] = LAYOUT_via(
 | 
			
		||||
[_COLEMAK] = LAYOUT(
 | 
			
		||||
  KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                          KC_6    , KC_7   , KC_8   , KC_9   , KC_0   , KC_GRV ,
 | 
			
		||||
  KC_ESC , KC_Q   , KC_W   , KC_F   , KC_P   , KC_G   , KC_VOLU,       KC_PGUP,  KC_J    , KC_L   , KC_U   , KC_Y   , KC_SCLN, KC_BSPC,
 | 
			
		||||
  KC_TAB , KC_A   , KC_R   , KC_S   , KC_T   , KC_D   , KC_MUTE,       KC_NO  ,  KC_H    , KC_N   , KC_E   , KC_I   , KC_O   , KC_QUOT,
 | 
			
		||||
| 
						 | 
				
			
			@ -121,11 +99,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 *            |      |      |      |      |/       /          \      \ |      |      |      |      |
 | 
			
		||||
 *            `-----------------------------------'            '------''---------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_COLEMAK] = LAYOUT_via(
 | 
			
		||||
[_COLEMAK] = LAYOUT(
 | 
			
		||||
  KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                          KC_6    , KC_7   , KC_8   , KC_9   , KC_0   , KC_GRV ,
 | 
			
		||||
  KC_ESC , KC_Q   , KC_W   , KC_F   , KC_P   , KC_B   , KC_VOLU,       KC_PGUP,  KC_J    , KC_L   , KC_U   , KC_Y   , KC_SCLN, KC_BSPC,
 | 
			
		||||
  KC_TAB , KC_A   , KC_R   , KC_S   , KC_T   , KC_G   , KC_MUTE,       KC_NO  ,  KC_M    , KC_N   , KC_E   , KC_I   , KC_O   , KC_QUOT,
 | 
			
		||||
  KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_D   , KC_V   , KC_VOLD,       KC_PGDN,  KC_K    , KC_H   , KC_COMM,  KC_DOT, KC_SLSH, KC_RSFT,
 | 
			
		||||
  KC_ESC , KC_Q   , KC_W   , KC_F   , KC_P   , KC_B   ,                          KC_J    , KC_L   , KC_U   , KC_Y   , KC_SCLN, KC_BSPC,
 | 
			
		||||
  KC_TAB , KC_A   , KC_R   , KC_S   , KC_T   , KC_G   ,                          KC_M    , KC_N   , KC_E   , KC_I   , KC_O   , KC_QUOT,
 | 
			
		||||
  KC_LSFT, KC_Z   , KC_X   , KC_C   , KC_D   , KC_V   , _______, _______,        KC_K    , KC_H   , KC_COMM,  KC_DOT, KC_SLSH, KC_RSFT,
 | 
			
		||||
                  KC_LGUI, KC_LALT,KC_LCTL,MO(_LOWER), KC_ENT ,           KC_SPC ,MO(_RAISE),KC_RCTL, KC_RALT, KC_RGUI
 | 
			
		||||
),
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -143,11 +121,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 *            |      |      |      |      |/       /          \      \ |      |      |      |      |
 | 
			
		||||
 *            `-----------------------------------'            '------''---------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_LOWER] = LAYOUT_via(
 | 
			
		||||
[_LOWER] = LAYOUT(
 | 
			
		||||
  _______, KC_F1  , KC_F2  , KC_F3  , KC_F4  , KC_F5  ,                         KC_F6  , KC_F7  , KC_F8  , KC_F9  , KC_F10 , KC_F11 ,
 | 
			
		||||
  KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   , _______,       _______, KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_F12 ,
 | 
			
		||||
  _______, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC, _______,       _______, KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
 | 
			
		||||
  _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR, _______,       _______, KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
 | 
			
		||||
  KC_GRV , KC_1   , KC_2   , KC_3   , KC_4   , KC_5   ,                         KC_6   , KC_7   , KC_8   , KC_9   , KC_0   , KC_F12 ,
 | 
			
		||||
  _______, KC_EXLM, KC_AT  , KC_HASH, KC_DLR , KC_PERC,                         KC_CIRC, KC_AMPR, KC_ASTR, KC_LPRN, KC_RPRN, KC_PIPE,
 | 
			
		||||
  _______, KC_EQL , KC_MINS, KC_PLUS, KC_LCBR, KC_RCBR,  _______,   _______,    KC_LBRC, KC_RBRC, KC_SCLN, KC_COLN, KC_BSLS, _______,
 | 
			
		||||
                  _______, _______, _______, _______, _______,           _______, _______, _______, _______, _______
 | 
			
		||||
),
 | 
			
		||||
/* RAISE
 | 
			
		||||
| 
						 | 
				
			
			@ -164,11 +142,11 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		|||
 *            |      |      |      |      |/      /           \      \ |      |      |      |      |
 | 
			
		||||
 *            `----------------------------------'             '------''---------------------------'
 | 
			
		||||
 */
 | 
			
		||||
[_RAISE] = LAYOUT_via(
 | 
			
		||||
[_RAISE] = LAYOUT(
 | 
			
		||||
    CYCLE, _______, _______, _______, _______ , _______,                       _______, _______, _______, _______, _______, _______,
 | 
			
		||||
  _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX, _______,    _______,  KC_PGUP, _______, KC_UP  , _______, _______, KC_BSPC,
 | 
			
		||||
  _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS, _______,    _______,  KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC,
 | 
			
		||||
  _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______,    _______,  XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______,
 | 
			
		||||
  _______, KC_INS , KC_PSCR, KC_APP , XXXXXXX , XXXXXXX,                       KC_PGUP, _______, KC_UP  , _______, _______, KC_BSPC,
 | 
			
		||||
  _______, KC_LALT, KC_LCTL, KC_LSFT, XXXXXXX , KC_CAPS,                       KC_PGDN, KC_LEFT, KC_DOWN, KC_RGHT, KC_DEL , KC_BSPC,
 | 
			
		||||
  _______, KC_UNDO, KC_CUT , KC_COPY, KC_PASTE, XXXXXXX, _______, _______,      XXXXXXX, _______, XXXXXXX, _______, XXXXXXX, _______,
 | 
			
		||||
                   _______, _______, _______, _______, _______,        _______, _______, _______, _______, _______
 | 
			
		||||
)
 | 
			
		||||
};
 | 
			
		||||
| 
						 | 
				
			
			@ -189,3 +167,12 @@ bool process_record_user(uint16_t keycode, keyrecord_t *record) {
 | 
			
		|||
    // this uses less memory than returning in each case.
 | 
			
		||||
    return keycode < SAFE_RANGE;
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 #ifdef ENCODER_MAP_ENABLE
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] =   { ENCODER_CCW_CW(KC_BSPC, KC_DEL),  ENCODER_CCW_CW(KC_PGDN, KC_PGUP)  },
 | 
			
		||||
    [1] =   { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)  },
 | 
			
		||||
    [2] =   { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)  },
 | 
			
		||||
    [3] =   { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______)  }
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,2 +1,3 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
RGBLIGHT_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue