logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

xmk_matrix.c (917B)


  1. // Copyright 2022 Manna Harbour (@manna-harbour)
  2. // https://github.com/manna-harbour/xmk
  3. // SPDX-License-Identifier: GPL-2.0-or-later
  4. #include "xmk_matrix.h"
  5. #include "matrix.h"
  6. #include "debug.h"
  7. bool xmk_changed = false;
  8. matrix_row_t xmk_rows[MATRIX_ROWS];
  9. bool matrix_scan_custom(matrix_row_t current_matrix[]) {
  10. if (xmk_changed) {
  11. for (uint8_t row = 0; row < MATRIX_ROWS; row++) {
  12. current_matrix[row] = xmk_rows[row];
  13. }
  14. xmk_changed = false;
  15. return true;
  16. } else {
  17. return false;
  18. }
  19. }
  20. void xmk_matrix_key(bool press, uint8_t key) {
  21. dprintf("xmk_matrix_key: press: %s, key: %u\n", press?"true":"false", key);
  22. uint8_t row = key / MATRIX_COLS;
  23. if (row < MATRIX_ROWS) {
  24. uint8_t col = key % MATRIX_COLS;
  25. xmk_changed = true;
  26. if (press) {
  27. xmk_rows[row] |= (MATRIX_ROW_SHIFTER << col);
  28. } else {
  29. xmk_rows[row] &= ~(MATRIX_ROW_SHIFTER << col);
  30. }
  31. }
  32. }