You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

138 lines
3.4 KiB

  1. /*
  2. Copyright 2011 Jun Wako <wakojun@gmail.com>
  3. This program is free software: you can redistribute it and/or modify
  4. it under the terms of the GNU General Public License as published by
  5. the Free Software Foundation, either version 2 of the License, or
  6. (at your option) any later version.
  7. This program is distributed in the hope that it will be useful,
  8. but WITHOUT ANY WARRANTY; without even the implied warranty of
  9. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  10. GNU General Public License for more details.
  11. You should have received a copy of the GNU General Public License
  12. along with this program. If not, see <http://www.gnu.org/licenses/>.
  13. */
  14. #ifndef MOUSEKEY_H
  15. # define MOUSEKEY_H
  16. #endif
  17. #include <stdbool.h>
  18. #include "host.h"
  19. #ifndef MK_3_SPEED
  20. /* max value on report descriptor */
  21. # ifndef MOUSEKEY_MOVE_MAX
  22. # define MOUSEKEY_MOVE_MAX 127
  23. # elif MOUSEKEY_MOVE_MAX > 127
  24. # error MOUSEKEY_MOVE_MAX needs to be smaller than 127
  25. # endif
  26. # ifndef MOUSEKEY_WHEEL_MAX
  27. # define MOUSEKEY_WHEEL_MAX 127
  28. # elif MOUSEKEY_WHEEL_MAX > 127
  29. # error MOUSEKEY_WHEEL_MAX needs to be smaller than 127
  30. # endif
  31. # ifndef MOUSEKEY_MOVE_DELTA
  32. # define MOUSEKEY_MOVE_DELTA 5
  33. # endif
  34. # ifndef MOUSEKEY_WHEEL_DELTA
  35. # define MOUSEKEY_WHEEL_DELTA 1
  36. # endif
  37. # ifndef MOUSEKEY_DELAY
  38. # define MOUSEKEY_DELAY 300
  39. # endif
  40. # ifndef MOUSEKEY_INTERVAL
  41. # define MOUSEKEY_INTERVAL 50
  42. # endif
  43. # ifndef MOUSEKEY_MAX_SPEED
  44. # define MOUSEKEY_MAX_SPEED 10
  45. # endif
  46. # ifndef MOUSEKEY_TIME_TO_MAX
  47. # define MOUSEKEY_TIME_TO_MAX 20
  48. # endif
  49. # ifndef MOUSEKEY_WHEEL_MAX_SPEED
  50. # define MOUSEKEY_WHEEL_MAX_SPEED 8
  51. # endif
  52. # ifndef MOUSEKEY_WHEEL_TIME_TO_MAX
  53. # define MOUSEKEY_WHEEL_TIME_TO_MAX 40
  54. # endif
  55. #else /* #ifndef MK_3_SPEED */
  56. # ifndef MK_C_OFFSET_UNMOD
  57. # define MK_C_OFFSET_UNMOD 16
  58. # endif
  59. # ifndef MK_C_INTERVAL_UNMOD
  60. # define MK_C_INTERVAL_UNMOD 16
  61. # endif
  62. # ifndef MK_C_OFFSET_0
  63. # define MK_C_OFFSET_0 1
  64. # endif
  65. # ifndef MK_C_INTERVAL_0
  66. # define MK_C_INTERVAL_0 32
  67. # endif
  68. # ifndef MK_C_OFFSET_1
  69. # define MK_C_OFFSET_1 4
  70. # endif
  71. # ifndef MK_C_INTERVAL_1
  72. # define MK_C_INTERVAL_1 16
  73. # endif
  74. # ifndef MK_C_OFFSET_2
  75. # define MK_C_OFFSET_2 32
  76. # endif
  77. # ifndef MK_C_INTERVAL_2
  78. # define MK_C_INTERVAL_2 16
  79. # endif
  80. # ifndef MK_W_OFFSET_UNMOD
  81. # define MK_W_OFFSET_UNMOD 1
  82. # endif
  83. # ifndef MK_W_INTERVAL_UNMOD
  84. # define MK_W_INTERVAL_UNMOD 40
  85. # endif
  86. # ifndef MK_W_OFFSET_0
  87. # define MK_W_OFFSET_0 1
  88. # endif
  89. # ifndef MK_W_INTERVAL_0
  90. # define MK_W_INTERVAL_0 360
  91. # endif
  92. # ifndef MK_W_OFFSET_1
  93. # define MK_W_OFFSET_1 1
  94. # endif
  95. # ifndef MK_W_INTERVAL_1
  96. # define MK_W_INTERVAL_1 120
  97. # endif
  98. # ifndef MK_W_OFFSET_2
  99. # define MK_W_OFFSET_2 1
  100. # endif
  101. # ifndef MK_W_INTERVAL_2
  102. # define MK_W_INTERVAL_2 20
  103. # endif
  104. #endif /* #ifndef MK_3_SPEED */
  105. #ifdef __cplusplus
  106. extern "C" {
  107. #endif
  108. extern uint8_t mk_delay;
  109. extern uint8_t mk_interval;
  110. extern uint8_t mk_max_speed;
  111. extern uint8_t mk_time_to_max;
  112. extern uint8_t mk_wheel_max_speed;
  113. extern uint8_t mk_wheel_time_to_max;
  114. void mousekey_task(void);
  115. void mousekey_on(uint8_t code);
  116. void mousekey_off(uint8_t code);
  117. void mousekey_clear(void);
  118. void mousekey_send(void);
  119. #ifdef __cplusplus
  120. }
  121. #endif