diff options
author | Drashna Jaelre <drashna@live.com> | 2019-07-16 01:40:54 -0700 |
---|---|---|
committer | skullydazed <skullydazed@users.noreply.github.com> | 2019-07-16 01:40:54 -0700 |
commit | f6c7e114260890292dcd12645db7fecd64167973 (patch) | |
tree | 0edeec134b20c100e793886d7b5b55f0e1917c19 | |
parent | 97a3f806c4740213d7b133f0be7c2f51d228593b (diff) | |
download | qmk_firmware-f6c7e114260890292dcd12645db7fecd64167973.tar.gz qmk_firmware-f6c7e114260890292dcd12645db7fecd64167973.zip |
Remove the need to specify NUM_OF_ENCODERS for the Encoder feature (#6328)
* Remove the need to set NUM_OF_ENCODERS
Instead, calculate the size of the array, and use that instead
* Add hack for split common support
* Remove NUM_OF_ENCODERS from keyboard config
Can be reverted, if needed
-rw-r--r-- | docs/feature_encoders.md | 1 | ||||
-rw-r--r-- | keyboards/abstract/ellipse/rev1/config.h | 1 | ||||
-rw-r--r-- | keyboards/boston_meetup/2019/config.h | 4 | ||||
-rw-r--r-- | keyboards/cannonkeys/ortho75/config.h | 1 | ||||
-rw-r--r-- | keyboards/cannonkeys/satisfaction75/config.h | 1 | ||||
-rw-r--r-- | keyboards/hadron/ver3/config.h | 1 | ||||
-rw-r--r-- | keyboards/handwired/daishi/config.h | 3 | ||||
-rw-r--r-- | keyboards/keebio/bdn9/config.h | 1 | ||||
-rw-r--r-- | keyboards/keebio/iris/rev3/config.h | 1 | ||||
-rw-r--r-- | keyboards/maxr1998/pulse4k/config.h | 1 | ||||
-rw-r--r-- | keyboards/planck/ez/config.h | 1 | ||||
-rw-r--r-- | keyboards/planck/rev6/config.h | 1 | ||||
-rw-r--r-- | keyboards/preonic/rev3/config.h | 1 | ||||
-rw-r--r-- | keyboards/rgbkb/sol/config.h | 1 | ||||
-rw-r--r-- | keyboards/rgbkb/zen/rev2/config.h | 2 | ||||
-rw-r--r-- | keyboards/rgbkb/zygomorph/rev1/config.h | 1 | ||||
-rw-r--r-- | keyboards/ropro/config.h | 7 | ||||
-rwxr-xr-x | keyboards/tetris/config.h | 1 | ||||
-rw-r--r-- | quantum/encoder.c | 10 | ||||
-rw-r--r-- | quantum/split_common/transport.c | 2 |
20 files changed, 11 insertions, 31 deletions
diff --git a/docs/feature_encoders.md b/docs/feature_encoders.md index 9ac97a9a16..bb2d538e7e 100644 --- a/docs/feature_encoders.md +++ b/docs/feature_encoders.md @@ -6,7 +6,6 @@ Basic encoders are supported by adding this to your `rules.mk`: and this to your `config.h`: - #define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B12 } #define ENCODERS_PAD_B { B13 } diff --git a/keyboards/abstract/ellipse/rev1/config.h b/keyboards/abstract/ellipse/rev1/config.h index a56bfba2fa..1fb9b76d9c 100644 --- a/keyboards/abstract/ellipse/rev1/config.h +++ b/keyboards/abstract/ellipse/rev1/config.h @@ -239,7 +239,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. // #define BOOTMAGIC_LITE_ROW 0 // #define BOOTMAGIC_LITE_COLUMN 0 -#define NUMBER_OF_ENCODERS 3 #define ENCODERS_PAD_A { B2, B3, D5 } #define ENCODERS_PAD_B { B1, B7, B4 } #define ENCODER_RESOLUTION 2 diff --git a/keyboards/boston_meetup/2019/config.h b/keyboards/boston_meetup/2019/config.h index 5652816446..fa3dda730e 100644 --- a/keyboards/boston_meetup/2019/config.h +++ b/keyboards/boston_meetup/2019/config.h @@ -26,7 +26,6 @@ #define MATRIX_ROW_PINS { A3, B8, B9, B1 } #define MATRIX_COL_PINS { A7, A8, B2, B10 } -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B13 } #define ENCODERS_PAD_B { B14 } @@ -142,7 +141,7 @@ #define FB_LOOPGAIN 1 /* For Low:0, Medium:1, High:2, Very High:3 */ /* default 3V ERM vibration motor voltage and library*/ -#if FB_ERM_LRA == 0 +#if FB_ERM_LRA == 0 #define RATED_VOLTAGE 3 #define V_RMS 2.3 #define V_PEAK 3.30 @@ -193,4 +192,3 @@ #define RGB_MATRIX_KEYPRESSES #define SOLENOID_PIN A14 - diff --git a/keyboards/cannonkeys/ortho75/config.h b/keyboards/cannonkeys/ortho75/config.h index 6c240e2d69..588e2b9215 100644 --- a/keyboards/cannonkeys/ortho75/config.h +++ b/keyboards/cannonkeys/ortho75/config.h @@ -39,7 +39,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define BACKLIGHT_BREATHING #define BREATHING_PERIOD 6 -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B9 } #define ENCODERS_PAD_B { B8 } diff --git a/keyboards/cannonkeys/satisfaction75/config.h b/keyboards/cannonkeys/satisfaction75/config.h index 092b372577..1cbe43fadf 100644 --- a/keyboards/cannonkeys/satisfaction75/config.h +++ b/keyboards/cannonkeys/satisfaction75/config.h @@ -35,7 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define MATRIX_ROW_PINS { B3, B4, A0, A2, A4, A3 } #define DIODE_DIRECTION COL2ROW -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B9 } #define ENCODERS_PAD_B { B8 } diff --git a/keyboards/hadron/ver3/config.h b/keyboards/hadron/ver3/config.h index 5e44b27ae6..2912486f44 100644 --- a/keyboards/hadron/ver3/config.h +++ b/keyboards/hadron/ver3/config.h @@ -44,7 +44,6 @@ #define MATRIX_COL_PINS { B8, B2, B10, A0, A1, A2, B0, A3, B1, A6, A7, B12, C13, B11, B9 } #define UNUSED_PINS -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B13 } #define ENCODERS_PAD_B { B14 } diff --git a/keyboards/handwired/daishi/config.h b/keyboards/handwired/daishi/config.h index 15ff6a6a62..b4665bece4 100644 --- a/keyboards/handwired/daishi/config.h +++ b/keyboards/handwired/daishi/config.h @@ -52,10 +52,9 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define DEBOUNCE 5 /* Set up rotary encoder */ -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { F1 } #define ENCODERS_PAD_B { F0 } #define ENCODER_RESOLUTION 2 /* Set delay for tap_code on rotary encoder */ -#define TAP_CODE_DELAY 10
\ No newline at end of file +#define TAP_CODE_DELAY 10 diff --git a/keyboards/keebio/bdn9/config.h b/keyboards/keebio/bdn9/config.h index 19e625348d..641dc57361 100644 --- a/keyboards/keebio/bdn9/config.h +++ b/keyboards/keebio/bdn9/config.h @@ -38,7 +38,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. { E6, B4, B2 } \ } -#define NUMBER_OF_ENCODERS 2 #define ENCODERS_PAD_A { D1, F5 } #define ENCODERS_PAD_B { D0, F6 } diff --git a/keyboards/keebio/iris/rev3/config.h b/keyboards/keebio/iris/rev3/config.h index 720695b60c..9653625437 100644 --- a/keyboards/keebio/iris/rev3/config.h +++ b/keyboards/keebio/iris/rev3/config.h @@ -41,7 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define QMK_LED B0 #define QMK_SPEAKER C6 -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B5 } #define ENCODERS_PAD_B { B7 } diff --git a/keyboards/maxr1998/pulse4k/config.h b/keyboards/maxr1998/pulse4k/config.h index cb4eab6995..d1bfaf3006 100644 --- a/keyboards/maxr1998/pulse4k/config.h +++ b/keyboards/maxr1998/pulse4k/config.h @@ -43,7 +43,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define DEBOUNCE 5 /* Rotary encoders */ -#define NUMBER_OF_ENCODERS 2 #define ENCODERS_PAD_A { D2, F6 } #define ENCODERS_PAD_B { D3, F5 } #define ENCODER_RESOLUTION 4 diff --git a/keyboards/planck/ez/config.h b/keyboards/planck/ez/config.h index 142382dab1..a252b25284 100644 --- a/keyboards/planck/ez/config.h +++ b/keyboards/planck/ez/config.h @@ -43,7 +43,6 @@ #define MATRIX_ROW_PINS { A10, A9, A8, B15, C13, C14, C15, A2 } #define MATRIX_COL_PINS { B11, B10, B2, B1, A7, B0 } -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B12 } #define ENCODERS_PAD_B { B13 } diff --git a/keyboards/planck/rev6/config.h b/keyboards/planck/rev6/config.h index 841a621904..3354c3f80f 100644 --- a/keyboards/planck/rev6/config.h +++ b/keyboards/planck/rev6/config.h @@ -43,7 +43,6 @@ * #define UNUSED_PINS */ -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B12 } #define ENCODERS_PAD_B { B13 } diff --git a/keyboards/preonic/rev3/config.h b/keyboards/preonic/rev3/config.h index b2a53ee656..2d29934553 100644 --- a/keyboards/preonic/rev3/config.h +++ b/keyboards/preonic/rev3/config.h @@ -43,7 +43,6 @@ * #define UNUSED_PINS */ -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B12 } #define ENCODERS_PAD_B { B13 } diff --git a/keyboards/rgbkb/sol/config.h b/keyboards/rgbkb/sol/config.h index 1afd973e90..23f4503bfd 100644 --- a/keyboards/rgbkb/sol/config.h +++ b/keyboards/rgbkb/sol/config.h @@ -36,7 +36,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define MATRIX_COL_PINS { F0, F1, F4, F5, F6, F7, C7 } // Encoder support -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { D2 } #define ENCODERS_PAD_B { D6 } diff --git a/keyboards/rgbkb/zen/rev2/config.h b/keyboards/rgbkb/zen/rev2/config.h index b9f3d2228b..c2bb360bdb 100644 --- a/keyboards/rgbkb/zen/rev2/config.h +++ b/keyboards/rgbkb/zen/rev2/config.h @@ -41,8 +41,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define MATRIX_ROW_PINS { C6, E6, B5, D7, B4 } #define MATRIX_COL_PINS { F4, F5, F6, F7, B3, B1, B2 } -#define NUMBER_OF_ENCODERS 1 - #define ENCODERS_PAD_A { D4 } #define ENCODERS_PAD_B { D2 } diff --git a/keyboards/rgbkb/zygomorph/rev1/config.h b/keyboards/rgbkb/zygomorph/rev1/config.h index ad58761cc5..6e55a6a5f5 100644 --- a/keyboards/rgbkb/zygomorph/rev1/config.h +++ b/keyboards/rgbkb/zygomorph/rev1/config.h @@ -40,7 +40,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. #define SOFT_SERIAL_PIN D3 -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { D2 } #define ENCODERS_PAD_B { D7 } diff --git a/keyboards/ropro/config.h b/keyboards/ropro/config.h index 0966faf540..5079217f9c 100644 --- a/keyboards/ropro/config.h +++ b/keyboards/ropro/config.h @@ -1,4 +1,4 @@ -#pragma once +#pragma once /* Copyright 2019 Garret G. (TheRoyalSweatshirt) * @@ -13,10 +13,10 @@ * 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 + * along with this program. If not, see <http://www.gnu.org/licenses/>.#pragma once */ -#include "config_common.h" +#include "config_common.h" /* USB Device descriptor parameter */ #define VENDOR_ID 0xFEED @@ -30,7 +30,6 @@ #define MATRIX_ROWS 7 #define MATRIX_COLS 14 -#define NUMBER_OF_ENCODERS 1 #define ENCODERS_PAD_A { B7 } #define ENCODERS_PAD_B { D5 } diff --git a/keyboards/tetris/config.h b/keyboards/tetris/config.h index 7fe0c2d646..024d3be0e4 100755 --- a/keyboards/tetris/config.h +++ b/keyboards/tetris/config.h @@ -40,7 +40,6 @@ #define NO_MUSIC_MODE #endif -#define NUMBER_OF_ENCODERS 2 #define ENCODERS_PAD_A { D1,F1 } #define ENCODERS_PAD_B { D0,F0 } diff --git a/quantum/encoder.c b/quantum/encoder.c index ddf6234ab8..31f00c346b 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c @@ -25,16 +25,14 @@ #define ENCODER_RESOLUTION 4 #endif -#ifndef NUMBER_OF_ENCODERS - #error "Number of encoders not defined by NUMBER_OF_ENCODERS" -#endif - #if !defined(ENCODERS_PAD_A) || !defined(ENCODERS_PAD_B) #error "No encoder pads defined by ENCODERS_PAD_A and ENCODERS_PAD_B" #endif -static pin_t encoders_pad_a[NUMBER_OF_ENCODERS] = ENCODERS_PAD_A; -static pin_t encoders_pad_b[NUMBER_OF_ENCODERS] = ENCODERS_PAD_B; + +#define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t)) +static pin_t encoders_pad_a[] = ENCODERS_PAD_A; +static pin_t encoders_pad_b[] = ENCODERS_PAD_B; static int8_t encoder_LUT[] = { 0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0 }; diff --git a/quantum/split_common/transport.c b/quantum/split_common/transport.c index b32d48eb88..ba21d0c7b1 100644 --- a/quantum/split_common/transport.c +++ b/quantum/split_common/transport.c @@ -17,6 +17,8 @@ #ifdef ENCODER_ENABLE # include "encoder.h" +static pin_t encoders_pad[] = ENCODERS_PAD_A; +# define NUMBER_OF_ENCODERS (sizeof(encoders_pad)/sizeof(pin_t)) #endif #if defined(USE_I2C) || defined(EH) |