diff options
author | Nick Brassel <[email protected]> | 2022-03-08 16:58:05 +1100 |
---|---|---|
committer | GitHub <[email protected]> | 2022-03-08 16:58:05 +1100 |
commit | 2f6751e48a37699cfd999e0afd8731ca3962611c (patch) | |
tree | c64605c10a8f8f758f46be209d79210bbf15c167 /quantum/encoder.h | |
parent | 2218690d0b718dc68de4c5d093f1ec8e55d82d00 (diff) | |
download | qmk_firmware-2f6751e48a37699cfd999e0afd8731ca3962611c.tar.gz qmk_firmware-2f6751e48a37699cfd999e0afd8731ca3962611c.zip |
Asymmetric encoders, encoder tests. (#16068)
Diffstat (limited to 'quantum/encoder.h')
-rw-r--r-- | quantum/encoder.h | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/quantum/encoder.h b/quantum/encoder.h index 25dc77721d..dd6db14629 100644 --- a/quantum/encoder.h +++ b/quantum/encoder.h @@ -18,6 +18,7 @@ #pragma once #include "quantum.h" +#include "util.h" void encoder_init(void); bool encoder_read(void); @@ -26,6 +27,31 @@ bool encoder_update_kb(uint8_t index, bool clockwise); bool encoder_update_user(uint8_t index, bool clockwise); #ifdef SPLIT_KEYBOARD + void encoder_state_raw(uint8_t* slave_state); void encoder_update_raw(uint8_t* slave_state); -#endif + +# if defined(ENCODERS_PAD_A_RIGHT) +# define NUM_ENCODERS_LEFT (sizeof(((pin_t[])ENCODERS_PAD_A)) / sizeof(pin_t)) +# define NUM_ENCODERS_RIGHT (sizeof(((pin_t[])ENCODERS_PAD_A_RIGHT)) / sizeof(pin_t)) +# else +# define NUM_ENCODERS_LEFT (sizeof(((pin_t[])ENCODERS_PAD_A)) / sizeof(pin_t)) +# define NUM_ENCODERS_RIGHT NUM_ENCODERS_LEFT +# endif +# define NUM_ENCODERS (NUM_ENCODERS_LEFT + NUM_ENCODERS_RIGHT) + +#else // SPLIT_KEYBOARD + +# define NUM_ENCODERS (sizeof(((pin_t[])ENCODERS_PAD_A)) / sizeof(pin_t)) +# define NUM_ENCODERS_LEFT NUM_ENCODERS +# define NUM_ENCODERS_RIGHT 0 + +#endif // SPLIT_KEYBOARD + +#ifndef NUM_ENCODERS +# define NUM_ENCODERS 0 +# define NUM_ENCODERS_LEFT 0 +# define NUM_ENCODERS_RIGHT 0 +#endif // NUM_ENCODERS + +#define NUM_ENCODERS_MAX_PER_SIDE MAX(NUM_ENCODERS_LEFT, NUM_ENCODERS_RIGHT) |