diff options
author | Manna Harbour <51143715+manna-harbour@users.noreply.github.com> | 2022-12-19 20:52:03 +1100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-12-19 20:52:03 +1100 |
commit | 5922751b173740e4375b2dfd1a48ff9762c9d943 (patch) | |
tree | ddbbccf462b0a4c41d512b181d8b7031cf6cd4ee /keyboards/converter/xmk/xmk_matrix.c | |
parent | d27d6f0485ccaaa852d5405ad88ebee6d850d33c (diff) |
[Keyboard] Add converter/xmk (#18433)
Diffstat (limited to 'keyboards/converter/xmk/xmk_matrix.c')
-rw-r--r-- | keyboards/converter/xmk/xmk_matrix.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/keyboards/converter/xmk/xmk_matrix.c b/keyboards/converter/xmk/xmk_matrix.c new file mode 100644 index 0000000000..7327ad5cfe --- /dev/null +++ b/keyboards/converter/xmk/xmk_matrix.c @@ -0,0 +1,35 @@ +// Copyright 2022 Manna Harbour (@manna-harbour) +// https://github.com/manna-harbour/xmk + +// SPDX-License-Identifier: GPL-2.0-or-later + +#include "xmk_matrix.h" + +bool xmk_changed = false; +matrix_row_t xmk_rows[MATRIX_ROWS]; + +bool matrix_scan_custom(matrix_row_t current_matrix[]) { + if (xmk_changed) { + for (uint8_t row = 0; row < MATRIX_ROWS; row++) { + current_matrix[row] = xmk_rows[row]; + } + xmk_changed = false; + return true; + } else { + return false; + } +} + +void xmk_matrix_key(bool press, uint8_t key) { + dprintf("xmk_matrix_key: press: %s, key: %u\n", press?"true":"false", key); + uint8_t row = key / MATRIX_COLS; + if (row < MATRIX_ROWS) { + uint8_t col = key % MATRIX_COLS; + xmk_changed = true; + if (press) { + xmk_rows[row] |= (MATRIX_ROW_SHIFTER << col); + } else { + xmk_rows[row] &= ~(MATRIX_ROW_SHIFTER << col); + } + } +} |