~ruther/qmk_firmware

7a2124db6bfea74672acd714d78c10eb9288732a — yhr0x43 5 years ago 45f0449
Crkbd implementing return value for matrix_scan() (#10422)

2 files changed, 12 insertions(+), 8 deletions(-)

M keyboards/crkbd/rev1/legacy/matrix.c
M keyboards/crkbd/rev1/legacy/split_util.h
M keyboards/crkbd/rev1/legacy/matrix.c => keyboards/crkbd/rev1/legacy/matrix.c +11 -7
@@ 155,6 155,7 @@ void matrix_init(void)

uint8_t _matrix_scan(void)
{
    bool changed = false;
    // Right hand is stored after the left in the matirx so, we need to offset it
    int offset = isLeftHand ? 0 : (ROWS_PER_HAND);



@@ 163,6 164,7 @@ uint8_t _matrix_scan(void)
        _delay_us(30);  // without this wait read unstable value.
        matrix_row_t cols = read_cols();
        if (matrix_debouncing[i+offset] != cols) {
            changed = true;
            matrix_debouncing[i+offset] = cols;
            debouncing = DEBOUNCE;
        }


@@ 179,7 181,7 @@ uint8_t _matrix_scan(void)
        }
    }

    return 1;
    return changed;
}

#ifdef USE_MATRIX_I2C


@@ 237,16 239,17 @@ int serial_transaction(int master_changed) {

uint8_t matrix_scan(void)
{
    bool changed = false;
    if (is_master) {
        matrix_master_scan();
        changed |= matrix_master_scan();
    }else{
        matrix_slave_scan();
        changed |= matrix_slave_scan();
        int offset = (isLeftHand) ? ROWS_PER_HAND : 0;
        memcpy(&matrix[offset],
               (void *)serial_master_buffer, SERIAL_MASTER_BUFFER_LENGTH);
        matrix_scan_quantum();
    }
    return 1;
    return (uint8_t) changed;
}




@@ 297,8 300,8 @@ uint8_t matrix_master_scan(void) {
    return ret;
}

void matrix_slave_scan(void) {
    _matrix_scan();
uint8_t matrix_slave_scan(void) {
    int ret = _matrix_scan();

    int offset = (isLeftHand) ? 0 : ROWS_PER_HAND;



@@ 314,7 317,7 @@ void matrix_slave_scan(void) {
    for (int i = 0; i < ROWS_PER_HAND; ++i) {
  #ifdef SERIAL_USE_MULTI_TRANSACTION
        if( serial_slave_buffer[i] != matrix[offset+i] )
	    change = 1;
        change = 1;
  #endif
        serial_slave_buffer[i] = matrix[offset+i];
    }


@@ 322,6 325,7 @@ void matrix_slave_scan(void) {
    slave_buffer_change_count += change;
  #endif
#endif
    return ret;
}

bool matrix_is_modified(void)

M keyboards/crkbd/rev1/legacy/split_util.h => keyboards/crkbd/rev1/legacy/split_util.h +1 -1
@@ 27,7 27,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
extern volatile bool isLeftHand;

// slave version of matix scan, defined in matrix.c
void matrix_slave_scan(void);
uint8_t matrix_slave_scan(void);

void split_keyboard_setup(void);
bool has_usb(void);