Move encoder config to data driven (#19923)

Co-authored-by: Nick Brassel <nick@tzarc.org>
This commit is contained in:
Ryan
2023-02-26 09:45:12 +11:00
committed by GitHub
parent 314f6c1ddb
commit 7e0299117b
972 changed files with 2898 additions and 2569 deletions

View File

@@ -8,9 +8,6 @@
# define STARTUP_SONG SONG(STARTUP_SOUND)
#endif
#define ENCODERS_PAD_A { C7, D7 }
#define ENCODERS_PAD_B { B5, D4 }
#define ENCODERS 2
#define ENCODERS_CW_KEY { { 1, 1 }, { 3, 1 } }
#define ENCODERS_CCW_KEY { { 0, 1 }, { 2, 1 } }

View File

@@ -8,6 +8,12 @@
"pid": "0x1111",
"device_version": "0.0.1"
},
"encoder": {
"rotary": [
{"pin_a": "C7", "pin_b": "B5"},
{"pin_a": "D7", "pin_b": "D4"}
]
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"matrix_pins": {

View File

@@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define ENCODERS_PAD_A { D0, F6, B6 }
#define ENCODERS_PAD_B { D1, F5, F7 }
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN
#define RGBLED_NUM 4

View File

@@ -4,6 +4,13 @@
"pid": "0x1133",
"device_version": "1.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "D0", "pin_b": "D1"},
{"pin_a": "F6", "pin_b": "F5"},
{"pin_a": "B6", "pin_b": "F7"}
]
},
"backlight": {
"pin": "B5",
"levels": 7

View File

@@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
// Left, Right, Middle
#define ENCODERS_PAD_A { A8, B3, A10 }
#define ENCODERS_PAD_B { A4, A15, A9 }
#define TAP_CODE_DELAY 10
#define RGB_DI_PIN B15

View File

@@ -4,6 +4,13 @@
"pid": "0x2133",
"device_version": "2.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "A8", "pin_b": "A4"},
{"pin_a": "B3", "pin_b": "A15"},
{"pin_a": "A10", "pin_b": "A9"}
]
},
"processor": "STM32F072",
"bootloader": "stm32-dfu",
"matrix_pins": {

View File

@@ -20,8 +20,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* Keyboard Matrix Assignments */
#define MATRIX_ROW_PINS { B9, A9, A8, B15 }
#define MATRIX_COL_PINS { B10, B2, A3, A4, B7, B6, A10, C13, C14, C15, F0, F1 }
#define ENCODERS_PAD_A { A1 }
#define ENCODERS_PAD_B { A2 }
#define TAP_CODE_DELAY 10
#define DIODE_DIRECTION COL2ROW

View File

@@ -8,6 +8,11 @@
"pid": "0x144C",
"device_version": "1.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "A1", "pin_b": "A2"}
]
},
"backlight": {
"pin": "A6",
"levels": 7

View File

@@ -18,16 +18,12 @@
#include "encoder_actions.h"
#if defined(ENCODER_ENABLE)
# ifdef ENCODERS
static uint8_t encoder_state[ENCODERS] = {0};
static keypos_t encoder_cw[ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[ENCODERS] = ENCODERS_CCW_KEY;
# endif
static uint8_t encoder_state[NUM_ENCODERS] = {0};
static keypos_t encoder_cw[NUM_ENCODERS] = ENCODERS_CW_KEY;
static keypos_t encoder_ccw[NUM_ENCODERS] = ENCODERS_CCW_KEY;
void encoder_action_unregister(void) {
# ifdef ENCODERS
for (int index = 0; index < ENCODERS; ++index) {
for (int index = 0; index < NUM_ENCODERS; ++index) {
if (encoder_state[index]) {
keyevent_t encoder_event = (keyevent_t) {
.key = encoder_state[index] >> 1 ? encoder_cw[index] : encoder_ccw[index],
@@ -38,11 +34,9 @@ void encoder_action_unregister(void) {
action_exec(encoder_event);
}
}
# endif
}
void encoder_action_register(uint8_t index, bool clockwise) {
# ifdef ENCODERS
keyevent_t encoder_event = (keyevent_t) {
.key = clockwise ? encoder_cw[index] : encoder_ccw[index],
.pressed = true,
@@ -50,7 +44,6 @@ void encoder_action_register(uint8_t index, bool clockwise) {
};
encoder_state[index] = (clockwise ^ 1) | (clockwise << 1);
action_exec(encoder_event);
# endif
}
void matrix_scan_kb(void) {

View File

@@ -21,8 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS { B1, B2, C7, B4, D7 }
#define MATRIX_COL_PINS { F4, F1, F0, B7, B3, D2, D3, D5 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

View File

@@ -8,6 +8,11 @@
"pid": "0x1258",
"device_version": "1.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F6"}
]
},
"backlight": {
"pin": "B5"
},

View File

@@ -22,9 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS { F1, F4, F5, F6, D4, B4 }
#define SPLIT_HAND_PIN F0
#define ENCODERS_PAD_A { B5 }
#define ENCODERS_PAD_B { B7 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,11 @@
"pid": "0x3256",
"device_version": "3.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "B5", "pin_b": "B7"}
]
},
"backlight": {
"pin": "B6",
"levels": 5

View File

@@ -24,11 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 }
#define SPLIT_HAND_PIN D5
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODERS_PAD_A_RIGHT { F7 }
#define ENCODERS_PAD_B_RIGHT { F6 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,11 @@
"pid": "0x4256",
"device_version": "4.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "B2", "pin_b": "B3"}
]
},
"backlight": {
"pin": "B5",
"levels": 5
@@ -15,7 +20,14 @@
"speaker": "C6"
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "F7", "pin_b": "F6"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu"

View File

@@ -24,11 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D7, D3, B7, F0, B3 }
#define SPLIT_HAND_PIN D5
#define ENCODERS_PAD_A { B2 }
#define ENCODERS_PAD_B { B3 }
#define ENCODERS_PAD_A_RIGHT { F7 }
#define ENCODERS_PAD_B_RIGHT { F6 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,11 @@
"pid": "0x5256",
"device_version": "5.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "B2", "pin_b": "B3"}
]
},
"backlight": {
"pin": "B5",
"levels": 5
@@ -15,7 +20,14 @@
"speaker": "C6"
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "F7", "pin_b": "F6"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "qmk-dfu"

View File

@@ -24,11 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,11 @@
"pid": "0x6256",
"device_version": "6.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "B3", "pin_b": "B2"}
]
},
"split": {
"soft_serial_pin": "D0"
},

