qmk: xwhatsit firmware: bugfix to how signal values are measured. Use keymap coords...
authorPurdea Andrei <andrei@purdea.ro>
Sun, 31 May 2020 21:19:12 +0000 (00:19 +0300)
committerPurdea Andrei <andrei@purdea.ro>
Sun, 31 May 2020 21:19:12 +0000 (00:19 +0300)
keyboards/xwhatsit/matrix.c
keyboards/xwhatsit/matrix_manipulate.h
keyboards/xwhatsit/util_comm.c

index f8494b2..66aea8d 100644 (file)
@@ -424,6 +424,11 @@ uint16_t measure_middle(uint8_t col, uint8_t row, uint8_t time, uint8_t reps)
     return min;
 }
 
+uint16_t measure_middle_keymap_coords(uint8_t col, uint8_t row, uint8_t time, uint8_t reps)
+{
+    return measure_middle(CAPSENSE_KEYMAP_COL_TO_PHYSICAL_COL(col), CAPSENSE_KEYMAP_ROW_TO_PHYSICAL_ROW(row), time, reps);
+}
+
 uint16_t measure_middle_settled(uint8_t col, uint8_t row, uint8_t reps)
 {
     uint8_t reps_div2 = reps / 2;
index 1b96cba..f0c0cc7 100644 (file)
@@ -10,7 +10,7 @@ extern bool keyboard_scan_enabled;
 void matrix_scan_raw(matrix_row_t current_matrix[]);
 extern uint16_t cal_thresholds[CAPSENSE_CAL_BINS];
 extern matrix_row_t assigned_to_threshold[CAPSENSE_CAL_BINS][MATRIX_ROWS];
-uint16_t measure_middle(uint8_t col, uint8_t row, uint8_t time, uint8_t reps);
+uint16_t measure_middle_keymap_coords(uint8_t col, uint8_t row, uint8_t time, uint8_t reps);
 
 #endif
 
index 0623195..9dc63de 100644 (file)
@@ -128,7 +128,7 @@ void raw_hid_receive(uint8_t *data, uint8_t length) {
                 int i;
                 for (i=0;i<count;i++)
                 {
-                    uint16_t value = measure_middle(col, row, CAPSENSE_HARDCODED_SAMPLE_TIME, 16);
+                    uint16_t value = measure_middle_keymap_coords(col, row, CAPSENSE_HARDCODED_SAMPLE_TIME, 16);
                     response[3+i*2] = value & 0xff;
                     response[3+i*2+1] = (value >> 8) & 0xff;
                     col += 1;