diff options
| author | Joel Challis <git@zvecr.com> | 2020-01-15 01:58:32 +0000 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-01-15 01:58:32 +0000 |
| commit | 48cac9e3c8710ae3e27c66fbd7043f38e7c6535e (patch) | |
| tree | a34180fc73b535f3d2b8508f7267b872f0ddcb32 /quantum/matrix.c | |
| parent | 537b8713e5bc9690dca3c1ad8733132892d48ea2 (diff) | |
| download | qmk_firmware-48cac9e3c8710ae3e27c66fbd7043f38e7c6535e.tar.gz qmk_firmware-48cac9e3c8710ae3e27c66fbd7043f38e7c6535e.zip | |
Migrate more custom matrix 'lite' code to core (#7863)
* Migrate more custom matrix lite code to core
* Align function names
* fix up MATRIX_MASKED
Diffstat (limited to 'quantum/matrix.c')
| -rw-r--r-- | quantum/matrix.c | 22 |
1 files changed, 2 insertions, 20 deletions
diff --git a/quantum/matrix.c b/quantum/matrix.c index 62a86fba6..1675f2477 100644 --- a/quantum/matrix.c +++ b/quantum/matrix.c | |||
| @@ -22,10 +22,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. | |||
| 22 | #include "debounce.h" | 22 | #include "debounce.h" |
| 23 | #include "quantum.h" | 23 | #include "quantum.h" |
| 24 | 24 | ||
| 25 | #ifdef MATRIX_MASKED | ||
| 26 | extern const matrix_row_t matrix_mask[]; | ||
| 27 | #endif | ||
| 28 | |||
| 29 | #ifdef DIRECT_PINS | 25 | #ifdef DIRECT_PINS |
| 30 | static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS; | 26 | static pin_t direct_pins[MATRIX_ROWS][MATRIX_COLS] = DIRECT_PINS; |
| 31 | #elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW) | 27 | #elif (DIODE_DIRECTION == ROW2COL) || (DIODE_DIRECTION == COL2ROW) |
| @@ -34,22 +30,8 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS; | |||
| 34 | #endif | 30 | #endif |
| 35 | 31 | ||
| 36 | /* matrix state(1:on, 0:off) */ | 32 | /* matrix state(1:on, 0:off) */ |
| 37 | static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values | 33 | extern matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values |
| 38 | static matrix_row_t matrix[MATRIX_ROWS]; // debounced values | 34 | extern matrix_row_t matrix[MATRIX_ROWS]; // debounced values |
| 39 | |||
| 40 | // helper functions | ||
| 41 | |||
| 42 | inline bool matrix_is_on(uint8_t row, uint8_t col) { return (matrix[row] & ((matrix_row_t)1 << col)); } | ||
| 43 | |||
| 44 | inline matrix_row_t matrix_get_row(uint8_t row) { | ||
| 45 | // Matrix mask lets you disable switches in the returned matrix data. For example, if you have a | ||
| 46 | // switch blocker installed and the switch is always pressed. | ||
| 47 | #ifdef MATRIX_MASKED | ||
| 48 | return matrix[row] & matrix_mask[row]; | ||
| 49 | #else | ||
| 50 | return matrix[row]; | ||
| 51 | #endif | ||
| 52 | } | ||
| 53 | 35 | ||
| 54 | // matrix code | 36 | // matrix code |
| 55 | 37 | ||
