X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=hhkb%2Fmatrix.c;h=a425439ccab0887184096f8aa8f5a4c001849e19;hb=4acc38751e9c8e90921773e6e5f5a100b0729d98;hp=3034a636126c47f4c4f90917a87d5c2654984256;hpb=54b5bafaacf0d7863b7bdb84dd69cbc80db77956;p=max%2Ftmk_keyboard.git diff --git a/hhkb/matrix.c b/hhkb/matrix.c index 3034a636..a425439c 100644 --- a/hhkb/matrix.c +++ b/hhkb/matrix.c @@ -31,6 +31,20 @@ static uint8_t _matrix0[MATRIX_ROWS]; static uint8_t _matrix1[MATRIX_ROWS]; +static bool matrix_has_ghost_in_row(int row); +static int bit_pop(uint8_t bits); + + +inline +int matrix_rows(void) { + return MATRIX_ROWS; +} + +inline +int matrix_cols(void) { + return MATRIX_COLS; +} + // this must be called once before matrix_scan. void matrix_init(void) { @@ -48,7 +62,7 @@ void matrix_init(void) matrix_prev = _matrix1; } -uint8_t matrix_scan(void) +int matrix_scan(void) { uint8_t *tmp; @@ -75,17 +89,51 @@ uint8_t matrix_scan(void) } bool matrix_is_modified(void) { - for (int i=0; i