~ruther/qmk_firmware

123608fb318a42500d64d29aa46c7d08140033fd — alex-ong 6 years ago d0b691d
DO NOT USE Revert back to original API to support split_keyboards.
3 files changed, 8 insertions(+), 8 deletions(-)

M quantum/debounce.h
M quantum/debounce/debounce_sym_g.c
M quantum/matrix.c
M quantum/debounce.h => quantum/debounce.h +2 -2
@@ 16,11 16,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.

#include "matrix.h"

void debounce_init(void); //every debounce algorithm will have unique storage needs.
void debounce_init(uint8_t num_rows); //every debounce algorithm will have unique storage needs.

// raw is the current key state
// cooked is the debounced input/output key state
// changed is true if raw has changed since the last call
void debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed);
void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed);

bool debounce_active(void);

M quantum/debounce/debounce_sym_g.c => quantum/debounce/debounce_sym_g.c +4 -4
@@ 26,10 26,10 @@ When no state changes have occured for DEBOUNCE milliseconds, we push the state.
static bool debouncing = false;
static uint16_t debouncing_time;

void debounce_init(void) {}
void debounce_init(uint8_t num_rows) {}

#if DEBOUNCE > 0
void debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed)
void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed)
{
  if (changed) {
    debouncing = true;


@@ 37,14 37,14 @@ void debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed)
  }

  if (debouncing && timer_elapsed(debouncing_time) > DEBOUNCE) {
    for (int i = 0; i < MATRIX_ROWS; i++) {
    for (int i = 0; i < num_rows; i++) {
      cooked[i] = raw[i];
    }
    debouncing = false;
  }
}
#else //no debouncing.
void debounce(matrix_row_t raw[], matrix_row_t cooked[], bool changed)
void debounce(matrix_row_t raw[], matrix_row_t cooked[], uint8_t num_rows, bool changed)
{
  for (int i = 0; i < MATRIX_ROWS; i++) {
    cooked[i] = raw[i];

M quantum/matrix.c => quantum/matrix.c +2 -2
@@ 122,7 122,7 @@ void matrix_init(void) {
        raw_matrix[i] = 0;
        matrix[i] = 0;
    }
    debounce_init();
    debounce_init(MATRIX_ROWS);

    matrix_init_quantum();
}


@@ 143,7 143,7 @@ uint8_t matrix_scan(void)
  }
#endif

  debounce(raw_matrix, matrix, changed);
  debounce(raw_matrix, matrix, MATRIX_ROWS, changed);

  matrix_scan_quantum();
  return 1;