diff options
| author | Eric Tang <e_l_tang@outlook.com> | 2016-05-23 20:42:21 -0700 |
|---|---|---|
| committer | Jack Humbert <jack.humb@gmail.com> | 2016-05-23 23:42:21 -0400 |
| commit | aaa758f1d3f97dda39879f2b055ad2da9680adfe (patch) | |
| tree | cb0749cda23c0507dd2b230af3eb0ca81a97b8af /tmk_core/common/bootmagic.c | |
| parent | d66aa0abf96b5e887250cf0a7fa5e575f18c5a91 (diff) | |
| download | qmk_firmware-aaa758f1d3f97dda39879f2b055ad2da9680adfe.tar.gz qmk_firmware-aaa758f1d3f97dda39879f2b055ad2da9680adfe.zip | |
Optimize matrix scanning (#343)
Diffstat (limited to 'tmk_core/common/bootmagic.c')
| -rw-r--r-- | tmk_core/common/bootmagic.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/tmk_core/common/bootmagic.c b/tmk_core/common/bootmagic.c index 2c1b1adfc..30e8a0f20 100644 --- a/tmk_core/common/bootmagic.c +++ b/tmk_core/common/bootmagic.c | |||
| @@ -105,15 +105,13 @@ void bootmagic(void) | |||
| 105 | } | 105 | } |
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | static bool scan_keycode(uint8_t keycode) | 108 | static bool scan_keycode(uint8_t keycode) { |
| 109 | { | 109 | for (int8_t r = MATRIX_ROWS - 1; r >= 0; --r) { |
| 110 | for (uint8_t r = 0; r < MATRIX_ROWS; r++) { | ||
| 111 | matrix_row_t matrix_row = matrix_get_row(r); | 110 | matrix_row_t matrix_row = matrix_get_row(r); |
| 112 | for (uint8_t c = 0; c < MATRIX_COLS; c++) { | 111 | for (int8_t c = MATRIX_COLS - 1; c >= 0; --c) { |
| 113 | if (matrix_row & ((matrix_row_t)1<<c)) { | 112 | if (matrix_row & (matrix_row_t)1 << c) { |
| 114 | if (keycode == keymap_key_to_keycode(0, (keypos_t){ .row = r, .col = c })) { | 113 | keypos_t key = (keypos_t){ .row = r, .col = c }; |
| 115 | return true; | 114 | if (keycode == keymap_key_to_keycode(0, key)) return true; |
| 116 | } | ||
| 117 | } | 115 | } |
| 118 | } | 116 | } |
| 119 | } | 117 | } |
