aboutsummaryrefslogtreecommitdiff
path: root/keyboards/ergodox_infinity/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboards/ergodox_infinity/matrix.c')
-rw-r--r--keyboards/ergodox_infinity/matrix.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/keyboards/ergodox_infinity/matrix.c b/keyboards/ergodox_infinity/matrix.c
index 7baacd24d..0fca56a97 100644
--- a/keyboards/ergodox_infinity/matrix.c
+++ b/keyboards/ergodox_infinity/matrix.c
@@ -24,7 +24,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
24#include "print.h" 24#include "print.h"
25#include "debug.h" 25#include "debug.h"
26#include "matrix.h" 26#include "matrix.h"
27#include "eeconfig.h" 27#include "keyboard.h"
28#include "serial_link/system/serial_link.h" 28#include "serial_link/system/serial_link.h"
29 29
30 30
@@ -119,15 +119,9 @@ uint8_t matrix_scan(void)
119 } 119 }
120 120
121 uint8_t offset = 0; 121 uint8_t offset = 0;
122#if (defined(EE_HANDS) || defined(MASTER_IS_ON_RIGHT)) 122 if (is_serial_link_master() && !is_keyboard_left()) {
123#ifdef EE_HANDS
124 if (is_serial_link_master() && !eeconfig_read_handedness()) {
125#else
126 if (is_serial_link_master()) {
127#endif
128 offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS; 123 offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS;
129 } 124 }
130#endif
131 125
132 if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) { 126 if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
133 for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { 127 for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) {
@@ -167,17 +161,11 @@ void matrix_print(void)
167 161
168void matrix_set_remote(matrix_row_t* rows, uint8_t index) { 162void matrix_set_remote(matrix_row_t* rows, uint8_t index) {
169 uint8_t offset = 0; 163 uint8_t offset = 0;
170#ifdef EE_HANDS 164 if (is_keyboard_left()) {
171 if (eeconfig_read_handedness()) {
172 offset = LOCAL_MATRIX_ROWS * (index + 1); 165 offset = LOCAL_MATRIX_ROWS * (index + 1);
173 } else { 166 } else {
174 offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS * (index + 2); 167 offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS * (index + 2);
175 } 168 }
176#elif defined(MASTER_IS_ON_RIGHT)
177 offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS * (index + 2);
178#else
179 offset = LOCAL_MATRIX_ROWS * (index + 1);
180#endif
181 for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) { 169 for (int row = 0; row < LOCAL_MATRIX_ROWS; row++) {
182 matrix[offset + row] = rows[row]; 170 matrix[offset + row] = rows[row];
183 } 171 }