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
				
			
		| 
						 | 
				
			
			@ -35,33 +35,21 @@
 | 
			
		|||
                {"matrix": [0, 4], "x": 4.25, "y": 0},
 | 
			
		||||
                {"matrix": [0, 5], "x": 5.25, "y": 0},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [1, 0], "x": 0, "y": 1},
 | 
			
		||||
                {"matrix": [1, 1], "x": 1, "y": 1},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [1, 2], "x": 2.25, "y": 1},
 | 
			
		||||
                {"matrix": [1, 3], "x": 3.25, "y": 1},
 | 
			
		||||
                {"matrix": [1, 4], "x": 4.25, "y": 1},
 | 
			
		||||
                {"matrix": [1, 5], "x": 5.25, "y": 1},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [2, 0], "x": 0, "y": 2},
 | 
			
		||||
                {"matrix": [2, 1], "x": 1, "y": 2},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [2, 2], "x": 2.25, "y": 2},
 | 
			
		||||
                {"matrix": [2, 3], "x": 3.25, "y": 2},
 | 
			
		||||
                {"matrix": [2, 4], "x": 4.25, "y": 2},
 | 
			
		||||
                {"matrix": [2, 5], "x": 5.25, "y": 2},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [3, 0], "x": 0, "y": 3},
 | 
			
		||||
                {"matrix": [3, 1], "x": 1, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [3, 2], "x": 2.25, "y": 3},
 | 
			
		||||
                {"matrix": [3, 3], "x": 3.25, "y": 3},
 | 
			
		||||
                {"matrix": [3, 4], "x": 4.25, "y": 3},
 | 
			
		||||
                {"matrix": [3, 5], "x": 5.25, "y": 3},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [4, 0], "x": 0, "y": 4},
 | 
			
		||||
                {"matrix": [4, 1], "x": 1, "y": 4},
 | 
			
		||||
 | 
			
		||||
                {"matrix": [4, 2], "x": 2.25, "y": 4},
 | 
			
		||||
                {"matrix": [4, 3], "x": 3.25, "y": 4},
 | 
			
		||||
                {"matrix": [4, 4], "x": 4.25, "y": 4},
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -22,19 +22,26 @@ enum layers {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [_BASE] = LAYOUT(
 | 
			
		||||
                            KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
    KC_VOLD, KC_VOLU, KC_P7, KC_P8,   KC_P9,   KC_PPLS, 
 | 
			
		||||
    KC_MPRV, KC_MNXT, KC_P4, KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
    KC_LEFT, KC_RGHT, KC_P1, KC_P2,   KC_P3,   KC_PENT, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P0, KC_P0,   KC_PDOT, KC_PENT  
 | 
			
		||||
    ),
 | 
			
		||||
  [_BASE] = LAYOUT(
 | 
			
		||||
  KC_PSLS, KC_PAST, KC_PMNS,
 | 
			
		||||
  KC_P7, KC_P8,   KC_P9,   KC_PPLS,
 | 
			
		||||
  KC_P4, KC_P5,   KC_P6,   KC_PPLS,
 | 
			
		||||
  KC_P1, KC_P2,   KC_P3,   KC_PENT,
 | 
			
		||||
  KC_P0, KC_P0,   KC_PDOT, KC_PENT
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
    [_FUNC] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______  
 | 
			
		||||
    ),
 | 
			
		||||
    _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______,
 | 
			
		||||
    _______, _______, _______, _______
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_MAP_ENABLE
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										1
									
								
								keyboards/nullbitsco/tidbit/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								keyboards/nullbitsco/tidbit/keymaps/default/rules.mk
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			@ -25,34 +25,40 @@ enum layers {
 | 
			
		|||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [_BASE] = LAYOUT(
 | 
			
		||||
                            KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
    KC_VOLD, KC_VOLU, KC_P7, KC_P8,   KC_P9,   KC_PPLS, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P4, KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P1, KC_P2,   KC_P3,   KC_PENT, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P0, KC_P0,   KC_PDOT, KC_PENT  
 | 
			
		||||
        KC_PSLS, KC_PAST, KC_PMNS,
 | 
			
		||||
        KC_P7, KC_P8,   KC_P9,   KC_PPLS,
 | 
			
		||||
        KC_P4, KC_P5,   KC_P6,   KC_PPLS,
 | 
			
		||||
        KC_P1, KC_P2,   KC_P3,   KC_PENT,
 | 
			
		||||
        KC_P0, KC_P0,   KC_PDOT, KC_PENT
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_VIA1] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______  
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_VIA2] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_VIA3] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_MAP_ENABLE
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1,3 +1,4 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
OLED_ENABLE = yes
 | 
			
		||||
