aboutsummaryrefslogtreecommitdiff
path: root/quantum/mousekey.h
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2021-02-07 13:56:08 +0000
committerGitHub <noreply@github.com>2021-02-07 13:56:08 +0000
commit02881427692b682287d19fe533c3b84aa7b42a26 (patch)
treeb64dfc778cf652a04b337f8067dac1cd2a1cfe05 /quantum/mousekey.h
parent0c44aa950334a4956dbe1d3f1e4830c13eb38b45 (diff)
downloadqmk_firmware-02881427692b682287d19fe533c3b84aa7b42a26.tar.gz
qmk_firmware-02881427692b682287d19fe533c3b84aa7b42a26.zip
Migrate mousekey to quantum (#11804)
Diffstat (limited to 'quantum/mousekey.h')
-rw-r--r--quantum/mousekey.h179
1 files changed, 179 insertions, 0 deletions
diff --git a/quantum/mousekey.h b/quantum/mousekey.h
new file mode 100644
index 000000000..70dc4bb5c
--- /dev/null
+++ b/quantum/mousekey.h
@@ -0,0 +1,179 @@
1/*
2Copyright 2011 Jun Wako <wakojun@gmail.com>
3
4This program is free software: you can redistribute it and/or modify
5it under the terms of the GNU General Public License as published by
6the Free Software Foundation, either version 2 of the License, or
7(at your option) any later version.
8
9This program is distributed in the hope that it will be useful,
10but WITHOUT ANY WARRANTY; without even the implied warranty of
11MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12GNU General Public License for more details.
13
14You should have received a copy of the GNU General Public License
15along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/
17
18#pragma once
19
20#include <stdint.h>
21#include "host.h"
22
23#ifndef MK_3_SPEED
24
25/* max value on report descriptor */
26# ifndef MOUSEKEY_MOVE_MAX
27# define MOUSEKEY_MOVE_MAX 127
28# elif MOUSEKEY_MOVE_MAX > 127
29# error MOUSEKEY_MOVE_MAX needs to be smaller than 127
30# endif
31
32# ifndef MOUSEKEY_WHEEL_MAX
33# define MOUSEKEY_WHEEL_MAX 127
34# elif MOUSEKEY_WHEEL_MAX > 127
35# error MOUSEKEY_WHEEL_MAX needs to be smaller than 127
36# endif
37
38# ifndef MOUSEKEY_MOVE_DELTA
39# ifndef MK_KINETIC_SPEED
40# define MOUSEKEY_MOVE_DELTA 5
41# else
42# define MOUSEKEY_MOVE_DELTA 25
43# endif
44# endif
45# ifndef MOUSEKEY_WHEEL_DELTA
46# define MOUSEKEY_WHEEL_DELTA 1
47# endif
48# ifndef MOUSEKEY_DELAY
49# ifndef MK_KINETIC_SPEED
50# define MOUSEKEY_DELAY 300
51# else
52# define MOUSEKEY_DELAY 8
53# endif
54# endif
55# ifndef MOUSEKEY_INTERVAL
56# ifndef MK_KINETIC_SPEED
57# define MOUSEKEY_INTERVAL 50
58# else
59# define MOUSEKEY_INTERVAL 8
60# endif
61# endif
62# ifndef MOUSEKEY_MAX_SPEED
63# define MOUSEKEY_MAX_SPEED 10
64# endif
65# ifndef MOUSEKEY_TIME_TO_MAX
66# define MOUSEKEY_TIME_TO_MAX 20
67# endif
68# ifndef MOUSEKEY_WHEEL_DELAY
69# define MOUSEKEY_WHEEL_DELAY 300
70# endif
71# ifndef MOUSEKEY_WHEEL_INTERVAL
72# define MOUSEKEY_WHEEL_INTERVAL 100
73# endif
74# ifndef MOUSEKEY_WHEEL_MAX_SPEED
75# define MOUSEKEY_WHEEL_MAX_SPEED 8
76# endif
77# ifndef MOUSEKEY_WHEEL_TIME_TO_MAX
78# define MOUSEKEY_WHEEL_TIME_TO_MAX 40
79# endif
80
81# ifndef MOUSEKEY_INITIAL_SPEED
82# define MOUSEKEY_INITIAL_SPEED 100
83# endif
84# ifndef MOUSEKEY_BASE_SPEED
85# define MOUSEKEY_BASE_SPEED 1000
86# endif
87# ifndef MOUSEKEY_DECELERATED_SPEED
88# define MOUSEKEY_DECELERATED_SPEED 400
89# endif
90# ifndef MOUSEKEY_ACCELERATED_SPEED
91# define MOUSEKEY_ACCELERATED_SPEED 3000
92# endif
93# ifndef MOUSEKEY_WHEEL_INITIAL_MOVEMENTS
94# define MOUSEKEY_WHEEL_INITIAL_MOVEMENTS 16
95# endif
96# ifndef MOUSEKEY_WHEEL_BASE_MOVEMENTS
97# define MOUSEKEY_WHEEL_BASE_MOVEMENTS 32
98# endif
99# ifndef MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS
100# define MOUSEKEY_WHEEL_ACCELERATED_MOVEMENTS 48
101# endif
102# ifndef MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS
103# define MOUSEKEY_WHEEL_DECELERATED_MOVEMENTS 8
104# endif
105
106#else /* #ifndef MK_3_SPEED */
107
108# ifndef MK_C_OFFSET_UNMOD
109# define MK_C_OFFSET_UNMOD 16
110# endif
111# ifndef MK_C_INTERVAL_UNMOD
112# define MK_C_INTERVAL_UNMOD 16
113# endif
114# ifndef MK_C_OFFSET_0
115# define MK_C_OFFSET_0 1
116# endif
117# ifndef MK_C_INTERVAL_0
118# define MK_C_INTERVAL_0 32
119# endif
120# ifndef MK_C_OFFSET_1
121# define MK_C_OFFSET_1 4
122# endif
123# ifndef MK_C_INTERVAL_1
124# define MK_C_INTERVAL_1 16
125# endif
126# ifndef MK_C_OFFSET_2
127# define MK_C_OFFSET_2 32
128# endif
129# ifndef MK_C_INTERVAL_2
130# define MK_C_INTERVAL_2 16
131# endif
132
133# ifndef MK_W_OFFSET_UNMOD
134# define MK_W_OFFSET_UNMOD 1
135# endif
136# ifndef MK_W_INTERVAL_UNMOD
137# define MK_W_INTERVAL_UNMOD 40
138# endif
139# ifndef MK_W_OFFSET_0
140# define MK_W_OFFSET_0 1
141# endif
142# ifndef MK_W_INTERVAL_0
143# define MK_W_INTERVAL_0 360
144# endif
145# ifndef MK_W_OFFSET_1
146# define MK_W_OFFSET_1 1
147# endif
148# ifndef MK_W_INTERVAL_1
149# define MK_W_INTERVAL_1 120
150# endif
151# ifndef MK_W_OFFSET_2
152# define MK_W_OFFSET_2 1
153# endif
154# ifndef MK_W_INTERVAL_2
155# define MK_W_INTERVAL_2 20
156# endif
157
158#endif /* #ifndef MK_3_SPEED */
159
160#ifdef __cplusplus
161extern "C" {
162#endif
163
164extern uint8_t mk_delay;
165extern uint8_t mk_interval;
166extern uint8_t mk_max_speed;
167extern uint8_t mk_time_to_max;
168extern uint8_t mk_wheel_max_speed;
169extern uint8_t mk_wheel_time_to_max;
170
171void mousekey_task(void);
172void mousekey_on(uint8_t code);
173void mousekey_off(uint8_t code);
174void mousekey_clear(void);
175void mousekey_send(void);
176
177#ifdef __cplusplus
178}
179#endif