Compare commits

..

No commits in common. "6c01ab5b426844cedc9955ed47f794b690d83aaf" and "09f5469cec04c0c09bfcf93bffb0cbed9b535d9d" have entirely different histories.

79 changed files with 398 additions and 272 deletions

View File

@ -21,20 +21,6 @@
"items": {"type": "string"}
}
},
"encoders": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "object",
"required": ["ccw", "cw"],
"properties": {
"ccw": {"type": "string"},
"cw": {"type": "string"}
}
}
}
},
"macros": {
"type": "array",
"items": {

View File

@ -77,7 +77,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
// This *must* be called for correct keyboard behavior
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -89,7 +89,7 @@ uint8_t matrix_scan(void) {
changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
// This *must* be called for correct keyboard behavior
matrix_scan_kb();
matrix_scan_quantum();
return changed;
}

View File

@ -83,7 +83,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -95,7 +95,7 @@ uint8_t matrix_scan(void) {
changed = debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
// 正しいキーボード動作のためにこれを呼び出す*必要があります*
matrix_scan_kb();
matrix_scan_quantum();
return changed;
}

View File

@ -182,7 +182,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -214,7 +214,7 @@ uint8_t matrix_scan(void)
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -85,7 +85,7 @@ void matrix_init(void) {
matrix[i] = 0;
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -113,7 +113,7 @@ uint8_t matrix_scan(void) {
}
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -80,7 +80,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -109,7 +109,7 @@ uint8_t matrix_scan(void)
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -70,7 +70,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -90,7 +90,7 @@ uint8_t matrix_scan(void)
}
debounce(matrix_debouncing, matrix, matrix_rows(), changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}

View File

@ -98,7 +98,7 @@ void matrix_init(void) {
for (uint8_t i=0; i < MATRIX_ROWS; i++)
matrix[i] = matrix_debouncing[i] = 0;
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -124,7 +124,7 @@ uint8_t matrix_scan(void) {
matrix[i] = matrix_debouncing[i];
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -99,7 +99,7 @@ void matrix_init(void) {
for (uint8_t i=0; i < MATRIX_ROWS; i++)
matrix[i] = matrix_debouncing[i] = 0;
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -125,7 +125,7 @@ uint8_t matrix_scan(void) {
matrix[i] = matrix_debouncing[i];
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -76,7 +76,7 @@ void matrix_init(void)
// debug_mouse = true;
// print("debug enabled.\n");
matrix_init_kb();
matrix_init_quantum();
}
#ifdef ADB_MOUSE_ENABLE
@ -241,7 +241,7 @@ uint8_t matrix_scan(void)
extra_key = key1<<8 | 0xFF; // process in a separate call
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -50,6 +50,16 @@ static uint8_t matrix_debounce_old [MATRIX_ROWS] = {0};
static uint8_t matrix_debounce_new [MATRIX_ROWS] = {0};
#endif
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -151,7 +161,7 @@ void matrix_init (void) {
DDRD |= LED ;
PORTD &= ~LED ;
matrix_init_kb();
matrix_init_quantum();
//toggle reset, to put the keyboard logic into a known state
Matrix_Reset() ;
@ -196,7 +206,7 @@ uint8_t matrix_scan(void) {
#endif
Matrix_Reset() ;
matrix_scan_kb() ;
matrix_scan_quantum() ;
return 1;
}

View File

@ -72,7 +72,7 @@ void matrix_init(void)
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix0[i] = 0x00;
matrix = _matrix0;
matrix_init_kb();
matrix_init_quantum();
return;
}
@ -96,7 +96,7 @@ uint8_t matrix_scan(void)
print("["); print_hex8(key); print("]\n");
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -280,7 +280,7 @@ void matrix_init(void)
// initialize matrix state: all keys off
for (uint8_t i=0; i < MATRIX_ROWS; i++) matrix[i] = 0x00;
matrix_init_kb();
matrix_init_quantum();
return;
@ -348,7 +348,7 @@ uint8_t matrix_scan(void)
}
}
matrix_scan_kb();
matrix_scan_quantum();
return code;
}

View File

@ -109,7 +109,7 @@ void matrix_init(void) {
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
memset(matrix_debouncing, 0, MATRIX_ROWS * sizeof(matrix_row_t));
matrix_init_kb();
matrix_init_quantum();
osalSysLock();
enable_input_events();
@ -215,7 +215,7 @@ uint8_t matrix_scan(void) {
porta_buffer = 65535;
portb_buffer = 65535;
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -97,7 +97,7 @@ void matrix_init(void)
/* PORTD &= ~(1<<6); */
matrix_init_kb();
matrix_init_quantum();
return;
}
@ -148,7 +148,7 @@ uint8_t matrix_scan(void)
}
}
matrix_scan_kb();
matrix_scan_quantum();
return code;
}

