diff options
Diffstat (limited to 'quantum/mousekey.h')
| -rw-r--r-- | quantum/mousekey.h | 179 | 
1 files changed, 179 insertions, 0 deletions
| diff --git a/quantum/mousekey.h b/quantum/mousekey.h new file mode 100644 index 0000000000..70dc4bb5c5 --- /dev/null +++ b/quantum/mousekey.h @@ -0,0 +1,179 @@ +/* +Copyright 2011 Jun Wako <[email protected]> + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 2 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program.  If not, see <http://www.gnu.org/licenses/>. +*/ + +#pragma once + +#include <stdint.h> +#include "host.h" + +#ifndef MK_3_SPEED + +/* max value on report descriptor */ +#    ifndef MOUSEKEY_MOVE_MAX +#        define MOUSEKEY_MOVE_MAX 127 +#    elif MOUSEKEY_MOVE_MAX > 127 +#        error MOUSEKEY_MOVE_MAX needs to be smaller than 127 +#    endif + +#    ifndef MOUSEKEY_WHEEL_MAX +#        define MOUSEKEY_WHEEL_MAX 127 +#    elif MOUSEKEY_WHEEL_MAX > 127 +#        error MOUSEKEY_WHEEL_MAX needs to be smaller than 127 +#    endif + +#    ifndef MOUSEKEY_MOVE_DELTA +#        ifndef MK_KINETIC_SPEED +#            define MOUSEKEY_MOVE_DELTA 5 +#        else +#            define MOUSEKEY_MOVE_DELTA 25 +#        endif +#    endif +#    ifndef MOUSEKEY_WHEEL_DELTA +#        define MOUSEKEY_WHEEL_DELTA 1 +#    endif +#    ifndef MOUSEKEY_DELAY +#        ifndef MK_KINETIC_SPEED +#            define MOUSEKEY_DELAY 300 +#        else +#            define MOUSEKEY_DELAY 8 +#        endif +#    endif +#    ifndef MOUSEKEY_INTERVAL +#        ifndef MK_KINETIC_SPEED +#            define MOUSEKEY_INTERVAL 50 +#        else +#            define MOUSEKEY_INTERVAL 8 +#        endif +#    endif +#    ifndef MOUSEKEY_MAX_SPEED +#        define MOUSEKEY_MAX_SPEED 10 +#    endif +#    ifndef MOUSEKEY_TIME_TO_MAX +#        define MOUSEKEY_TIME_TO_MAX 20 +#    endif +#    ifndef MOUSEKEY_WHEEL_DELAY +#        define MOUSEKEY_WHEEL_DELAY 300 +#    endif +#    ifndef MOUSEKEY_WHEEL_INTERVAL +#        define MOUSEKEY_WHEEL_INTERVAL 100 +#    endif +#    ifndef MOUSEKEY_WHEEL_MAX_SPEED +#        define MOUSEKEY_WHEEL_MAX_SPEED 8 +#    endif +#    ifndef MOUSEKEY_WHEEL_TIME_TO_MAX +#        define MOUSEKEY_WHEEL_TIME_TO_MAX 40 +#    endif + +#    ifndef MOUSEKEY_INITIAL_SPEED +#        define MOUSEKEY_INITIAL_SPEED 100 +#    endif +#    ifndef MOUSEKEY_BASE_SPEED +#        define MOUSEKEY_BASE_SPEED 1000 +#    endif +#    ifndef MOUSEKEY_DECELERATED_SPEED +#        define MOUSEKEY_DECELERATED_SPEED 400 +#    endif +#    ifndef MOUSEKEY_ACCELERATED_SPEED +#        define MOUSEKEY_ACCELERATED_SPEED 3000 +#    endif +#    ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS +#        define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16 +#    endif +#    ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS +#        define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32 +#    endif +#    ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS +#        define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48 +#    endif +#    ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS +#        define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8 +#    endif + +#else /* #ifndef MK_3_SPEED */ + +#    ifndef MK_C_OFFSET_UNMOD +#        define MK_C_OFFSET_UNMOD 16 +#    endif +#    ifndef MK_C_INTERVAL_UNMOD +#        define MK_C_INTERVAL_UNMOD 16 +#    endif +#    ifndef MK_C_OFFSET_0 +#        define MK_C_OFFSET_0 1 +#    endif +#    ifndef MK_C_INTERVAL_0 +#        define MK_C_INTERVAL_0 32 +#    endif +#    ifndef MK_C_OFFSET_1 +#        define MK_C_OFFSET_1 4 +#    endif +#    ifndef MK_C_INTERVAL_1 +#        define MK_C_INTERVAL_1 16 +#    endif +#    ifndef MK_C_OFFSET_2 +#        define MK_C_OFFSET_2 32 +#    endif +#    ifndef MK_C_INTERVAL_2 +#        define MK_C_INTERVAL_2 16 +#    endif + +#    ifndef MK_W_OFFSET_UNMOD +#        define MK_W_OFFSET_UNMOD 1 +#    endif +#    ifndef MK_W_INTERVAL_UNMOD +#        define MK_W_INTERVAL_UNMOD 40 +#    endif +#    ifndef MK_W_OFFSET_0 +#        define MK_W_OFFSET_0 1 +#    endif +#    ifndef MK_W_INTERVAL_0 +#        define MK_W_INTERVAL_0 360 +#    endif +#    ifndef MK_W_OFFSET_1 +#        define MK_W_OFFSET_1 1 +#    endif +#    ifndef MK_W_INTERVAL_1 +#        define MK_W_INTERVAL_1 120 +#    endif +#    ifndef MK_W_OFFSET_2 +#        define MK_W_OFFSET_2 1 +#    endif +#    ifndef MK_W_INTERVAL_2 +#        define MK_W_INTERVAL_2 20 +#    endif + +#endif /* #ifndef MK_3_SPEED */ + +#ifdef __cplusplus +extern "C" { +#endif + +extern uint8_t mk_delay; +extern uint8_t mk_interval; +extern uint8_t mk_max_speed; +extern uint8_t mk_time_to_max; +extern uint8_t mk_wheel_max_speed; +extern uint8_t mk_wheel_time_to_max; + +void mousekey_task(void); +void mousekey_on(uint8_t code); +void mousekey_off(uint8_t code); +void mousekey_clear(void); +void mousekey_send(void); + +#ifdef __cplusplus +} +#endif | 
