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.

73 lines
2.6 KiB

  1. /* Copyright 2020 Christopher Courtney, aka Drashna Jael're (@drashna) <drashna@live.com>
  2. *
  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. *
  8. * This program is distributed in the hope that it will be useful,
  9. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  10. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  11. * GNU General Public License for more details.
  12. *
  13. * You should have received a copy of the GNU General Public License
  14. * along with this program. If not, see <http://www.gnu.org/licenses/>.
  15. */
  16. #pragma once
  17. #include "dactyl_manuform.h"
  18. #include "quantum.h"
  19. #include "spi_master.h"
  20. #include "pmw3360.h"
  21. #include "pointing_device.h"
  22. #define ___ KC_NO
  23. #define LAYOUT_5x6_right_trackball(\
  24. L00, L01, L02, L03, L04, L05, R00, R01, R02, R03, R04, R05, \
  25. L10, L11, L12, L13, L14, L15, R10, R11, R12, R13, R14, R15, \
  26. L20, L21, L22, L23, L24, L25, R20, R21, R22, R23, R24, R25, \
  27. L30, L31, L32, L33, L34, L35, R30, R31, R32, R33, R34, R35, \
  28. L42, L43, R42, R43, \
  29. L44, L45, R41, \
  30. L54, L55, R51, \
  31. L52, L53, R52, R53 \
  32. ) \
  33. { \
  34. { L00, L01, L02, L03, L04, L05 }, \
  35. { L10, L11, L12, L13, L14, L15 }, \
  36. { L20, L21, L22, L23, L24, L25 }, \
  37. { L30, L31, L32, L33, L34, L35 }, \
  38. { ___, ___, L42, L43, L44, L45 }, \
  39. { ___, ___, L52, L53, L54, L55 }, \
  40. \
  41. { R00, R01, R02, R03, R04, R05 }, \
  42. { R10, R11, R12, R13, R14, R15 }, \
  43. { R20, R21, R22, R23, R24, R25 }, \
  44. { R30, R31, R32, R33, R34, R35 }, \
  45. { ___, R41, R42, R43, ___, ___ }, \
  46. { ___, R51, R52, R53, ___, ___ } \
  47. }
  48. void process_wheel(report_mouse_t* mouse_report);
  49. void process_wheel_user(report_mouse_t* mouse_report, int16_t h, int16_t v);
  50. typedef union {
  51. uint32_t raw;
  52. struct {
  53. uint8_t dpi_config;
  54. };
  55. } keyboard_config_t;
  56. extern keyboard_config_t keyboard_config;
  57. enum ploopy_keycodes {
  58. DPI_CONFIG = SAFE_RANGE,
  59. KEYMAP_SAFE_RANGE,
  60. };
  61. void master_mouse_send(int8_t x, int8_t y);
  62. void trackball_set_cpi(uint16_t cpi);