diff options
author | Joel Challis <git@zvecr.com> | 2020-01-04 20:29:44 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-04 20:29:44 +0000 |
commit | dcb7ca3f7910420cfa85ba659d48285b3633a978 (patch) | |
tree | d571ff362775734c533ed5b9d1982c62a609d20b /keyboards | |
parent | c1feeaa57f28c781e39996e5d4eea3a31f083439 (diff) |
Move some common matrix code to a common location (#7699)
* Move some common matrix code to a common location
* Refactor some 'custom_matrix_helper' logic to use custom matrix lite
* Fix build for kinesis/stapelberg - abuse of vpath was picking up matrix.c from core when custom matrix was enabled
* Add validation for CUSTOM_MATRIX
Diffstat (limited to 'keyboards')
-rw-r--r-- | keyboards/kinesis/alvicstep/rules.mk | 4 | ||||
-rw-r--r-- | keyboards/kinesis/rules.mk | 4 | ||||
-rw-r--r-- | keyboards/xd84/custom_matrix_helper.c | 56 | ||||
-rw-r--r-- | keyboards/xd84/rules.mk | 2 | ||||
-rw-r--r-- | keyboards/xd96/custom_matrix_helper.c | 56 | ||||
-rw-r--r-- | keyboards/xd96/rules.mk | 2 |
6 files changed, 6 insertions, 118 deletions
diff --git a/keyboards/kinesis/alvicstep/rules.mk b/keyboards/kinesis/alvicstep/rules.mk index e69de29bb2..232ff719c8 100644 --- a/keyboards/kinesis/alvicstep/rules.mk +++ b/keyboards/kinesis/alvicstep/rules.mk @@ -0,0 +1,4 @@ +CUSTOM_MATRIX = yes # need to do our own thing with the matrix + +# Project specific files +SRC += matrix.c diff --git a/keyboards/kinesis/rules.mk b/keyboards/kinesis/rules.mk index 295054d755..faa3e454c9 100644 --- a/keyboards/kinesis/rules.mk +++ b/keyboards/kinesis/rules.mk @@ -28,9 +28,5 @@ MIDI_ENABLE = no # MIDI controls UNICODE_ENABLE = no # Unicode BLUETOOTH_ENABLE = no # Enable Bluetooth with the Adafruit EZ-Key HID AUDIO_ENABLE = no # Audio output should be port E6, current quantum library hardcodes C6, which we use for programming -CUSTOM_MATRIX=yes # need to do our own thing with the matrix DEFAULT_FOLDER = kinesis/alvicstep - -# Project specific files -SRC = matrix.c diff --git a/keyboards/xd84/custom_matrix_helper.c b/keyboards/xd84/custom_matrix_helper.c index a4c5b6afa5..e4e2563819 100644 --- a/keyboards/xd84/custom_matrix_helper.c +++ b/keyboards/xd84/custom_matrix_helper.c @@ -23,72 +23,16 @@ #include "debounce.h" #include "quantum.h" -//_____COMMON__________________________________________________________________ -// user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__((weak)) void matrix_init_user(void) {} -__attribute__((weak)) void matrix_scan_user(void) {} - - //_____COULD BE COMMON_________________________________________________________ /* matrix state(1:on, 0:off) */ /*static*/ matrix_row_t raw_matrix[MATRIX_ROWS]; /*static*/ matrix_row_t matrix[MATRIX_ROWS]; -#if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop(matrix[i]) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop16(matrix[i]) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop32(matrix[i]) -# define ROW_SHIFTER ((uint32_t)1) -#endif - -__attribute__ ((weak)) -uint8_t matrix_rows(void) { - return MATRIX_ROWS; -} - -__attribute__ ((weak)) -uint8_t matrix_cols(void) { - return MATRIX_COLS; -} - __attribute__ ((weak)) matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } -__attribute__ ((weak)) -uint8_t matrix_key_count(void) { - uint8_t count = 0; - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - count += matrix_bitpop(i); - } - return count; -} - -__attribute__ ((weak)) -void matrix_print(void) { - print_matrix_header(); - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - print_matrix_row(row); - print("\n"); - } -} - - //_____CUSTOM MATRIX 'LITE'____________________________________________________ __attribute__ ((weak)) void custom_matrix_init(void) { diff --git a/keyboards/xd84/rules.mk b/keyboards/xd84/rules.mk index d9d316c133..4a460d91fa 100644 --- a/keyboards/xd84/rules.mk +++ b/keyboards/xd84/rules.mk @@ -34,7 +34,7 @@ HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) LINK_TIME_OPTIMIZATION_ENABLE = yes # custom matrix setup -CUSTOM_MATRIX = yes +CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += custom_matrix_helper.c pca9555.c matrix.c diff --git a/keyboards/xd96/custom_matrix_helper.c b/keyboards/xd96/custom_matrix_helper.c index a4c5b6afa5..e4e2563819 100644 --- a/keyboards/xd96/custom_matrix_helper.c +++ b/keyboards/xd96/custom_matrix_helper.c @@ -23,72 +23,16 @@ #include "debounce.h" #include "quantum.h" -//_____COMMON__________________________________________________________________ -// user-defined overridable functions -__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); } -__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); } -__attribute__((weak)) void matrix_init_user(void) {} -__attribute__((weak)) void matrix_scan_user(void) {} - - //_____COULD BE COMMON_________________________________________________________ /* matrix state(1:on, 0:off) */ /*static*/ matrix_row_t raw_matrix[MATRIX_ROWS]; /*static*/ matrix_row_t matrix[MATRIX_ROWS]; -#if (MATRIX_COLS <= 8) -# define print_matrix_header() print("\nr/c 01234567\n") -# define print_matrix_row(row) print_bin_reverse8(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop(matrix[i]) -# define ROW_SHIFTER ((uint8_t)1) -#elif (MATRIX_COLS <= 16) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse16(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop16(matrix[i]) -# define ROW_SHIFTER ((uint16_t)1) -#elif (MATRIX_COLS <= 32) -# define print_matrix_header() print("\nr/c 0123456789ABCDEF0123456789ABCDEF\n") -# define print_matrix_row(row) print_bin_reverse32(matrix_get_row(row)) -# define matrix_bitpop(i) bitpop32(matrix[i]) -# define ROW_SHIFTER ((uint32_t)1) -#endif - -__attribute__ ((weak)) -uint8_t matrix_rows(void) { - return MATRIX_ROWS; -} - -__attribute__ ((weak)) -uint8_t matrix_cols(void) { - return MATRIX_COLS; -} - __attribute__ ((weak)) matrix_row_t matrix_get_row(uint8_t row) { return matrix[row]; } -__attribute__ ((weak)) -uint8_t matrix_key_count(void) { - uint8_t count = 0; - for (uint8_t i = 0; i < MATRIX_ROWS; i++) { - count += matrix_bitpop(i); - } - return count; -} - -__attribute__ ((weak)) -void matrix_print(void) { - print_matrix_header(); - - for (uint8_t row = 0; row < MATRIX_ROWS; row++) { - phex(row); print(": "); - print_matrix_row(row); - print("\n"); - } -} - - //_____CUSTOM MATRIX 'LITE'____________________________________________________ __attribute__ ((weak)) void custom_matrix_init(void) { diff --git a/keyboards/xd96/rules.mk b/keyboards/xd96/rules.mk index 2079e436c0..d5ac5df36a 100644 --- a/keyboards/xd96/rules.mk +++ b/keyboards/xd96/rules.mk @@ -34,7 +34,7 @@ HD44780_ENABLE = no # Enable support for HD44780 based LCDs (+400) LINK_TIME_OPTIMIZATION_ENABLE = yes # custom matrix setup -CUSTOM_MATRIX = yes +CUSTOM_MATRIX = lite VPATH += drivers/gpio SRC += custom_matrix_helper.c pca9555.c matrix.c |