View File

@ -93,7 +93,7 @@ extern "C" {
kbd2.SetReportParser(0, (HIDReportParser*)&kbd_parser2);
kbd3.SetReportParser(0, (HIDReportParser*)&kbd_parser3);
kbd4.SetReportParser(0, (HIDReportParser*)&kbd_parser4);
matrix_init_kb();
matrix_init_quantum();
}
static void or_report(report_keyboard_t report) {
@ -182,7 +182,7 @@ extern "C" {
led_set(host_keyboard_leds());
}
}
matrix_scan_kb();
matrix_scan_quantum();
return changed;
}

View File

@ -59,7 +59,7 @@ void matrix_init(void) {
matrix[i] = 0x00;
}
matrix_init_kb();
matrix_init_quantum();
}
// convert E0-escaped codes into unused area
@ -188,7 +188,7 @@ uint8_t matrix_scan(void) {
state = XT_STATE_INIT;
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -88,6 +88,16 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static void select_col(uint8_t col);
#endif
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -133,7 +143,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -188,7 +198,7 @@ uint8_t matrix_scan(void)
i2c_slave_reg[i+2] = matrix[i]; //send matrix over i2c
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -92,6 +92,16 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static void select_col(uint8_t col);
#endif
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -144,7 +154,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -213,7 +223,7 @@ if (i2c_transaction(SLAVE_I2C_ADDRESS_NUMPAD, 0x1FFFF, 11)) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -88,6 +88,16 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static void select_col(uint8_t col);
#endif
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -133,7 +143,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -188,7 +198,7 @@ uint8_t matrix_scan(void)
i2c_slave_reg[i+2] = matrix[i]; //send matrix over i2c
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -89,6 +89,16 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static void select_col(uint8_t col);
#endif
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -134,7 +144,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -189,7 +199,7 @@ uint8_t matrix_scan(void)
i2c_slave_reg[i+2] = matrix[i]; //send matrix over i2c
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -53,6 +53,16 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
/* matrix state(1:on, 0:off) */
static matrix_row_t matrix[MATRIX_ROWS];
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -82,7 +92,7 @@ uint8_t matrix_cols(void) {
}
void matrix_init(void) {
matrix_init_kb();
matrix_init_quantum();
uart_init(1000000);
}
@ -180,7 +190,7 @@ uint8_t matrix_scan(void)
}
//matrix_print();
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -64,7 +64,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -96,7 +96,7 @@ uint8_t matrix_scan(void)
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -78,7 +78,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -112,7 +112,7 @@ uint8_t matrix_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -74,7 +74,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -110,7 +110,7 @@ uint8_t matrix_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -73,7 +73,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -107,7 +107,7 @@ uint8_t matrix_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -78,7 +78,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -112,7 +112,7 @@ uint8_t matrix_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -72,7 +72,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -106,7 +106,7 @@ uint8_t matrix_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -78,7 +78,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -112,7 +112,7 @@ uint8_t matrix_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -56,7 +56,7 @@ void matrix_init(void) {
debounce_matrix[i * MATRIX_COLS + j] = 0;
}
}
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
@ -115,7 +115,7 @@ uint8_t matrix_scan(void) {
unselect_rows();
}
matrix_scan_kb();
matrix_scan_quantum();
return 0;
}

View File

