Crkbd implementing return value for matrix_scan() (#10422)
This commit is contained in:
		
							parent
							
								
									45f044907c
								
							
						
					
					
						commit
						7a2124db6b
					
				
					 2 changed files with 12 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue