aboutsummaryrefslogtreecommitdiff
path: root/keyboard/hhkb/matrix.c
diff options
context:
space:
mode:
Diffstat (limited to 'keyboard/hhkb/matrix.c')
-rw-r--r--keyboard/hhkb/matrix.c38
1 files changed, 2 insertions, 36 deletions
diff --git a/keyboard/hhkb/matrix.c b/keyboard/hhkb/matrix.c
index f53e36dbe..3d4b1f6c7 100644
--- a/keyboard/hhkb/matrix.c
+++ b/keyboard/hhkb/matrix.c
@@ -35,13 +35,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
35# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB." 35# error "Timer resolution(>20us) is not enough for HHKB matrix scan tweak on V-USB."
36#endif 36#endif
37 37
38#if (MATRIX_COLS > 16)
39# error "MATRIX_COLS must not exceed 16"
40#endif
41#if (MATRIX_ROWS > 255)
42# error "MATRIX_ROWS must not exceed 255"
43#endif
44
45 38
46// matrix state buffer(1:on, 0:off) 39// matrix state buffer(1:on, 0:off)
47static matrix_row_t *matrix; 40static matrix_row_t *matrix;
@@ -226,42 +219,15 @@ bool matrix_is_on(uint8_t row, uint8_t col)
226} 219}
227 220
228inline 221inline
229#if (MATRIX_COLS <= 8) 222matrix_row_t matrix_get_row(uint8_t row)
230uint8_t matrix_get_row(uint8_t row)
231#else
232uint16_t matrix_get_row(uint8_t row)
233#endif
234{ 223{
235 return matrix[row]; 224 return matrix[row];
236} 225}
237 226
238void matrix_print(void) 227void matrix_print(void)
239{ 228{
240#if (MATRIX_COLS <= 8)
241 print("\nr/c 01234567\n"); 229 print("\nr/c 01234567\n");
242#else
243 print("\nr/c 0123456789ABCDEF\n");
244#endif
245 for (uint8_t row = 0; row < matrix_rows(); row++) { 230 for (uint8_t row = 0; row < matrix_rows(); row++) {
246 phex(row); print(": "); 231 xprintf("%02X: %08b\n", row, bitrev(matrix_get_row(row)));
247#if (MATRIX_COLS <= 8)
248 pbin_reverse(matrix_get_row(row));
249#else
250 pbin_reverse16(matrix_get_row(row));
251#endif
252 print("\n");
253 }
254}
255
256uint8_t matrix_key_count(void)
257{
258 uint8_t count = 0;
259 for (uint8_t i = 0; i < MATRIX_ROWS; i++) {
260#if (MATRIX_COLS <= 8)
261 count += bitpop(matrix[i]);
262#else
263 count += bitpop16(matrix[i]);
264#endif
265 } 232 }
266 return count;
267} 233}