~ruther/qmk_firmware

0edc0c05e164e6205f353c4039eed579f38bbdb6 — XScorpion2 3 years ago e99d6d5
[Keyboard] Small fix for Sol3 with only a slave touch bar (#16952)

1 files changed, 10 insertions(+), 9 deletions(-)

M keyboards/rgbkb/common/touch_encoder.c
M keyboards/rgbkb/common/touch_encoder.c => keyboards/rgbkb/common/touch_encoder.c +10 -9
@@ 244,12 244,21 @@ void touch_encoder_update_slave(slave_touch_status_t slave_state) {
}

void touch_encoder_update(int8_t transaction_id) {
    if (!touch_initialized) return;
#if TOUCH_UPDATE_INTERVAL > 0
    if (!timer_expired(timer_read(), touch_update_timer)) return;
    touch_update_timer = timer_read() + TOUCH_UPDATE_INTERVAL;
#endif

    if (is_keyboard_master()) {
        slave_touch_status_t slave_state;
        if (transaction_rpc_exec(transaction_id, sizeof(bool), &touch_disabled, sizeof(slave_touch_status_t), &slave_state)) {
            if (memcmp(&touch_slave_state, &slave_state, sizeof(slave_touch_status_t)))
                touch_encoder_update_slave(slave_state);
        }
    }

    if (!touch_initialized) return;

    read_register(QT_DETECTION_STATUS, &touch_raw[0], sizeof(touch_raw));
    touch_processed[1] = touch_raw[1];
    touch_processed[2] = touch_raw[2];


@@ 277,14 286,6 @@ void touch_encoder_update(int8_t transaction_id) {
    if ((touch_raw[0] & SLIDER_BIT) && touch_processed[3] != touch_raw[3]) {
        touch_encoder_update_position();
    }

    if (is_keyboard_master()) {
        slave_touch_status_t slave_state;
        if (transaction_rpc_exec(transaction_id, sizeof(bool), &touch_disabled, sizeof(slave_touch_status_t), &slave_state)) {
            if (memcmp(&touch_slave_state, &slave_state, sizeof(slave_touch_status_t)))
                touch_encoder_update_slave(slave_state);
        }
    }
}

void touch_encoder_calibrate(void) {