OLED_DRIVER = SSD1306
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -25,38 +25,44 @@ enum layer_names {
 | 
			
		|||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
    [_LAY0] = LAYOUT(
 | 
			
		||||
                            KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
    KC_VOLD, KC_VOLU, KC_P7, KC_P8,   KC_P9,   KC_PPLS, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P4, KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P1, KC_P2,   KC_P3,   KC_PENT, 
 | 
			
		||||
    KC_TRNS, KC_TRNS, KC_P0, KC_P0,   KC_PDOT, KC_PENT  
 | 
			
		||||
        KC_PSLS, KC_PAST, KC_PMNS,
 | 
			
		||||
        KC_P7, KC_P8,   KC_P9,   KC_PPLS,
 | 
			
		||||
        KC_P4, KC_P5,   KC_P6,   KC_PPLS,
 | 
			
		||||
        KC_P1, KC_P2,   KC_P3,   KC_PENT,
 | 
			
		||||
        KC_P0, KC_P0,   KC_PDOT, KC_PENT
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_LAY1] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______  
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_LAY2] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
 | 
			
		||||
    [_LAY3] = LAYOUT(
 | 
			
		||||
                      _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
    _______, _______, _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_MAP_ENABLE
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
/*===========================================    OLED CONFIGURATION    ===========================================*/
 | 
			
		||||
#define OLED_ROTATE      true         // OLED rotation (flip 180* from default orientation)
 | 
			
		||||
| 
						 | 
				
			
			@ -112,18 +118,18 @@ oled_rotation_t oled_init_user(oled_rotation_t rotation) {
 | 
			
		|||
// Draw static background image to OLED (keyboard with no bottom row)
 | 
			
		||||
static void render_background(void) {
 | 
			
		||||
    static const char PROGMEM nullbits_n_oled[] = {
 | 
			
		||||
        0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 
 | 
			
		||||
        0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 
 | 
			
		||||
        0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00, 
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 
 | 
			
		||||
        0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00, 
 | 
			
		||||
        0x00, 0xe0, 0xf0, 0xf0, 0xf8, 0xf8, 0xf0, 0xf0, 0xe0, 0x80, 0x20, 0xf0, 0xf0, 0xf0, 0xf0, 0xf0,
 | 
			
		||||
        0xf0, 0xf0, 0xf0, 0xf0, 0xf0, 0xe0, 0xe0, 0xe0, 0xc0, 0x80, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
 | 
			
		||||
        0x1f, 0x1f, 0x1f, 0x1f, 0x3f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xfc, 0xf0, 0x00, 0x00,
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xfe, 0x00,
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00,
 | 
			
		||||
        0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x07, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x0f, 0x07, 0x03, 0x00,
 | 
			
		||||
    };
 | 
			
		||||
    oled_write_raw_P(nullbits_n_oled, sizeof(nullbits_n_oled));
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -4,3 +4,4 @@ VIA_ENABLE = yes
 | 
			
		|||
SPACE_CADET_ENABLE = no
 | 
			
		||||
GRAVE_ESC_ENABLE = no
 | 
			
		||||
MAGIC_ENABLE = no
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -24,36 +24,41 @@ enum layers {
 | 
			
		|||
};
 | 
			
		||||
 | 
			
		||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
 | 
			
		||||
  [_BASE] = LAYOUT(
 | 
			
		||||
                            KC_PSLS, KC_PAST, KC_PMNS, 
 | 
			
		||||
  KC_VOLD, KC_VOLU, KC_P7, KC_P8,   KC_P9,   KC_PPLS, 
 | 
			
		||||
  KC_TRNS, KC_TRNS, KC_P4, KC_P5,   KC_P6,   KC_PPLS, 
 | 
			
		||||
  KC_TRNS, KC_TRNS, KC_P1, KC_P2,   KC_P3,   KC_PENT, 
 | 
			
		||||
  KC_TRNS, KC_TRNS, KC_P0, KC_P0,   KC_PDOT, KC_PENT  
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_VIA1] = LAYOUT(
 | 
			
		||||
                    _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______  
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_VIA2] = LAYOUT(
 | 
			
		||||
                    _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______
 | 
			
		||||
  ),
 | 
			
		||||
 | 
			
		||||
  [_VIA3] = LAYOUT(
 | 
			
		||||
                    _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______, 
 | 
			
		||||
  _______, _______, _______, _______, _______, _______
 | 
			
		||||
  ),
 | 
			
		||||
    [_BASE] = LAYOUT(
 | 
			
		||||
        KC_PSLS, KC_PAST, KC_PMNS,
 | 
			
		||||
        KC_P7, KC_P8,   KC_P9,   KC_PPLS,
 | 
			
		||||
        KC_P4, KC_P5,   KC_P6,   KC_PPLS,
 | 
			
		||||
        KC_P1, KC_P2,   KC_P3,   KC_PENT,
 | 
			
		||||
        KC_P0, KC_P0,   KC_PDOT, KC_PENT
 | 
			
		||||
    ),
 | 
			
		||||
    [_VIA1] = LAYOUT(
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
    [_VIA2] = LAYOUT(
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    ),
 | 
			
		||||
    [_VIA3] = LAYOUT(
 | 
			
		||||
        _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______,
 | 
			
		||||
        _______, _______, _______, _______
 | 
			
		||||
    )
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
#ifdef ENCODER_MAP_ENABLE
 | 
			
		||||
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
 | 
			
		||||
    [0] = { ENCODER_CCW_CW(KC_VOLD, KC_VOLU), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [1] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [2] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
    [3] = { ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), ENCODER_CCW_CW(_______, _______), },
 | 
			
		||||
};
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -1 +1,2 @@
 | 
			
		|||
VIA_ENABLE = yes
 | 
			
		||||
VIA_ENABLE = yes
 | 
			
		||||
ENCODER_MAP_ENABLE = yes
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,20 +18,6 @@
 | 
			
		|||
#include "common/remote_kb.h"
 | 
			
		||||
#include "common/bitc_led.h"
 | 
			
		||||
 | 
			
		||||
typedef struct PACKED {
 | 
			
		||||
    uint8_t r;
 | 
			
		||||
    uint8_t c;
 | 
			
		||||
} encodermap_t;
 | 
			
		||||
 | 
			
		||||
// Map encoders to their respective virtual matrix entry
 | 
			
		||||
// Allows for encoder control using VIA
 | 
			
		||||
const encodermap_t encoder_map[4][2] = {
 | 
			
		||||
    {{1, 0}, {1, 1}},  // Encoder 1 matrix location
 | 
			
		||||
    {{2, 0}, {2, 1}},  // Encoder 2 matrix location
 | 
			
		||||
    {{3, 0}, {3, 1}},  // Encoder 3 matrix location
 | 
			
		||||
    {{4, 0}, {4, 1}},  // Encoder 4 matrix location
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
bool numlock_set = false;
 | 
			
		||||
 | 
			
		||||
#ifdef OLED_ENABLE
 | 
			
		||||
| 
						 | 
				
			
			@ -41,40 +27,40 @@ oled_rotation_t oled_init_kb(oled_rotation_t rotation) {
 | 
			
		|||
 | 
			
		||||
static void render_logo(void) {
 | 
			
		||||
    static const char PROGMEM tidbit_oled[] = {
 | 
			
		||||
        0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 
 | 
			
		||||
        0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 
 | 
			
		||||
        0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 
 | 
			
		||||
        0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 
 | 
			
		||||
        0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03, 
 | 
			
		||||
        0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff, 
 | 
			
		||||
        0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 
 | 
			
		||||
        0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 
 | 
			
		||||
        0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 
 | 
			
		||||
        0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
        0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x0e, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0xff,
 | 
			
		||||
        0xfe, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f,
 | 
			
		||||
        0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x3e, 0x3e, 0x7e, 0xfc, 0xfc, 0xf8, 0xf0, 0xe0, 0xc0, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0xf8, 0xfe, 0xfe, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
 | 
			
		||||
        0x1f, 0x1f, 0x3f, 0x7e, 0xfe, 0xfe, 0xfc, 0xf8, 0xe0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0xfe, 0xff, 0xff, 0xff, 0xfe, 0x00, 0x00, 0x00, 0x0e, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f,
 | 
			
		||||
        0x1f, 0xff, 0xff, 0xff, 0xff, 0xff, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1f, 0x1e, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0xff, 0xff, 0xff, 0xff, 0xfe, 0xc0,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0, 0xe0,
 | 
			
		||||
        0xe0, 0xf0, 0xf0, 0xf8, 0xff, 0xff, 0xbf, 0x1f, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff,
 | 
			
		||||
        0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xe0, 0xff, 0xff, 0xff, 0xff, 0x7f, 0x03,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x03, 0x03, 0x03, 0x03, 0x03, 0x03,
 | 
			
		||||
        0x03, 0x03, 0x03, 0x07, 0x07, 0xbf, 0xff, 0xff, 0xff, 0xfe, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x3f,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0xff, 0xff, 0xff,
 | 
			
		||||
        0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8,
 | 
			
		||||
        0xf8, 0xf8, 0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3e, 0x3f, 0x3f, 0x1f, 0x0f, 0x07, 0x01, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x00, 0x00, 0x00, 0x1f, 0x7f, 0x7f, 0x7f, 0xff, 0xff, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8, 0xf8,
 | 
			
		||||
        0xf8, 0x7c, 0x7c, 0x7c, 0x7e, 0x3f, 0x3f, 0x1f, 0x1f, 0x07, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x7f, 0xff, 0xff, 0x7f, 0x3f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
 | 
			
		||||
        0x00, 0x3f, 0x7f, 0xff, 0xff, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
 | 
			
		||||
    };
 | 
			
		||||
    
 | 
			
		||||
 | 
			
		||||
    oled_write_raw_P(tidbit_oled, sizeof(tidbit_oled));
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -86,20 +72,6 @@ bool oled_task_kb(void) {
 | 
			
		|||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
static void process_encoder_matrix(encodermap_t pos) {
 | 
			
		||||
    action_exec(MAKE_KEYEVENT(pos.r, pos.c, true));
 | 
			
		||||
#if TAP_CODE_DELAY > 0
 | 
			
		||||
    wait_ms(TAP_CODE_DELAY);
 | 
			
		||||
#endif
 | 
			
		||||
    action_exec(MAKE_KEYEVENT(pos.r, pos.c, false));
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool encoder_update_kb(uint8_t index, bool clockwise) {
 | 
			
		||||
    if (!encoder_update_user(index, clockwise)) return false;
 | 
			
		||||
    process_encoder_matrix(encoder_map[index][clockwise ? 0 : 1]);
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// Use Bit-C LED to show NUM LOCK status
 | 
			
		||||
void led_update_ports(led_t led_state) {
 | 
			
		||||
    set_bitc_LED(led_state.num_lock ? LED_DIM : LED_OFF);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue