diff options
author | Ryan <fauxpark@gmail.com> | 2023-02-26 09:45:12 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-26 09:45:12 +1100 |
commit | 7e0299117b389b1c7fcdfa2f20891ba2287ea771 (patch) | |
tree | 00bb5bb7b3b73a9de365d1839ba7d41240d439f1 /keyboards/sawnsprojects | |
parent | 314f6c1ddba09851b33e4f3b4bd43bdbc55f9628 (diff) |
Move encoder config to data driven (#19923)
Co-authored-by: Nick Brassel <nick@tzarc.org>
Diffstat (limited to 'keyboards/sawnsprojects')
8 files changed, 14 insertions, 103 deletions
diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h index 236de4d395..8a947093dc 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/config.h +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/config.h @@ -25,11 +25,6 @@ /* Encoders */ -#define ENCODERS 1 - -#define ENCODERS_PAD_A { D1 } -#define ENCODERS_PAD_B { D2 } - #define ENCODERS_CW_KEY { { 12, 3 } } #define ENCODERS_CCW_KEY { { 12, 4 } } diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c index 039f8739b4..8a91dde19a 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/encoder_actions.c @@ -20,16 +20,12 @@ #include "encoder_actions.h" #ifdef 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], @@ -40,11 +36,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, @@ -52,7 +46,6 @@ void encoder_action_register(uint8_t index, bool clockwise) { }; encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); action_exec(encoder_event); -# endif } #endif
\ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json index 43faca4437..3872047ef8 100644 --- a/keyboards/sawnsprojects/krush/krush65/hotswap/info.json +++ b/keyboards/sawnsprojects/krush/krush65/hotswap/info.json @@ -8,6 +8,11 @@ "pid": "0x5B31", "device_version": "0.0.1" }, + "encoder": { + "rotary": [ + {"pin_a": "D1", "pin_b": "D2"} + ] + }, "indicators": { "caps_lock": "B0", "on_state": 0 diff --git a/keyboards/sawnsprojects/krush/krush65/solder/config.h b/keyboards/sawnsprojects/krush/krush65/solder/config.h index 22303a478d..76f4acfbf6 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/config.h +++ b/keyboards/sawnsprojects/krush/krush65/solder/config.h @@ -23,11 +23,6 @@ /* COL2ROW or ROW2COL */ #define DIODE_DIRECTION COL2ROW -/* rotary */ -#define ENCODERS_PAD_A { D0 } -#define ENCODERS_PAD_B { B3 } -#define ENCODER_RESOLUTION 4 - #define RGB_DI_PIN F1 #ifdef RGB_DI_PIN #define RGBLED_NUM 20 diff --git a/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c b/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c deleted file mode 100644 index 039f8739b4..0000000000 --- a/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.c +++ /dev/null @@ -1,58 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * Copyright 2021 drashna jael're (@drashna) - * Copyright 2021 uybv - * Copyright 2021 SawnsProjects - * - * 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 3 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 "encoder_actions.h" - -#ifdef 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 - -void encoder_action_unregister(void) { -# ifdef ENCODERS - for (int index = 0; index < ENCODERS; ++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() | 1) - }; - encoder_state[index] = 0; - 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, - .time = (timer_read() | 1) - }; - encoder_state[index] = (clockwise ^ 1) | (clockwise << 1); - action_exec(encoder_event); -# endif -} - -#endif
\ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h b/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h deleted file mode 100644 index fb22632632..0000000000 --- a/keyboards/sawnsprojects/krush/krush65/solder/encoder_actions.h +++ /dev/null @@ -1,23 +0,0 @@ -/* Copyright 2020 Neil Brian Ramirez - * - * 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 3 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/>. - */ - -#pragma once - -#include "quantum.h" - -void encoder_action_unregister(void); - -void encoder_action_register(uint8_t index, bool clockwise);
\ No newline at end of file diff --git a/keyboards/sawnsprojects/krush/krush65/solder/info.json b/keyboards/sawnsprojects/krush/krush65/solder/info.json index a0661b715a..9666127299 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/info.json +++ b/keyboards/sawnsprojects/krush/krush65/solder/info.json @@ -8,6 +8,11 @@ "pid": "0x6B31", "device_version": "0.0.1" }, + "encoder": { + "rotary": [ + {"pin_a": "D0", "pin_b": "B3"} + ] + }, "indicators": { "caps_lock": "F0", "on_state": 0 diff --git a/keyboards/sawnsprojects/krush/krush65/solder/solder.c b/keyboards/sawnsprojects/krush/krush65/solder/solder.c index b8a7729725..501d70d1bd 100644 --- a/keyboards/sawnsprojects/krush/krush65/solder/solder.c +++ b/keyboards/sawnsprojects/krush/krush65/solder/solder.c @@ -15,7 +15,6 @@ */ #include "solder.h" -#include "encoder_actions.h" /* Custom encoder control - handles CW/CCW turning of encoder * Default behavior: |