@ -120,7 +120,7 @@ void matrix_init(void)
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
matrix = _matrix0;
matrix_prev = _matrix1;
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -180,7 +180,7 @@ uint8_t matrix_scan(void)
matrix_last_modified = timer_read32();
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -122,7 +122,7 @@ void matrix_init(void)
for (uint8_t i=0; i < MATRIX_ROWS; i++) _matrix1[i] = 0x00;
matrix = _matrix0;
matrix_prev = _matrix1;
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -182,7 +182,7 @@ uint8_t matrix_scan(void)
matrix_last_modified = timer_read32();
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -112,7 +112,7 @@ void matrix_init(void)
}
}
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
@ -188,7 +188,7 @@ uint8_t matrix_scan(void)
unselect_rows();
}
matrix_scan_kb();
matrix_scan_quantum();
#ifdef DEBUG_MATRIX
for (uint8_t c = 0; c < MATRIX_COLS; c++)

View File

@ -133,7 +133,7 @@ void matrix_init(void)
}
}
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
@ -209,7 +209,7 @@ uint8_t matrix_scan(void)
unselect_rows();
}
matrix_scan_kb();
matrix_scan_quantum();
#ifdef DEBUG_MATRIX
for (uint8_t c = 0; c < MATRIX_COLS; c++)

View File

@ -153,7 +153,7 @@ void matrix_init(void) {
}
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
@ -260,7 +260,7 @@ uint8_t matrix_scan(void) {
}
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
enableInterrupts();

View File

@ -83,7 +83,7 @@ void matrix_init(void) {
}
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
mcp23018_status = init_mcp23018();
@ -141,7 +141,7 @@ uint8_t matrix_scan(void) {
}
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
#ifdef DEBUG_MATRIX
for (uint8_t c = 0; c < MATRIX_COLS; c++)

View File

@ -206,7 +206,7 @@ void matrix_init(void) {
debounce_init(ROWS_PER_HAND);
matrix_init_kb();
matrix_init_quantum();
split_post_init();
}
@ -240,7 +240,7 @@ bool matrix_post_scan(void) {
}
}
matrix_scan_kb();
matrix_scan_quantum();
} else {
transport_slave(matrix + thatHand, matrix + thisHand);

View File

@ -124,7 +124,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
void init_expander(void) {
@ -277,7 +277,7 @@ uint8_t matrix_scan(void)
}
# endif
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -59,7 +59,7 @@ void matrix_init(void) {
/* Turn off the lock LEDs. */
PORTF |= LED_CAPS_LOCK | LED_NUM_LOCK | LED_SCROLL_LOCK | LED_MOUSE_LOCK;
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -73,7 +73,7 @@ uint8_t matrix_scan(void) {
matrix[row] = read_cols();
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -111,7 +111,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
@ -169,7 +169,7 @@ uint8_t matrix_scan(void)
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -200,7 +200,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
setPinInput(D5);
setPinInput(B0);
@ -217,7 +217,7 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}
@ -235,7 +235,7 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}
*/

View File

@ -111,7 +111,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -141,7 +141,7 @@ uint8_t matrix_scan(void)
}
# endif
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -137,7 +137,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
void init_expander(void) {
@ -278,7 +278,7 @@ uint8_t matrix_scan(void)
}
# endif
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -295,7 +295,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -323,7 +323,7 @@ uint8_t matrix_scan(void) {
MATRIX_DEBUG_GAP();
MATRIX_DEBUG_SCAN_START();
matrix_scan_kb();
matrix_scan_quantum();
MATRIX_DEBUG_SCAN_END();
return (uint8_t)changed;
}

View File

@ -171,7 +171,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -228,7 +228,7 @@ uint8_t matrix_scan(void) {
MATRIX_DEBUG_SCAN_END(); MATRIX_DEBUG_GAP();
MATRIX_DEBUG_SCAN_START();
matrix_scan_kb();
matrix_scan_quantum();
MATRIX_DEBUG_SCAN_END();
return (uint8_t)changed;
}

View File

