diff options
author | skullY <skullydazed@gmail.com> | 2019-08-30 11:19:03 -0700 |
---|---|---|
committer | skullydazed <skullydazed@users.noreply.github.com> | 2019-08-30 15:01:52 -0700 |
commit | b624f32f944acdc59dcb130674c09090c5c404cb (patch) | |
tree | bc13adbba137d122d9a2c2fb2fafcbb08ac10e25 /quantum/encoder.c | |
parent | 61af76a10d00aba185b8338604171de490a13e3b (diff) | |
download | qmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.tar.gz qmk_firmware-b624f32f944acdc59dcb130674c09090c5c404cb.zip |
clang-format changes
Diffstat (limited to 'quantum/encoder.c')
-rw-r--r-- | quantum/encoder.c | 88 |
1 files changed, 40 insertions, 48 deletions
diff --git a/quantum/encoder.c b/quantum/encoder.c index 10d8cf7da..b3b1cd9f2 100644 --- a/quantum/encoder.c +++ b/quantum/encoder.c | |||
@@ -17,27 +17,25 @@ | |||
17 | 17 | ||
18 | #include "encoder.h" | 18 | #include "encoder.h" |
19 | #ifdef SPLIT_KEYBOARD | 19 | #ifdef SPLIT_KEYBOARD |
20 | #include "split_util.h" | 20 | # include "split_util.h" |
21 | #endif | 21 | #endif |
22 | 22 | ||
23 | // for memcpy | 23 | // for memcpy |
24 | #include <string.h> | 24 | #include <string.h> |
25 | 25 | ||
26 | |||
27 | #ifndef ENCODER_RESOLUTION | 26 | #ifndef ENCODER_RESOLUTION |
28 | #define ENCODER_RESOLUTION 4 | 27 | # define ENCODER_RESOLUTION 4 |
29 | #endif | 28 | #endif |
30 | 29 | ||
31 | #if !defined(ENCODERS_PAD_A) || !defined(ENCODERS_PAD_B) | 30 | #if !defined(ENCODERS_PAD_A) || !defined(ENCODERS_PAD_B) |
32 | #error "No encoder pads defined by ENCODERS_PAD_A and ENCODERS_PAD_B" | 31 | # error "No encoder pads defined by ENCODERS_PAD_A and ENCODERS_PAD_B" |
33 | #endif | 32 | #endif |
34 | 33 | ||
35 | 34 | #define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a) / sizeof(pin_t)) | |
36 | #define NUMBER_OF_ENCODERS (sizeof(encoders_pad_a)/sizeof(pin_t)) | ||
37 | static pin_t encoders_pad_a[] = ENCODERS_PAD_A; | 35 | static pin_t encoders_pad_a[] = ENCODERS_PAD_A; |
38 | static pin_t encoders_pad_b[] = ENCODERS_PAD_B; | 36 | static pin_t encoders_pad_b[] = ENCODERS_PAD_B; |
39 | 37 | ||
40 | static int8_t encoder_LUT[] = { 0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0 }; | 38 | static int8_t encoder_LUT[] = {0, -1, 1, 0, 1, 0, 0, -1, -1, 0, 0, 1, 0, 1, -1, 0}; |
41 | 39 | ||
42 | static uint8_t encoder_state[NUMBER_OF_ENCODERS] = {0}; | 40 | static uint8_t encoder_state[NUMBER_OF_ENCODERS] = {0}; |
43 | 41 | ||
@@ -48,64 +46,58 @@ static int8_t encoder_value[NUMBER_OF_ENCODERS * 2] = {0}; | |||
48 | static int8_t encoder_value[NUMBER_OF_ENCODERS] = {0}; | 46 | static int8_t encoder_value[NUMBER_OF_ENCODERS] = {0}; |
49 | #endif | 47 | #endif |
50 | 48 | ||
51 | __attribute__ ((weak)) | 49 | __attribute__((weak)) void encoder_update_user(int8_t index, bool clockwise) {} |
52 | void encoder_update_user(int8_t index, bool clockwise) { } | ||
53 | 50 | ||
54 | __attribute__ ((weak)) | 51 | __attribute__((weak)) void encoder_update_kb(int8_t index, bool clockwise) { encoder_update_user(index, clockwise); } |
55 | void encoder_update_kb(int8_t index, bool clockwise) { | ||
56 | encoder_update_user(index, clockwise); | ||
57 | } | ||
58 | 52 | ||
59 | void encoder_init(void) { | 53 | void encoder_init(void) { |
60 | #if defined(SPLIT_KEYBOARD) && defined(ENCODERS_PAD_A_RIGHT) && defined(ENCODERS_PAD_B_RIGHT) | 54 | #if defined(SPLIT_KEYBOARD) && defined(ENCODERS_PAD_A_RIGHT) && defined(ENCODERS_PAD_B_RIGHT) |
61 | if (!isLeftHand) { | 55 | if (!isLeftHand) { |
62 | const pin_t encoders_pad_a_right[] = ENCODERS_PAD_A_RIGHT; | 56 | const pin_t encoders_pad_a_right[] = ENCODERS_PAD_A_RIGHT; |
63 | const pin_t encoders_pad_b_right[] = ENCODERS_PAD_B_RIGHT; | 57 | const pin_t encoders_pad_b_right[] = ENCODERS_PAD_B_RIGHT; |
64 | for (uint8_t i = 0; i < NUMBER_OF_ENCODERS; i++) { | 58 | for (uint8_t i = 0; i < NUMBER_OF_ENCODERS; i++) { |
65 | encoders_pad_a[i] = encoders_pad_a_right[i]; | 59 | encoders_pad_a[i] = encoders_pad_a_right[i]; |
66 | encoders_pad_b[i] = encoders_pad_b_right[i]; | 60 | encoders_pad_b[i] = encoders_pad_b_right[i]; |
61 | } | ||
67 | } | 62 | } |
68 | } | ||
69 | #endif | 63 | #endif |
70 | 64 | ||
71 | for (int i = 0; i < NUMBER_OF_ENCODERS; i++) { | 65 | for (int i = 0; i < NUMBER_OF_ENCODERS; i++) { |
72 | setPinInputHigh(encoders_pad_a[i]); | 66 | setPinInputHigh(encoders_pad_a[i]); |
73 | setPinInputHigh(encoders_pad_b[i]); | 67 | setPinInputHigh(encoders_pad_b[i]); |
74 | 68 | ||
75 | encoder_state[i] = (readPin(encoders_pad_a[i]) << 0) | (readPin(encoders_pad_b[i]) << 1); | 69 | encoder_state[i] = (readPin(encoders_pad_a[i]) << 0) | (readPin(encoders_pad_b[i]) << 1); |
76 | } | 70 | } |
77 | } | 71 | } |
78 | 72 | ||
79 | void encoder_read(void) { | 73 | void encoder_read(void) { |
80 | for (int i = 0; i < NUMBER_OF_ENCODERS; i++) { | 74 | for (int i = 0; i < NUMBER_OF_ENCODERS; i++) { |
81 | encoder_state[i] <<= 2; | 75 | encoder_state[i] <<= 2; |
82 | encoder_state[i] |= (readPin(encoders_pad_a[i]) << 0) | (readPin(encoders_pad_b[i]) << 1); | 76 | encoder_state[i] |= (readPin(encoders_pad_a[i]) << 0) | (readPin(encoders_pad_b[i]) << 1); |
83 | encoder_value[i] += encoder_LUT[encoder_state[i] & 0xF]; | 77 | encoder_value[i] += encoder_LUT[encoder_state[i] & 0xF]; |
84 | if (encoder_value[i] >= ENCODER_RESOLUTION) { | 78 | if (encoder_value[i] >= ENCODER_RESOLUTION) { |
85 | encoder_update_kb(i, false); | 79 | encoder_update_kb(i, false); |
80 | } | ||
81 | if (encoder_value[i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise | ||
82 | encoder_update_kb(i, true); | ||
83 | } | ||
84 | encoder_value[i] %= ENCODER_RESOLUTION; | ||
86 | } | 85 | } |
87 | if (encoder_value[i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise | ||
88 | encoder_update_kb(i, true); | ||
89 | } | ||
90 | encoder_value[i] %= ENCODER_RESOLUTION; | ||
91 | } | ||
92 | } | 86 | } |
93 | 87 | ||
94 | #ifdef SPLIT_KEYBOARD | 88 | #ifdef SPLIT_KEYBOARD |
95 | void encoder_state_raw(uint8_t* slave_state) { | 89 | void encoder_state_raw(uint8_t* slave_state) { memcpy(slave_state, encoder_state, sizeof(encoder_state)); } |
96 | memcpy(slave_state, encoder_state, sizeof(encoder_state)); | ||
97 | } | ||
98 | 90 | ||
99 | void encoder_update_raw(uint8_t* slave_state) { | 91 | void encoder_update_raw(uint8_t* slave_state) { |
100 | for (int i = 0; i < NUMBER_OF_ENCODERS; i++) { | 92 | for (int i = 0; i < NUMBER_OF_ENCODERS; i++) { |
101 | encoder_value[NUMBER_OF_ENCODERS + i] += encoder_LUT[slave_state[i] & 0xF]; | 93 | encoder_value[NUMBER_OF_ENCODERS + i] += encoder_LUT[slave_state[i] & 0xF]; |
102 | if (encoder_value[NUMBER_OF_ENCODERS + i] >= ENCODER_RESOLUTION) { | 94 | if (encoder_value[NUMBER_OF_ENCODERS + i] >= ENCODER_RESOLUTION) { |
103 | encoder_update_kb(NUMBER_OF_ENCODERS + i, false); | 95 | encoder_update_kb(NUMBER_OF_ENCODERS + i, false); |
104 | } | 96 | } |
105 | if (encoder_value[NUMBER_OF_ENCODERS + i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise | 97 | if (encoder_value[NUMBER_OF_ENCODERS + i] <= -ENCODER_RESOLUTION) { // direction is arbitrary here, but this clockwise |
106 | encoder_update_kb(NUMBER_OF_ENCODERS + i, true); | 98 | encoder_update_kb(NUMBER_OF_ENCODERS + i, true); |
99 | } | ||
100 | encoder_value[NUMBER_OF_ENCODERS + i] %= ENCODER_RESOLUTION; | ||
107 | } | 101 | } |
108 | encoder_value[NUMBER_OF_ENCODERS + i] %= ENCODER_RESOLUTION; | ||
109 | } | ||
110 | } | 102 | } |
111 | #endif | 103 | #endif |