qmk cformat
				
					
				
			This commit is contained in:
		@@ -551,10 +551,10 @@ void send_char(char ascii_code) {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    uint8_t keycode       = pgm_read_byte(&ascii_to_keycode_lut[(uint8_t)ascii_code]);
 | 
					    uint8_t keycode    = pgm_read_byte(&ascii_to_keycode_lut[(uint8_t)ascii_code]);
 | 
				
			||||||
    bool    is_shifted    = PGM_LOADBIT(ascii_to_shift_lut, (uint8_t)ascii_code);
 | 
					    bool    is_shifted = PGM_LOADBIT(ascii_to_shift_lut, (uint8_t)ascii_code);
 | 
				
			||||||
    bool    is_altgred    = PGM_LOADBIT(ascii_to_altgr_lut, (uint8_t)ascii_code);
 | 
					    bool    is_altgred = PGM_LOADBIT(ascii_to_altgr_lut, (uint8_t)ascii_code);
 | 
				
			||||||
    bool    is_dead = PGM_LOADBIT(ascii_to_dead_lut, (uint8_t)ascii_code);
 | 
					    bool    is_dead    = PGM_LOADBIT(ascii_to_dead_lut, (uint8_t)ascii_code);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (is_shifted) {
 | 
					    if (is_shifted) {
 | 
				
			||||||
        register_code(KC_LSFT);
 | 
					        register_code(KC_LSFT);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -248,9 +248,9 @@ typedef ioline_t pin_t;
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
#    if !defined(GPIO_INPUT_PIN_DELAY)
 | 
					#    if !defined(GPIO_INPUT_PIN_DELAY)
 | 
				
			||||||
#        if defined(STM32_SYSCLK)
 | 
					#        if defined(STM32_SYSCLK)
 | 
				
			||||||
#            define GPIO_INPUT_PIN_DELAY (STM32_SYSCLK/1000000L / 4)
 | 
					#            define GPIO_INPUT_PIN_DELAY (STM32_SYSCLK / 1000000L / 4)
 | 
				
			||||||
#        elif defined(KINETIS_SYSCLK_FREQUENCY)
 | 
					#        elif defined(KINETIS_SYSCLK_FREQUENCY)
 | 
				
			||||||
#            define GPIO_INPUT_PIN_DELAY (KINETIS_SYSCLK_FREQUENCY/1000000L / 4)
 | 
					#            define GPIO_INPUT_PIN_DELAY (KINETIS_SYSCLK_FREQUENCY / 1000000L / 4)
 | 
				
			||||||
#        endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    define waitInputPinDelay() wait_cpuclock(GPIO_INPUT_PIN_DELAY)
 | 
					#    define waitInputPinDelay() wait_cpuclock(GPIO_INPUT_PIN_DELAY)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -843,7 +843,7 @@ void rgblight_update_sync(rgblight_syncinfo_t *syncinfo, bool write_to_eeprom) {
 | 
				
			|||||||
        animation_status.restart = true;
 | 
					        animation_status.restart = true;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
#        endif /* RGBLIGHT_SPLIT_NO_ANIMATION_SYNC */
 | 
					#        endif /* RGBLIGHT_SPLIT_NO_ANIMATION_SYNC */
 | 
				
			||||||
#    endif /* RGBLIGHT_USE_TIMER */
 | 
					#    endif     /* RGBLIGHT_USE_TIMER */
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif /* RGBLIGHT_SPLIT */
 | 
					#endif /* RGBLIGHT_SPLIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -264,7 +264,7 @@ bool matrix_post_scan(void) {
 | 
				
			|||||||
                // reset other half if disconnected
 | 
					                // reset other half if disconnected
 | 
				
			||||||
                for (int i = 0; i < ROWS_PER_HAND; ++i) {
 | 
					                for (int i = 0; i < ROWS_PER_HAND; ++i) {
 | 
				
			||||||
                    matrix[thatHand + i] = 0;
 | 
					                    matrix[thatHand + i] = 0;
 | 
				
			||||||
                    slave_matrix[i] = 0;
 | 
					                    slave_matrix[i]      = 0;
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                changed = true;
 | 
					                changed = true;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,7 +40,7 @@ typedef struct _I2C_slave_buffer_t {
 | 
				
			|||||||
#        endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifdef BACKLIGHT_ENABLE
 | 
					#    ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
    uint8_t      backlight_level;
 | 
					    uint8_t backlight_level;
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
 | 
					#    if defined(RGBLIGHT_ENABLE) && defined(RGBLIGHT_SPLIT)
 | 
				
			||||||
    rgblight_syncinfo_t rgblight_sync;
 | 
					    rgblight_syncinfo_t rgblight_sync;
 | 
				
			||||||
@@ -172,9 +172,9 @@ void transport_slave(matrix_row_t matrix[]) {
 | 
				
			|||||||
#    ifdef SPLIT_MODS_ENABLE
 | 
					#    ifdef SPLIT_MODS_ENABLE
 | 
				
			||||||
    set_mods(i2c_buffer->real_mods);
 | 
					    set_mods(i2c_buffer->real_mods);
 | 
				
			||||||
    set_weak_mods(i2c_buffer->weak_mods);
 | 
					    set_weak_mods(i2c_buffer->weak_mods);
 | 
				
			||||||
#       ifndef NO_ACTION_ONESHOT
 | 
					#        ifndef NO_ACTION_ONESHOT
 | 
				
			||||||
    set_oneshot_mods(i2c_buffer->oneshot_mods);
 | 
					    set_oneshot_mods(i2c_buffer->oneshot_mods);
 | 
				
			||||||
#       endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -191,27 +191,27 @@ typedef struct _Serial_s2m_buffer_t {
 | 
				
			|||||||
    matrix_row_t smatrix[ROWS_PER_HAND];
 | 
					    matrix_row_t smatrix[ROWS_PER_HAND];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#    ifdef ENCODER_ENABLE
 | 
					#    ifdef ENCODER_ENABLE
 | 
				
			||||||
    uint8_t encoder_state[NUMBER_OF_ENCODERS];
 | 
					    uint8_t      encoder_state[NUMBER_OF_ENCODERS];
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} Serial_s2m_buffer_t;
 | 
					} Serial_s2m_buffer_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
typedef struct _Serial_m2s_buffer_t {
 | 
					typedef struct _Serial_m2s_buffer_t {
 | 
				
			||||||
#    ifdef SPLIT_MODS_ENABLE
 | 
					#    ifdef SPLIT_MODS_ENABLE
 | 
				
			||||||
    uint8_t real_mods;
 | 
					    uint8_t  real_mods;
 | 
				
			||||||
    uint8_t weak_mods;
 | 
					    uint8_t  weak_mods;
 | 
				
			||||||
#        ifndef NO_ACTION_ONESHOT
 | 
					#        ifndef NO_ACTION_ONESHOT
 | 
				
			||||||
    uint8_t oneshot_mods;
 | 
					    uint8_t  oneshot_mods;
 | 
				
			||||||
#        endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef DISABLE_SYNC_TIMER
 | 
					#    ifndef DISABLE_SYNC_TIMER
 | 
				
			||||||
    uint32_t sync_timer;
 | 
					    uint32_t sync_timer;
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifdef BACKLIGHT_ENABLE
 | 
					#    ifdef BACKLIGHT_ENABLE
 | 
				
			||||||
    uint8_t backlight_level;
 | 
					    uint8_t  backlight_level;
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifdef WPM_ENABLE
 | 
					#    ifdef WPM_ENABLE
 | 
				
			||||||
    uint8_t current_wpm;
 | 
					    uint8_t  current_wpm;
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
} Serial_m2s_buffer_t;
 | 
					} Serial_m2s_buffer_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -317,18 +317,18 @@ bool transport_master(matrix_row_t matrix[]) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#    ifdef WPM_ENABLE
 | 
					#    ifdef WPM_ENABLE
 | 
				
			||||||
    // Write wpm to slave
 | 
					    // Write wpm to slave
 | 
				
			||||||
    serial_m2s_buffer.current_wpm = get_current_wpm();
 | 
					    serial_m2s_buffer.current_wpm  = get_current_wpm();
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#    ifdef SPLIT_MODS_ENABLE
 | 
					#    ifdef SPLIT_MODS_ENABLE
 | 
				
			||||||
    serial_m2s_buffer.real_mods = get_mods();
 | 
					    serial_m2s_buffer.real_mods    = get_mods();
 | 
				
			||||||
    serial_m2s_buffer.weak_mods = get_weak_mods();
 | 
					    serial_m2s_buffer.weak_mods    = get_weak_mods();
 | 
				
			||||||
#        ifndef NO_ACTION_ONESHOT
 | 
					#        ifndef NO_ACTION_ONESHOT
 | 
				
			||||||
    serial_m2s_buffer.oneshot_mods = get_oneshot_mods();
 | 
					    serial_m2s_buffer.oneshot_mods = get_oneshot_mods();
 | 
				
			||||||
#        endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef DISABLE_SYNC_TIMER
 | 
					#    ifndef DISABLE_SYNC_TIMER
 | 
				
			||||||
    serial_m2s_buffer.sync_timer = sync_timer_read32() + SYNC_TIMER_OFFSET;
 | 
					    serial_m2s_buffer.sync_timer   = sync_timer_read32() + SYNC_TIMER_OFFSET;
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
    return true;
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -237,13 +237,13 @@ __attribute__((weak)) void bootloader_jump(void) {
 | 
				
			|||||||
                 "bootloader_startup_loop%=:         \n\t"
 | 
					                 "bootloader_startup_loop%=:         \n\t"
 | 
				
			||||||
                 "rjmp bootloader_startup_loop%=     \n\t"
 | 
					                 "rjmp bootloader_startup_loop%=     \n\t"
 | 
				
			||||||
                 :
 | 
					                 :
 | 
				
			||||||
                 : [mcucsrio] "I"(_SFR_IO_ADDR(MCUCSR)),
 | 
					                 : [ mcucsrio ] "I"(_SFR_IO_ADDR(MCUCSR)),
 | 
				
			||||||
#    if (FLASHEND > 131071)
 | 
					#    if (FLASHEND > 131071)
 | 
				
			||||||
                   [ramendhi] "M"(((RAMEND - 2) >> 8) & 0xff), [ramendlo] "M"(((RAMEND - 2) >> 0) & 0xff), [bootaddrhi] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 16) & 0xff),
 | 
					                   [ ramendhi ] "M"(((RAMEND - 2) >> 8) & 0xff), [ ramendlo ] "M"(((RAMEND - 2) >> 0) & 0xff), [ bootaddrhi ] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 16) & 0xff),
 | 
				
			||||||
#    else
 | 
					#    else
 | 
				
			||||||
                   [ramendhi] "M"(((RAMEND - 1) >> 8) & 0xff), [ramendlo] "M"(((RAMEND - 1) >> 0) & 0xff),
 | 
					                   [ ramendhi ] "M"(((RAMEND - 1) >> 8) & 0xff), [ ramendlo ] "M"(((RAMEND - 1) >> 0) & 0xff),
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
                   [bootaddrme] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 8) & 0xff), [bootaddrlo] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 0) & 0xff));
 | 
					                   [ bootaddrme ] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 8) & 0xff), [ bootaddrlo ] "M"((((FLASH_SIZE - BOOTLOADER_SIZE) >> 1) >> 0) & 0xff));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else  // Assume remaining boards are DFU, even if the flag isn't set
 | 
					#else  // Assume remaining boards are DFU, even if the flag isn't set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,7 +37,7 @@ static uint8_t        mousekey_accel        = 0;
 | 
				
			|||||||
