From cacf495c91c7f6ad0e31edcefa8355eba98f75b6 Mon Sep 17 00:00:00 2001 From: Joakim Tufvegren Date: Sun, 11 Oct 2020 02:48:52 +0200 Subject: Ergodox Infinity: Add EE_HANDS support. (#9527) Including a guide to set these EEPROM values (in the readme). --- keyboards/ergodox_infinity/matrix.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'keyboards/ergodox_infinity/matrix.c') diff --git a/keyboards/ergodox_infinity/matrix.c b/keyboards/ergodox_infinity/matrix.c index 3a0a179286..941367a360 100644 --- a/keyboards/ergodox_infinity/matrix.c +++ b/keyboards/ergodox_infinity/matrix.c @@ -24,6 +24,7 @@ along with this program. If not, see . #include "print.h" #include "debug.h" #include "matrix.h" +#include "eeconfig.h" #include "serial_link/system/serial_link.h" @@ -118,8 +119,12 @@ uint8_t matrix_scan(void) } uint8_t offset = 0; -#ifdef MASTER_IS_ON_RIGHT +#if (defined(EE_HANDS) || defined(MASTER_IS_ON_RIGHT)) +#ifdef EE_HANDS + if (is_serial_link_master() && !eeconfig_read_handedness()) { +#else if (is_serial_link_master()) { +#endif offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS; } #endif @@ -162,7 +167,13 @@ void matrix_print(void) void matrix_set_remote(matrix_row_t* rows, uint8_t index) { uint8_t offset = 0; -#ifdef MASTER_IS_ON_RIGHT +#ifdef EE_HANDS + if (eeconfig_read_handedness()) { + offset = LOCAL_MATRIX_ROWS * (index + 1); + } else { + offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS * (index + 2); + } +#elif defined(MASTER_IS_ON_RIGHT) offset = MATRIX_ROWS - LOCAL_MATRIX_ROWS * (index + 2); #else offset = LOCAL_MATRIX_ROWS * (index + 1); -- cgit v1.2.3