mousekey.h 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  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. #pragma once
  15. #include <stdbool.h>
  16. #include "host.h"
  17. #ifndef MK_3_SPEED
  18. /* max value on report descriptor */
  19. # ifndef MOUSEKEY_MOVE_MAX
  20. # define MOUSEKEY_MOVE_MAX 127
  21. # elif MOUSEKEY_MOVE_MAX > 127
  22. # error MOUSEKEY_MOVE_MAX needs to be smaller than 127
  23. # endif
  24. # ifndef MOUSEKEY_WHEEL_MAX
  25. # define MOUSEKEY_WHEEL_MAX 127
  26. # elif MOUSEKEY_WHEEL_MAX > 127
  27. # error MOUSEKEY_WHEEL_MAX needs to be smaller than 127
  28. # endif
  29. # ifndef MOUSEKEY_MOVE_DELTA
  30. # define MOUSEKEY_MOVE_DELTA 5
  31. # endif
  32. # ifndef MOUSEKEY_WHEEL_DELTA
  33. # define MOUSEKEY_WHEEL_DELTA 1
  34. # endif
  35. # ifndef MOUSEKEY_DELAY
  36. # define MOUSEKEY_DELAY 300
  37. # endif
  38. # ifndef MOUSEKEY_INTERVAL
  39. # define MOUSEKEY_INTERVAL 50
  40. # endif
  41. # ifndef MOUSEKEY_MAX_SPEED
  42. # define MOUSEKEY_MAX_SPEED 10
  43. # endif
  44. # ifndef MOUSEKEY_TIME_TO_MAX
  45. # define MOUSEKEY_TIME_TO_MAX 20
  46. # endif
  47. # ifndef MOUSEKEY_WHEEL_DELAY
  48. # define MOUSEKEY_WHEEL_DELAY 300
  49. # endif
  50. # ifndef MOUSEKEY_WHEEL_INTERVAL
  51. # define MOUSEKEY_WHEEL_INTERVAL 100
  52. # endif
  53. # ifndef MOUSEKEY_WHEEL_MAX_SPEED
  54. # define MOUSEKEY_WHEEL_MAX_SPEED 8
  55. # endif
  56. # ifndef MOUSEKEY_WHEEL_TIME_TO_MAX
  57. # define MOUSEKEY_WHEEL_TIME_TO_MAX 40
  58. # endif
  59. #else /* #ifndef MK_3_SPEED */
  60. # ifndef MK_C_OFFSET_UNMOD
  61. # define MK_C_OFFSET_UNMOD 16
  62. # endif
  63. # ifndef MK_C_INTERVAL_UNMOD
  64. # define MK_C_INTERVAL_UNMOD 16
  65. # endif
  66. # ifndef MK_C_OFFSET_0
  67. # define MK_C_OFFSET_0 1
  68. # endif
  69. # ifndef MK_C_INTERVAL_0
  70. # define MK_C_INTERVAL_0 32
  71. # endif
  72. # ifndef MK_C_OFFSET_1
  73. # define MK_C_OFFSET_1 4
  74. # endif
  75. # ifndef MK_C_INTERVAL_1
  76. # define MK_C_INTERVAL_1 16
  77. # endif
  78. # ifndef MK_C_OFFSET_2
  79. # define MK_C_OFFSET_2 32
  80. # endif
  81. # ifndef MK_C_INTERVAL_2
  82. # define MK_C_INTERVAL_2 16
  83. # endif
  84. # ifndef MK_W_OFFSET_UNMOD
  85. # define MK_W_OFFSET_UNMOD 1
  86. # endif
  87. # ifndef MK_W_INTERVAL_UNMOD
  88. # define MK_W_INTERVAL_UNMOD 40
  89. # endif
  90. # ifndef MK_W_OFFSET_0
  91. # define MK_W_OFFSET_0 1
  92. # endif
  93. # ifndef MK_W_INTERVAL_0
  94. # define MK_W_INTERVAL_0 360
  95. # endif
  96. # ifndef MK_W_OFFSET_1
  97. # define MK_W_OFFSET_1 1
  98. # endif
  99. # ifndef MK_W_INTERVAL_1
  100. # define MK_W_INTERVAL_1 120
  101. # endif
  102. # ifndef MK_W_OFFSET_2
  103. # define MK_W_OFFSET_2 1
  104. # endif
  105. # ifndef MK_W_INTERVAL_2
  106. # define MK_W_INTERVAL_2 20
  107. # endif
  108. #endif /* #ifndef MK_3_SPEED */
  109. #ifdef __cplusplus
  110. extern "C" {
  111. #endif
  112. extern uint8_t mk_delay;
  113. extern uint8_t mk_interval;
  114. extern uint8_t mk_max_speed;
  115. extern uint8_t mk_time_to_max;
  116. extern uint8_t mk_wheel_max_speed;
  117. extern uint8_t mk_wheel_time_to_max;
  118. void mousekey_task(void);
  119. void mousekey_on(uint8_t code);
  120. void mousekey_off(uint8_t code);
  121. void mousekey_clear(void);
  122. void mousekey_send(void);
  123. #ifdef __cplusplus
  124. }
  125. #endif