@ -71,7 +71,7 @@ void matrix_init(void)
matrix = _matrix0;
matrix_prev = _matrix1;
matrix_init_kb();
matrix_init_quantum();
}
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
@ -158,7 +158,7 @@ uint8_t matrix_scan(void)
suspend_power_down();
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -71,7 +71,7 @@ void matrix_init(void)
matrix = _matrix0;
matrix_prev = _matrix1;
matrix_init_kb();
matrix_init_quantum();
}
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
@ -159,7 +159,7 @@ uint8_t matrix_scan(void)
suspend_power_down();
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -81,7 +81,7 @@ void matrix_init(void)
}
}
matrix_init_kb();
matrix_init_quantum();
}
void matrix_power_up(void) {
@ -133,7 +133,7 @@ uint8_t matrix_scan(void)
unselect_rows();
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -83,7 +83,7 @@ void matrix_init_custom(void) {
// initialize key pins
init_pins();
matrix_init_kb();
matrix_init_quantum();
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
@ -94,6 +94,6 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
changed |= read_cols_on_row(current_matrix, current_row);
}
matrix_scan_kb();
matrix_scan_quantum();
return changed;
}

View File

@ -83,7 +83,7 @@ void matrix_init_custom(void) {
// initialize key pins
init_pins();
matrix_init_kb();
matrix_init_quantum();
}
bool matrix_scan_custom(matrix_row_t current_matrix[]) {
@ -94,6 +94,6 @@ bool matrix_scan_custom(matrix_row_t current_matrix[]) {
changed |= read_cols_on_row(current_matrix, current_row);
}
matrix_scan_kb();
matrix_scan_quantum();
return changed;
}

View File

@ -49,6 +49,16 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -234,7 +244,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -253,6 +263,6 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}

View File

@ -49,6 +49,16 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -234,7 +244,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -253,6 +263,6 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}

View File

@ -49,6 +49,16 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -234,7 +244,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -253,6 +263,6 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}

View File

@ -77,14 +77,14 @@ void matrix_init(void) {
i2c_set_keyscan_interval(RIGHT, 2);
memset(rows, 0, sizeof(rows));
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
uint8_t ret = 0;
ret |= i2c_read_hand(LEFT);
ret |= i2c_read_hand(RIGHT);
matrix_scan_kb();
matrix_scan_quantum();
return ret;
}

View File

@ -53,6 +53,16 @@ static matrix_row_t matrix[MATRIX_ROWS];
//extern int8_t encoderValue;
int8_t encoderValue = 0;
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -83,7 +93,7 @@ uint8_t matrix_cols(void) {
void matrix_init(void) {
matrix_init_kb();
matrix_init_quantum();
uart_init(1000000);
}
@ -158,7 +168,7 @@ uint8_t matrix_scan(void)
xprintf("\r\nRequested packet, data 3 was %d",uart_data[3]);
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -132,7 +132,7 @@ uint8_t matrix_scan(void)
}
}
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -45,6 +45,10 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
static matrix_row_t matrix[MATRIX_ROWS]; // debounced values
__attribute__((weak)) void matrix_init_quantum(void) { matrix_init_kb(); }
__attribute__((weak)) void matrix_scan_quantum(void) { matrix_scan_kb(); }
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
@ -187,7 +191,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -199,7 +203,7 @@ uint8_t matrix_scan(void) {
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}

View File

