From 5922751b173740e4375b2dfd1a48ff9762c9d943 Mon Sep 17 00:00:00 2001 From: Manna Harbour <51143715+manna-harbour@users.noreply.github.com> Date: Mon, 19 Dec 2022 20:52:03 +1100 Subject: [Keyboard] Add converter/xmk (#18433) --- keyboards/converter/xmk/xmk_matrix.c | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 keyboards/converter/xmk/xmk_matrix.c (limited to 'keyboards/converter/xmk/xmk_matrix.c') 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); + } + } +} -- cgit v1.2.3