static uint8_t        mousekey_repeat       = 0;
 | 
					static uint8_t        mousekey_repeat       = 0;
 | 
				
			||||||
static uint8_t        mousekey_wheel_repeat = 0;
 | 
					static uint8_t        mousekey_wheel_repeat = 0;
 | 
				
			||||||
#ifdef MK_KINETIC_SPEED
 | 
					#ifdef MK_KINETIC_SPEED
 | 
				
			||||||
static uint16_t       mouse_timer     = 0;
 | 
					static uint16_t mouse_timer = 0;
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef MK_3_SPEED
 | 
					#ifndef MK_3_SPEED
 | 
				
			||||||
@@ -123,20 +123,18 @@ static uint8_t wheel_unit(void) {
 | 
				
			|||||||
 * B: base mouse travel speed
 | 
					 * B: base mouse travel speed
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
const uint16_t mk_accelerated_speed = MOUSEKEY_ACCELERATED_SPEED;
 | 
					const uint16_t mk_accelerated_speed = MOUSEKEY_ACCELERATED_SPEED;
 | 
				
			||||||
const uint16_t mk_base_speed = MOUSEKEY_BASE_SPEED;
 | 
					const uint16_t mk_base_speed        = MOUSEKEY_BASE_SPEED;
 | 
				
			||||||
const uint16_t mk_decelerated_speed = MOUSEKEY_DECELERATED_SPEED;
 | 
					const uint16_t mk_decelerated_speed = MOUSEKEY_DECELERATED_SPEED;
 | 
				
			||||||
const uint16_t mk_initial_speed = MOUSEKEY_INITIAL_SPEED;
 | 
					const uint16_t mk_initial_speed     = MOUSEKEY_INITIAL_SPEED;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static uint8_t move_unit(void) {
 | 
					static uint8_t move_unit(void) {
 | 
				
			||||||
    float speed = mk_initial_speed;
 | 
					    float speed = mk_initial_speed;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (mousekey_accel & ((1<<0) | (1<<2))) {
 | 
					    if (mousekey_accel & ((1 << 0) | (1 << 2))) {
 | 
				
			||||||
        speed = mousekey_accel & (1<<2) ? mk_accelerated_speed : mk_decelerated_speed;
 | 
					        speed = mousekey_accel & (1 << 2) ? mk_accelerated_speed : mk_decelerated_speed;
 | 
				
			||||||
    } else if (mousekey_repeat && mouse_timer) {
 | 
					    } else if (mousekey_repeat && mouse_timer) {
 | 
				
			||||||
        const float time_elapsed = timer_elapsed(mouse_timer) / 50;
 | 
					        const float time_elapsed = timer_elapsed(mouse_timer) / 50;
 | 
				
			||||||
        speed = mk_initial_speed +
 | 
					        speed                    = mk_initial_speed + MOUSEKEY_MOVE_DELTA * time_elapsed + MOUSEKEY_MOVE_DELTA * 0.5 * time_elapsed * time_elapsed;
 | 
				
			||||||
            MOUSEKEY_MOVE_DELTA * time_elapsed +
 | 
					 | 
				
			||||||
            MOUSEKEY_MOVE_DELTA * 0.5 * time_elapsed * time_elapsed;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        speed = speed > mk_base_speed ? mk_base_speed : speed;
 | 
					        speed = speed > mk_base_speed ? mk_base_speed : speed;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -153,14 +151,12 @@ float mk_wheel_interval = 1000.0f / MOUSEKEY_WHEEL_INITIAL_MOVEMENTS;
 | 
				
			|||||||
static uint8_t wheel_unit(void) {
 | 
					static uint8_t wheel_unit(void) {
 | 
				
			||||||
    float speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS;
 | 
					    float speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (mousekey_accel & ((1<<0) | (1<<2))) {
 | 
					    if (mousekey_accel & ((1 << 0) | (1 << 2))) {
 | 
				
			||||||
        speed = mousekey_accel & (1<<2) ? MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS : MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS;
 | 
					        speed = mousekey_accel & (1 << 2) ? MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS : MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS;
 | 
				
			||||||
    } else if (mousekey_repeat && mouse_timer) {
 | 
					    } else if (mousekey_repeat && mouse_timer) {
 | 
				
			||||||
        if (mk_wheel_interval != MOUSEKEY_WHEEL_BASE_MOVEMENTS) {
 | 
					        if (mk_wheel_interval != MOUSEKEY_WHEEL_BASE_MOVEMENTS) {
 | 
				
			||||||
            const float time_elapsed = timer_elapsed(mouse_timer) / 50;
 | 
					            const float time_elapsed = timer_elapsed(mouse_timer) / 50;
 | 
				
			||||||
            speed = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS +
 | 
					            speed                    = MOUSEKEY_WHEEL_INITIAL_MOVEMENTS + 1 * time_elapsed + 1 * 0.5 * time_elapsed * time_elapsed;
 | 
				
			||||||
                1 * time_elapsed +
 | 
					 | 
				
			||||||
                1 * 0.5 * time_elapsed * time_elapsed;
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        speed = speed > MOUSEKEY_WHEEL_BASE_MOVEMENTS ? MOUSEKEY_WHEEL_BASE_MOVEMENTS : speed;
 | 
					        speed = speed > MOUSEKEY_WHEEL_BASE_MOVEMENTS ? MOUSEKEY_WHEEL_BASE_MOVEMENTS : speed;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -209,7 +205,7 @@ static uint8_t wheel_unit(void) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#        endif /* #ifndef MK_KINETIC_SPEED */
 | 
					#        endif /* #ifndef MK_KINETIC_SPEED */
 | 
				
			||||||
#    endif /* #ifndef MK_COMBINED */
 | 
					#    endif     /* #ifndef MK_COMBINED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void mousekey_task(void) {
 | 
					void mousekey_task(void) {
 | 
				
			||||||
    // report cursor and scroll movement independently
 | 
					    // report cursor and scroll movement independently
 | 
				
			||||||
@@ -260,11 +256,11 @@ void mousekey_task(void) {
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void mousekey_on(uint8_t code) {
 | 
					void mousekey_on(uint8_t code) {
 | 
				
			||||||
#ifdef MK_KINETIC_SPEED
 | 
					#    ifdef MK_KINETIC_SPEED
 | 
				
			||||||
    if (mouse_timer == 0) {
 | 
					    if (mouse_timer == 0) {
 | 
				
			||||||
        mouse_timer = timer_read();
 | 
					        mouse_timer = timer_read();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
#endif /* #ifdef MK_KINETIC_SPEED */
 | 
					#    endif /* #ifdef MK_KINETIC_SPEED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (code == KC_MS_UP)
 | 
					    if (code == KC_MS_UP)
 | 
				
			||||||
        mouse_report.y = move_unit() * -1;
 | 
					        mouse_report.y = move_unit() * -1;
 | 
				
			||||||
@@ -335,9 +331,9 @@ void mousekey_off(uint8_t code) {
 | 
				
			|||||||
        mousekey_accel &= ~(1 << 2);
 | 
					        mousekey_accel &= ~(1 << 2);
 | 
				
			||||||
    if (mouse_report.x == 0 && mouse_report.y == 0) {
 | 
					    if (mouse_report.x == 0 && mouse_report.y == 0) {
 | 
				
			||||||
        mousekey_repeat = 0;
 | 
					        mousekey_repeat = 0;
 | 
				
			||||||
#ifdef MK_KINETIC_SPEED
 | 
					#    ifdef MK_KINETIC_SPEED
 | 
				
			||||||
        mouse_timer = 0;
 | 
					        mouse_timer = 0;
 | 
				
			||||||
#endif /* #ifdef MK_KINETIC_SPEED */
 | 
					#    endif /* #ifdef MK_KINETIC_SPEED */
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (mouse_report.v == 0 && mouse_report.h == 0) mousekey_wheel_repeat = 0;
 | 
					    if (mouse_report.v == 0 && mouse_report.h == 0) mousekey_wheel_repeat = 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,28 +36,28 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#    ifndef MOUSEKEY_MOVE_DELTA
 | 
					#    ifndef MOUSEKEY_MOVE_DELTA
 | 
				
			||||||
#ifndef MK_KINETIC_SPEED
 | 
					#        ifndef MK_KINETIC_SPEED
 | 
				
			||||||
#        define MOUSEKEY_MOVE_DELTA 5
 | 
					#            define MOUSEKEY_MOVE_DELTA 5
 | 
				
			||||||
#else
 | 
					#        else
 | 
				
			||||||
#        define MOUSEKEY_MOVE_DELTA 25
 | 
					#            define MOUSEKEY_MOVE_DELTA 25
 | 
				
			||||||
#endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef MOUSEKEY_WHEEL_DELTA
 | 
					#    ifndef MOUSEKEY_WHEEL_DELTA
 | 
				
			||||||
#        define MOUSEKEY_WHEEL_DELTA 1
 | 
					#        define MOUSEKEY_WHEEL_DELTA 1
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef MOUSEKEY_DELAY
 | 
					#    ifndef MOUSEKEY_DELAY
 | 
				
			||||||
#ifndef MK_KINETIC_SPEED
 | 
					#        ifndef MK_KINETIC_SPEED
 | 
				
			||||||
#        define MOUSEKEY_DELAY 300
 | 
					#            define MOUSEKEY_DELAY 300
 | 
				
			||||||
#else
 | 
					#        else
 | 
				
			||||||
#        define MOUSEKEY_DELAY 8
 | 
					#            define MOUSEKEY_DELAY 8
 | 
				
			||||||
#endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef MOUSEKEY_INTERVAL
 | 
					#    ifndef MOUSEKEY_INTERVAL
 | 
				
			||||||
#ifndef MK_KINETIC_SPEED
 | 
					#        ifndef MK_KINETIC_SPEED
 | 
				
			||||||
#        define MOUSEKEY_INTERVAL 50
 | 
					#            define MOUSEKEY_INTERVAL 50
 | 
				
			||||||
#else
 | 
					#        else
 | 
				
			||||||
#        define MOUSEKEY_INTERVAL 8
 | 
					#            define MOUSEKEY_INTERVAL 8
 | 
				
			||||||
#endif
 | 
					#        endif
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
#    ifndef MOUSEKEY_MAX_SPEED
 | 
					#    ifndef MOUSEKEY_MAX_SPEED
 | 
				
			||||||
#        define MOUSEKEY_MAX_SPEED 10
 | 
					#        define MOUSEKEY_MAX_SPEED 10
 | 
				
			||||||
@@ -78,30 +78,30 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			|||||||
#        define MOUSEKEY_WHEEL_TIME_TO_MAX 40
 | 
					#        define MOUSEKEY_WHEEL_TIME_TO_MAX 40
 | 
				
			||||||
#    endif
 | 
					#    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifndef MOUSEKEY_INITIAL_SPEED
 | 
					#    ifndef MOUSEKEY_INITIAL_SPEED
 | 
				
			||||||
#define MOUSEKEY_INITIAL_SPEED  100
 | 
					#        define MOUSEKEY_INITIAL_SPEED 100
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_BASE_SPEED
 | 
					#    ifndef MOUSEKEY_BASE_SPEED
 | 
				
			||||||
#define MOUSEKEY_BASE_SPEED 1000
 | 
					#        define MOUSEKEY_BASE_SPEED 1000
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_DECELERATED_SPEED
 | 
					#    ifndef MOUSEKEY_DECELERATED_SPEED
 | 
				
			||||||
#define MOUSEKEY_DECELERATED_SPEED 400
 | 
					#        define MOUSEKEY_DECELERATED_SPEED 400
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_ACCELERATED_SPEED
 | 
					#    ifndef MOUSEKEY_ACCELERATED_SPEED
 | 
				
			||||||
#define MOUSEKEY_ACCELERATED_SPEED 3000
 | 
					#        define MOUSEKEY_ACCELERATED_SPEED 3000
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS
 | 
					#    ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS
 | 
				
			||||||
#define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS  16
 | 
					#        define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS
 | 
					#    ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS
 | 
				
			||||||
#define MOUSEKEY_WHEEL_BASE_MOVEMENTS  32
 | 
					#        define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS
 | 
					#    ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS
 | 
				
			||||||
#define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS  48
 | 
					#        define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
#ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
 | 
					#    ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
 | 
				
			||||||
#define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS  8
 | 
					#        define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
 | 
				
			||||||
#endif
 | 
					#    endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#else /* #ifndef MK_3_SPEED */
 | 
					#else /* #ifndef MK_3_SPEED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,44 +15,71 @@ extern "C" {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#    define CLOCK_DELAY_NOP8 "nop\n\t nop\n\t nop\n\t nop\n\t   nop\n\t nop\n\t nop\n\t nop\n\t"
 | 
					#    define CLOCK_DELAY_NOP8 "nop\n\t nop\n\t nop\n\t nop\n\t   nop\n\t nop\n\t nop\n\t nop\n\t"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
__attribute__((always_inline))
 | 
					__attribute__((always_inline)) static inline void wait_cpuclock_allnop(unsigned int n) { /* n: 1..135 */
 | 
				
			||||||
static inline void wait_cpuclock_allnop(unsigned int n) { /* n: 1..135 */
 | 
					 | 
				
			||||||
    /* The argument n must be a constant expression.
 | 
					    /* The argument n must be a constant expression.
 | 
				
			||||||
     * That way, compiler optimization will remove unnecessary code. */
 | 
					     * That way, compiler optimization will remove unnecessary code. */
 | 
				
			||||||
    if (n < 1) { return; }
 | 
					    if (n < 1) {
 | 
				
			||||||
 | 
					        return;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
    if (n > 8) {
 | 
					    if (n > 8) {
 | 
				
			||||||
        unsigned int n8 = n/8;
 | 
					        unsigned int n8 = n / 8;
 | 
				
			||||||
        n = n - n8*8;
 | 
					        n               = n - n8 * 8;
 | 
				
			||||||
        switch (n8) {
 | 
					        switch (n8) {
 | 
				
			||||||
        case 16: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 16:
 | 
				
			||||||
        case 15: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case 14: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 15:
 | 
				
			||||||
        case 13: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case 12: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 14:
 | 
				
			||||||
        case 11: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case 10: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 13:
 | 
				
			||||||
        case  9: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case  8: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 12:
 | 
				
			||||||
        case  7: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case  6: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 11:
 | 
				
			||||||
        case  5: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case  4: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 10:
 | 
				
			||||||
        case  3: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case  2: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					            case 9:
 | 
				
			||||||
        case  1: asm volatile (CLOCK_DELAY_NOP8::: "memory");
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
        case  0: break;
 | 
					            case 8:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 7:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 6:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 5:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 4:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 3:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 2:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 1:
 | 
				
			||||||
 | 
					                asm volatile(CLOCK_DELAY_NOP8::: "memory");
 | 
				
			||||||
 | 
					            case 0:
 | 
				
			||||||
 | 
					                break;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    switch (n) {
 | 
					    switch (n) {
 | 
				
			||||||
    case 8: asm volatile ("nop"::: "memory");
 | 
					        case 8:
 | 
				
			||||||
    case 7: asm volatile ("nop"::: "memory");
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
    case 6: asm volatile ("nop"::: "memory");
 | 
					        case 7:
 | 
				
			||||||
    case 5: asm volatile ("nop"::: "memory");
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
    case 4: asm volatile ("nop"::: "memory");
 | 
					        case 6:
 | 
				
			||||||
    case 3: asm volatile ("nop"::: "memory");
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
    case 2: asm volatile ("nop"::: "memory");
 | 
					        case 5:
 | 
				
			||||||
    case 1: asm volatile ("nop"::: "memory");
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
    case 0: break;
 | 
					        case 4:
 | 
				
			||||||
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
 | 
					        case 3:
 | 
				
			||||||
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
 | 
					        case 2:
 | 
				
			||||||
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
 | 
					        case 1:
 | 
				
			||||||
 | 
					            asm volatile("nop" ::: "memory");
 | 
				
			||||||
 | 
					        case 0:
 | 
				
			||||||
 | 
					            break;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user