@ -84,7 +84,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -105,7 +105,7 @@ uint8_t matrix_scan(void)
debouncing = false;
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -2,7 +2,6 @@
"manufacturer": "Lx3",
"keyboard_name": "FAve 84H",
"maintainer": "ToastyStoemp",
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"diode_direction": "COL2ROW",
"features": {
@ -19,6 +18,7 @@
"cols": ["F0", "F1", "F4", "F5", "F6", "F7", "C7", "C6", "B6", "B5", "B4", "D7", "D6", "D4", "B0", "B7", "E6"],
"rows": ["B1", "B2", "B3", "D3", "D1", "D0"]
},
"processor": "atmega32u4",
"rgb_matrix": {
"driver": "WS2812",
"layout": [
@ -156,6 +156,8 @@
"pid": "0x0004",
"vid": "0x4C58"
},
"processor": "atmega32u4",
"bootloader": "atmel-dfu",
"community_layouts": [
"tkl_ansi_tsangan"
],
@ -178,7 +180,7 @@
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
@ -274,7 +276,7 @@
{ "matrix": [0, 14], "x": 15.25, "y": 0 },
{ "matrix": [0, 15], "x": 16.25, "y": 0 },
{ "matrix": [0, 16], "x": 17.25, "y": 0 },
{ "matrix": [1, 0], "x": 0, "y": 1.25 },
{ "matrix": [1, 1], "x": 1, "y": 1.25 },
{ "matrix": [1, 2], "x": 2, "y": 1.25 },
@ -338,7 +340,7 @@
{ "matrix": [4, 10], "x": 11.25, "y": 4.25 },
{ "matrix": [4, 12], "w": 2.75, "x": 12.25, "y": 4.25 },
{ "matrix": [4, 15], "x": 16.25, "y": 4.25 },
{ "matrix": [5, 0], "w": 1.5, "x": 0, "y": 5.25 },
{ "matrix": [5, 1], "x": 1.5, "y": 5.25 },
{ "matrix": [5, 2], "w": 1.5, "x": 2.5, "y": 5.25 },
@ -352,4 +354,4 @@
]
}
}
}
}

View File

@ -85,7 +85,7 @@ void matrix_init(void)
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -156,7 +156,7 @@ uint8_t matrix_scan(void)
debouncing = false;
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -91,6 +91,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
static matrix_row_t raw_matrix[MATRIX_ROWS]; // raw values
static matrix_row_t matrix[MATRIX_ROWS]; // debounced values
__attribute__((weak)) void matrix_init_quantum(void) { matrix_init_kb(); }
__attribute__((weak)) void matrix_scan_quantum(void) { matrix_scan_kb(); }
__attribute__((weak)) void matrix_init_kb(void) { matrix_init_user(); }
__attribute__((weak)) void matrix_scan_kb(void) { matrix_scan_user(); }
@ -187,7 +191,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -199,7 +203,7 @@ uint8_t matrix_scan(void) {
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return (uint8_t)changed;
}

View File

