matrix_extr.h (719B)
- #pragma once
- // clang-format off
- #define DIRECT_SWITCH 1
- #define DIODE_ROW2COL 2
- #define DIODE_COL2ROW 3
- #ifndef ROW2COL
- # define COL2ROW 0
- # define ROW2COL 1
- #endif
- #ifdef DIRECT_PINS
- # define MATRIX_TYPE DIRECT_SWITCH
- #else
- # if DIODE_DIRECTION == ROW2COL
- # define MATRIX_TYPE DIODE_ROW2COL
- # endif
- # if DIODE_DIRECTION == COL2ROW
- # define MATRIX_TYPE DIODE_COL2ROW
- # endif
- #endif
- #ifndef MATRIX_TYPE
- # error "MATRIX_TYPE could not be determined."
- #endif
- #if (MATRIX_ROWS <= 8)
- typedef uint8_t matrix_col_t;
- #elif (MATRIX_ROWS <= 16)
- typedef uint16_t matrix_col_t;
- #elif (MATRIX_ROWS <= 32)
- typedef uint32_t matrix_col_t;
- #else
- # error "MATRIX_ROWS: invalid value"
- #endif