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.

162 lines
6.4 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 "quantum.h"
  18. #include "oled_driver.h"
  19. extern deferred_token kittoken;
  20. void oled_driver_render_logo(void);
  21. bool process_record_user_oled(uint16_t keycode, keyrecord_t *record);
  22. oled_rotation_t oled_init_keymap(oled_rotation_t rotation);
  23. void oled_timer_reset(void);
  24. void render_keylogger_status(void);
  25. void render_default_layer_state(void);
  26. void render_layer_state(void);
  27. void render_keylock_status(led_t led_usb_state);
  28. void render_matrix_scan_rate(uint8_t padding);
  29. void render_mod_status(uint8_t modifiers);
  30. void render_bootmagic_status(void);
  31. void render_user_status(void);
  32. void oled_driver_render_logo(void);
  33. void render_wpm(uint8_t padding);
  34. void render_pointing_dpi_status(uint16_t cpi, uint8_t padding);
  35. void oled_driver_render_logo_left(void);
  36. void oled_driver_render_logo_right(void);
  37. void oled_render_large_display(bool side);
  38. void render_wpm_graph(uint8_t max_lines_graph, uint8_t vertical_offset);
  39. void oled_pan_section(bool left, uint16_t y_start, uint16_t y_end, uint16_t x_start, uint16_t x_end);
  40. #if defined(OLED_DISPLAY_128X128) || defined(OLED_DISPLAY_128X64)
  41. # define OLED_DISPLAY_VERBOSE
  42. # define OLED_RENDER_KEYLOGGER "Keylogger: "
  43. # ifndef OLED_KEYLOGGER_LENGTH
  44. # define OLED_KEYLOGGER_LENGTH 9
  45. # endif
  46. # define OLED_RENDER_LAYOUT_NAME "Layout: "
  47. # define OLED_RENDER_LAYOUT_QWERTY "Qwerty"
  48. # define OLED_RENDER_LAYOUT_COLEMAK_DH "Colemak DH"
  49. # define OLED_RENDER_LAYOUT_COLEMAK "Colemak"
  50. # define OLED_RENDER_LAYOUT_DVORAK "Dvorak"
  51. # define OLED_RENDER_LAYOUT_WORKMAN "Workman"
  52. # define OLED_RENDER_LAYOUT_NORMAN "Norman"
  53. # define OLED_RENDER_LAYOUT_MALTRON "Matron"
  54. # define OLED_RENDER_LAYOUT_EUCALYN "Eucalyn"
  55. # define OLED_RENDER_LAYOUT_CARPLAX "Carplax"
  56. # define OLED_RENDER_LAYER_NAME "Layer:"
  57. # define OLED_RENDER_LAYER_LOWER "Lower"
  58. # define OLED_RENDER_LAYER_RAISE "Raise"
  59. # define OLED_RENDER_LAYER_ADJUST "Adjust"
  60. # define OLED_RENDER_LAYER_MODS "Mods"
  61. # define OLED_RENDER_LOCK_NAME "Lock: "
  62. # define OLED_RENDER_LOCK_NUML "NUM"
  63. # define OLED_RENDER_LOCK_CAPS "CAPS"
  64. # define OLED_RENDER_LOCK_SCLK "SCLK"
  65. # define OLED_RENDER_MODS_NAME "Mods"
  66. # define OLED_RENDER_MODS_SFT "Sft"
  67. # define OLED_RENDER_MODS_CTL "Ctl"
  68. # define OLED_RENDER_MODS_ALT "Alt"
  69. # define OLED_RENDER_MODS_GUI "GUI"
  70. # define OLED_RENDER_BOOTMAGIC_NAME "Boot "
  71. # define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
  72. # define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
  73. # define OLED_RENDER_BOOTMAGIC_GRV "GRV"
  74. # define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT"
  75. # define OLED_RENDER_BOOTMAGIC_SWAP "SWAP"
  76. # define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
  77. # define OLED_RENDER_USER_NAME "USER:"
  78. # define OLED_RENDER_USER_ANIM "Anim"
  79. # define OLED_RENDER_USER_LAYR "Layr"
  80. # define OLED_RENDER_USER_NUKE "Nuke"
  81. # define OLED_RENDER_WPM_COUNTER "WPM: "
  82. #else
  83. # define OLED_RENDER_KEYLOGGER "KLogr"
  84. # ifndef OLED_KEYLOGGER_LENGTH
  85. # define OLED_KEYLOGGER_LENGTH 5
  86. # endif
  87. # define OLED_RENDER_LAYOUT_NAME "Lyout"
  88. # define OLED_RENDER_LAYOUT_QWERTY " QRTY"
  89. # define OLED_RENDER_LAYOUT_COLEMAK_DH " cmDH"
  90. # define OLED_RENDER_LAYOUT_COLEMAK " COLE"
  91. # define OLED_RENDER_LAYOUT_DVORAK " DVRK"
  92. # define OLED_RENDER_LAYOUT_WORKMAN " WKMN"
  93. # define OLED_RENDER_LAYOUT_NORMAN " NORM"
  94. # define OLED_RENDER_LAYOUT_MALTRON " MLTN"
  95. # define OLED_RENDER_LAYOUT_EUCALYN " ECLN"
  96. # define OLED_RENDER_LAYOUT_CARPLAX " CRPX"
  97. # define OLED_RENDER_LAYER_NAME "LAYER"
  98. # define OLED_RENDER_LAYER_LOWER "Lower"
  99. # define OLED_RENDER_LAYER_RAISE "Raise"
  100. # define OLED_RENDER_LAYER_ADJUST "Adjst"
  101. # define OLED_RENDER_LAYER_MODS " Mods"
  102. # define OLED_RENDER_LOCK_NAME "Lock:"
  103. # define OLED_RENDER_LOCK_NUML "NumL"
  104. # define OLED_RENDER_LOCK_CAPS "CapL"
  105. # define OLED_RENDER_LOCK_SCLK "ScrL"
  106. # define OLED_RENDER_MODS_NAME "Mods: "
  107. # define OLED_RENDER_MODS_SFT "Shft"
  108. # define OLED_RENDER_MODS_CTL "Ctrl"
  109. # define OLED_RENDER_MODS_ALT "Alt\n"
  110. # define OLED_RENDER_MODS_GUI "GUI\n"
  111. # define OLED_RENDER_BOOTMAGIC_NAME "BTMGK"
  112. # define OLED_RENDER_BOOTMAGIC_NKRO "NKRO"
  113. # define OLED_RENDER_BOOTMAGIC_NOGUI "nGUI"
  114. # define OLED_RENDER_BOOTMAGIC_GRV "GRV"
  115. # define OLED_RENDER_BOOTMAGIC_ONESHOT "1SHT"
  116. # define OLED_RENDER_BOOTMAGIC_SWAP "SWAP"
  117. # define OLED_RENDER_BOOTMAGIC_CAPS "CAPS"
  118. # define OLED_RENDER_USER_NAME "USER:"
  119. # define OLED_RENDER_USER_ANIM "Anim"
  120. # define OLED_RENDER_USER_LAYR "Layr"
  121. # define OLED_RENDER_USER_NUKE "Nuke"
  122. # define OLED_RENDER_WPM_COUNTER "WPM: "
  123. #endif
  124. extern char keylog_str[OLED_KEYLOGGER_LENGTH];
  125. #ifndef OLED_WPM_GRAPH_MAX_WPM
  126. # define OLED_WPM_GRAPH_MAX_WPM 120
  127. #endif
  128. #ifndef OLED_WPM_GRAPH_REFRESH_INTERVAL
  129. # define OLED_WPM_GRAPH_REFRESH_INTERVAL 300
  130. #endif
  131. #ifndef OLED_WPM_GRAPH_AREA_FILL_INTERVAL
  132. # define OLED_WPM_GRAPH_AREA_FILL_INTERVAL 3
  133. #endif
  134. #ifndef OLED_WPM_GRAPH_VERTCAL_LINE_INTERVAL
  135. # define OLED_WPM_GRAPH_VERTCAL_LINE_INTERVAL 3
  136. #endif
  137. #ifndef OLED_WPM_GRAPH_GRAPH_LINE_THICKNESS
  138. # define OLED_WPM_GRAPH_GRAPH_LINE_THICKNESS 2
  139. #endif