@ -91,6 +91,17 @@ static matrix_row_t matrix_debouncing[MATRIX_ROWS];
static void select_col(uint8_t col);
#endif
__attribute__ ((weak))
void matrix_init_quantum(void) {
expander_init();
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -135,7 +146,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
set_output(OUTPUT_AUTO);
}
@ -187,7 +198,7 @@ uint8_t matrix_scan(void)
}
# endif
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -67,7 +67,7 @@ void matrix_init(void) {
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_row_t));
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -142,7 +142,7 @@ uint8_t matrix_scan(void) {
debouncing = false;
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -71,7 +71,7 @@ void matrix_init(void) {
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
memset(matrix_debouncing, 0, MATRIX_COLS * sizeof(matrix_col_t));
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
@ -146,7 +146,7 @@ uint8_t matrix_scan(void) {
debouncing = false;
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -53,6 +53,16 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -335,7 +345,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -356,6 +366,6 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -53,6 +53,16 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -335,7 +345,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -356,6 +366,6 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -53,6 +53,16 @@ static const pin_t col_pins[MATRIX_COLS] = MATRIX_COL_PINS;
static matrix_row_t raw_matrix[MATRIX_ROWS]; //raw values
static matrix_row_t matrix[MATRIX_ROWS]; //debounced values
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -335,7 +345,7 @@ void matrix_init(void) {
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -356,6 +366,6 @@ uint8_t matrix_scan(void)
debounce(raw_matrix, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -85,7 +85,7 @@ void matrix_init(void)
matrix_stage[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
@ -109,7 +109,7 @@ uint8_t matrix_scan(void)
debouncing = false;
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -71,6 +71,16 @@ static bool read_cols_on_row(matrix_row_t current_matrix[], uint8_t current_row)
static void unselect_rows(void);
static void select_row(uint8_t row);
__attribute__ ((weak))
void matrix_init_quantum(void) {
matrix_init_kb();
}
__attribute__ ((weak))
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
__attribute__ ((weak))
void matrix_init_kb(void) {
matrix_init_user();
@ -112,7 +122,7 @@ void matrix_init(void) {
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -155,7 +165,7 @@ uint8_t matrix_scan(void)
}
# endif
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -158,7 +158,7 @@ void matrix_init(void) {
memset(matrix, 0, MATRIX_ROWS * sizeof(matrix_row_t));
matrix_init_kb();
matrix_init_quantum();
}
@ -261,7 +261,7 @@ uint8_t matrix_scan(void) {
writePinLow(E6);
}
matrix_scan_kb();
matrix_scan_quantum();
return 1;

View File

@ -119,7 +119,7 @@ void matrix_init(void)
matrix_debouncing[i] = 0;
}
matrix_init_kb();
matrix_init_quantum();
}
@ -154,7 +154,7 @@ uint8_t _matrix_scan(void)
uint8_t matrix_scan(void)
{
uint8_t ret = _matrix_scan();
matrix_scan_kb();
matrix_scan_quantum();
return ret;
}

View File

@ -74,7 +74,7 @@ void matrix_init(void)
matrix_debouncing[row] = 0;
}
debounce_init(MATRIX_ROWS);
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void)
@ -127,7 +127,7 @@ uint8_t matrix_scan(void)
debounce(matrix_debouncing, matrix, MATRIX_ROWS, changed);
matrix_scan_kb();
matrix_scan_quantum();
#ifdef DEBUG_MATRIX
for (uint8_t c = 0; c < MATRIX_COLS; c++)

View File

@ -30,99 +30,9 @@ const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = {
__KEYMAP_GOES_HERE__
};
#if defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
const uint16_t PROGMEM encoder_map[][NUM_ENCODERS][2] = {
__ENCODER_MAP_GOES_HERE__
};
#endif // defined(ENCODER_ENABLE) && defined(ENCODER_MAP_ENABLE)
__MACRO_OUTPUT_GOES_HERE__
"""
def _generate_keymap_table(keymap_json):
lines = []
for layer_num, layer in enumerate(keymap_json['layers']):
if layer_num != 0:
lines[-1] = lines[-1] + ','
layer = map(_strip_any, layer)
layer_keys = ', '.join(layer)
lines.append('\t[%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys))
return lines
def _generate_encodermap_table(keymap_json):
lines = []
for layer_num, layer in enumerate(keymap_json['encoders']):
if layer_num != 0:
lines[-1] = lines[-1] + ','
encoder_keycode_txt = ', '.join([f'ENCODER_CCW_CW({_strip_any(e["ccw"])}, {_strip_any(e["cw"])})' for e in layer])
lines.append('\t[%s] = {%s}' % (layer_num, encoder_keycode_txt))
return lines
def _generate_macros_function(keymap_json):
macro_txt = [
'bool process_record_user(uint16_t keycode, keyrecord_t *record) {',
' if (record->event.pressed) {',
' switch (keycode) {',
]
for i, macro_array in enumerate(keymap_json['macros']):
macro = []
for macro_fragment in macro_array:
if isinstance(macro_fragment, str):
macro_fragment = macro_fragment.replace('\\', '\\\\')
macro_fragment = macro_fragment.replace('\r\n', r'\n')
macro_fragment = macro_fragment.replace('\n', r'\n')
macro_fragment = macro_fragment.replace('\r', r'\n')
macro_fragment = macro_fragment.replace('\t', r'\t')
macro_fragment = macro_fragment.replace('"', r'\"')
macro.append(f'"{macro_fragment}"')
elif isinstance(macro_fragment, dict):
newstring = []
if macro_fragment['action'] == 'delay':
newstring.append(f"SS_DELAY({macro_fragment['duration']})")
elif macro_fragment['action'] == 'beep':
newstring.append(r'"\a"')
elif macro_fragment['action'] == 'tap' and len(macro_fragment['keycodes']) > 1:
last_keycode = macro_fragment['keycodes'].pop()
for keycode in macro_fragment['keycodes']:
newstring.append(f'SS_DOWN(X_{keycode})')
newstring.append(f'SS_TAP(X_{last_keycode})')
for keycode in reversed(macro_fragment['keycodes']):
newstring.append(f'SS_UP(X_{keycode})')
else:
for keycode in macro_fragment['keycodes']:
newstring.append(f"SS_{macro_fragment['action'].upper()}(X_{keycode})")
macro.append(''.join(newstring))
new_macro = "".join(macro)
new_macro = new_macro.replace('""', '')
macro_txt.append(f' case QK_MACRO_{i}:')
macro_txt.append(f' SEND_STRING({new_macro});')
macro_txt.append(' return false;')
macro_txt.append(' }')
macro_txt.append(' }')
macro_txt.append('\n return true;')
macro_txt.append('};')
macro_txt.append('')
return macro_txt
def template_json(keyboard):
"""Returns a `keymap.json` template for a keyboard.
@ -296,26 +206,83 @@ def generate_c(keymap_json):
A sequence of strings containing macros to implement for this keyboard.
"""
new_keymap = template_c(keymap_json['keyboard'])
layer_txt = _generate_keymap_table(keymap_json)
layer_txt = []
for layer_num, layer in enumerate(keymap_json['layers']):
if layer_num != 0:
layer_txt[-1] = layer_txt[-1] + ','
layer = map(_strip_any, layer)
layer_keys = ', '.join(layer)
layer_txt.append('\t[%s] = %s(%s)' % (layer_num, keymap_json['layout'], layer_keys))
keymap = '\n'.join(layer_txt)
new_keymap = new_keymap.replace('__KEYMAP_GOES_HERE__', keymap)
encodermap = ''
if 'encoders' in keymap_json and keymap_json['encoders'] is not None:
encoder_txt = _generate_encodermap_table(keymap_json)
encodermap = '\n'.join(encoder_txt)
new_keymap = new_keymap.replace('__ENCODER_MAP_GOES_HERE__', encodermap)
if keymap_json.get('macros'):
macro_txt = [
'bool process_record_user(uint16_t keycode, keyrecord_t *record) {',
' if (record->event.pressed) {',
' switch (keycode) {',
]
macros = ''
if 'macros' in keymap_json and keymap_json['macros'] is not None:
macro_txt = _generate_macros_function(keymap_json)
macros = '\n'.join(macro_txt)
new_keymap = new_keymap.replace('__MACRO_OUTPUT_GOES_HERE__', macros)
for i, macro_array in enumerate(keymap_json['macros']):
macro = []
hostlang = ''
if 'host_language' in keymap_json and keymap_json['host_language'] is not None:
hostlang = f'#include "keymap_{keymap_json["host_language"]}.h"\n#include "sendstring_{keymap_json["host_language"]}.h"\n'
new_keymap = new_keymap.replace('__INCLUDES__', hostlang)
for macro_fragment in macro_array:
if isinstance(macro_fragment, str):
macro_fragment = macro_fragment.replace('\\', '\\\\')
macro_fragment = macro_fragment.replace('\r\n', r'\n')
macro_fragment = macro_fragment.replace('\n', r'\n')
macro_fragment = macro_fragment.replace('\r', r'\n')
macro_fragment = macro_fragment.replace('\t', r'\t')
macro_fragment = macro_fragment.replace('"', r'\"')
macro.append(f'"{macro_fragment}"')
elif isinstance(macro_fragment, dict):
newstring = []
if macro_fragment['action'] == 'delay':
newstring.append(f"SS_DELAY({macro_fragment['duration']})")
elif macro_fragment['action'] == 'beep':
newstring.append(r'"\a"')
elif macro_fragment['action'] == 'tap' and len(macro_fragment['keycodes']) > 1:
last_keycode = macro_fragment['keycodes'].pop()
for keycode in macro_fragment['keycodes']:
newstring.append(f'SS_DOWN(X_{keycode})')
newstring.append(f'SS_TAP(X_{last_keycode})')
for keycode in reversed(macro_fragment['keycodes']):
newstring.append(f'SS_UP(X_{keycode})')
else:
for keycode in macro_fragment['keycodes']:
newstring.append(f"SS_{macro_fragment['action'].upper()}(X_{keycode})")
macro.append(''.join(newstring))
new_macro = "".join(macro)
new_macro = new_macro.replace('""', '')
macro_txt.append(f' case QK_MACRO_{i}:')
macro_txt.append(f' SEND_STRING({new_macro});')
macro_txt.append(' return false;')
macro_txt.append(' }')
macro_txt.append(' }')
macro_txt.append('\n return true;')
macro_txt.append('};')
macro_txt.append('')
new_keymap = '\n'.join((new_keymap, *macro_txt))
if keymap_json.get('host_language'):
new_keymap = new_keymap.replace('__INCLUDES__', f'#include "keymap_{keymap_json["host_language"]}.h"\n#include "sendstring_{keymap_json["host_language"]}.h"\n')
else:
new_keymap = new_keymap.replace('__INCLUDES__', '')
return new_keymap

View File

@ -308,7 +308,7 @@ void matrix_init(void) {
debounce_init(ROWS_PER_HAND);
matrix_init_kb();
matrix_init_quantum();
}
#ifdef SPLIT_KEYBOARD
@ -342,7 +342,7 @@ uint8_t matrix_scan(void) {
changed = debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed) | matrix_post_scan();
#else
changed = debounce(raw_matrix, matrix, ROWS_PER_HAND, changed);
matrix_scan_kb();
matrix_scan_quantum();
#endif
return (uint8_t)changed;
}

View File

@ -67,6 +67,10 @@ void matrix_io_delay(void);
void matrix_power_up(void);
void matrix_power_down(void);
/* executes code for Quantum */
void matrix_init_quantum(void);
void matrix_scan_quantum(void);
void matrix_init_kb(void);
void matrix_scan_kb(void);

View File

@ -111,7 +111,7 @@ bool matrix_post_scan(void) {
if (changed) memcpy(matrix + thatHand, slave_matrix, sizeof(slave_matrix));
matrix_scan_kb();
matrix_scan_quantum();
} else {
transport_slave(matrix + thatHand, matrix + thisHand);
@ -162,7 +162,7 @@ __attribute__((weak)) void matrix_init(void) {
debounce_init(ROWS_PER_HAND);
matrix_init_kb();
matrix_init_quantum();
}
__attribute__((weak)) uint8_t matrix_scan(void) {
@ -172,7 +172,7 @@ __attribute__((weak)) uint8_t matrix_scan(void) {
changed = debounce(raw_matrix, matrix + thisHand, ROWS_PER_HAND, changed) | matrix_post_scan();
#else
changed = debounce(raw_matrix, matrix, ROWS_PER_HAND, changed);
matrix_scan_kb();
matrix_scan_quantum();
#endif
return changed;

View File

@ -453,6 +453,14 @@ void update_tri_layer(uint8_t layer1, uint8_t layer2, uint8_t layer3) {
layer_state_set(update_tri_layer_state(layer_state, layer1, layer2, layer3));
}
// TODO: remove legacy api
void matrix_init_quantum(void) {
matrix_init_kb();
}
void matrix_scan_quantum(void) {
matrix_scan_kb();
}
//------------------------------------------------------------------------------
// Override these functions in your keymap file to play different tunes on
// different events such as startup and bootloader jump

View File

@ -22,11 +22,11 @@ static matrix_row_t matrix[MATRIX_ROWS] = {};
void matrix_init(void) {
clear_all_keys();
matrix_init_kb();
matrix_init_quantum();
}
uint8_t matrix_scan(void) {
matrix_scan_kb();
matrix_scan_quantum();
return 1;
}

View File

@ -2,7 +2,7 @@
Specifically QMK works by using customized callback functions for everything. This allows for multiple levels of customization.
`matrix_scan` calls `matrix_scan_kb`, which calls `matrix_scan_user`.
`matrix_scan` calls `matrix_scan_quantum`, which calls `matrix_scan_kb`, which calls `matrix_scan_user`.
`process_record` calls a bunch of stuff, but eventually calls `process_record_kb` which calls `process_record_user`
The same goes for `matrix_init`, `layer_state_set`, `led_set`, and a few other functions.