View File

@@ -24,11 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,11 @@
"pid": "0x6356",
"device_version": "6.1.0"
},
"encoder": {
"rotary": [
{"pin_a": "B3", "pin_b": "B2"}
]
},
"split": {
"soft_serial_pin": "D0"
},

View File

@@ -24,11 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5
#define ENCODERS_PAD_A { B3 }
#define ENCODERS_PAD_B { B2 }
#define ENCODERS_PAD_A_RIGHT { B3 }
#define ENCODERS_PAD_B_RIGHT { B2 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,11 @@
"pid": "0x6456",
"device_version": "6.2.0"
},
"encoder": {
"rotary": [
{"pin_a": "B3", "pin_b": "B2"}
]
},
"split": {
"soft_serial_pin": "D0"
},

View File

@@ -24,11 +24,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_COL_PINS_RIGHT { D4, D6, D7, C7, F1, F4 }
#define SPLIT_HAND_PIN D5
#define ENCODERS_PAD_A { B3, F6 }
#define ENCODERS_PAD_B { B2, F7 }
#define ENCODERS_PAD_A_RIGHT { B3, F6 }
#define ENCODERS_PAD_B_RIGHT { B2, F7 }
/* COL2ROW or ROW2COL */
#define DIODE_DIRECTION COL2ROW

View File

@@ -4,6 +4,12 @@
"pid": "0x7256",
"device_version": "7.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "B3", "pin_b": "B2"},
{"pin_a": "F6", "pin_b": "F7"}
]
},
"split": {
"soft_serial_pin": "D0"
},

View File

@@ -25,10 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7, B0 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, D2, D3, B7, B1 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5, NO_PIN }
#define ENCODERS_PAD_B { F6, NO_PIN }
#define ENCODERS_PAD_A_RIGHT { D6, C7 }
#define ENCODERS_PAD_B_RIGHT { D4, C6 }
#define CAPS_LOCK_LED_PIN B6

View File

@@ -8,11 +8,25 @@
"pid": "0x126A",
"device_version": "1.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F6"},
{"pin_a": "NO_PIN", "pin_b": "NO_PIN"}
]
},
"backlight": {
"pin": "B5"
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "D6", "pin_b": "C7"},
{"pin_a": "D4", "pin_b": "C6"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",

View File

@@ -25,10 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }
#define CAPS_LOCK_LED_PIN B6

View File

@@ -8,11 +8,23 @@
"pid": "0x2257",
"device_version": "2.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F6"}
]
},
"backlight": {
"pin": "B5"
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "D6", "pin_b": "D4"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",

View File

@@ -25,10 +25,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }
#define CAPS_LOCK_LED_PIN B6

View File

@@ -8,11 +8,23 @@
"pid": "0x3357",
"device_version": "3.1.0"
},
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F6"}
]
},
"backlight": {
"pin": "B5"
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "D6", "pin_b": "D4"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",

View File

@@ -23,10 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

View File

@@ -8,8 +8,20 @@
"pid": "0x4357",
"device_version": "4.1.0"
},
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F6"}
]
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "D6", "pin_b": "D4"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",

View File

@@ -23,10 +23,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define MATRIX_ROW_PINS_RIGHT { B3, B2, B6, B4, D7 }
#define MATRIX_COL_PINS_RIGHT { F1, F0, F4, F5, F6, D5, C7, D3, B7 }
#define SPLIT_HAND_PIN F7
#define ENCODERS_PAD_A { F5 }
#define ENCODERS_PAD_B { F6 }
#define ENCODERS_PAD_A_RIGHT { D6 }
#define ENCODERS_PAD_B_RIGHT { D4 }
/* Mechanical locking support. Use KC_LCAP, KC_LNUM or KC_LSCR instead in keymap */
#define LOCKING_SUPPORT_ENABLE

View File

@@ -8,8 +8,20 @@
"pid": "0x5357",
"device_version": "5.1.0"
},
"encoder": {
"rotary": [
{"pin_a": "F5", "pin_b": "F6"}
]
},
"split": {
"soft_serial_pin": "D0"
"soft_serial_pin": "D0",
"encoder": {
"right": {
"rotary": [
{"pin_a": "D6", "pin_b": "D4"}
]
}
}
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",

View File

@@ -17,9 +17,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#pragma once
#define ENCODERS_PAD_A { D1, D4 }
#define ENCODERS_PAD_B { D0, C6 }
/* WS2812 RGB LED */
#define RGB_DI_PIN D3
#ifdef RGB_DI_PIN

View File

@@ -8,6 +8,12 @@
"pid": "0x111C",
"device_version": "1.0.0"
},
"encoder": {
"rotary": [
{"pin_a": "D1", "pin_b": "D0"},
{"pin_a": "D4", "pin_b": "C6"}
]
},
"processor": "atmega32u4",
"bootloader": "caterina",
"matrix_pins": {